]>
Commit | Line | Data |
---|---|---|
1 | #!/usr/bin/make -f | |
2 | SHELL=/bin/bash | |
3 | ||
4 | # this is a simplified version from the upstream package | |
5 | ||
6 | # Only used for creating our build tools. | |
7 | DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH) | |
8 | DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH) | |
9 | DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) | |
10 | ||
11 | # for GCC5 and newer, LTO enabled | |
12 | EDK2_TOOLCHAIN=GCC5 | |
13 | AARCH64_TOOLCHAIN=GCC5 | |
14 | export $(EDK2_TOOLCHAIN)_AARCH64_PREFIX=aarch64-linux-gnu- | |
15 | ||
16 | export PYTHON3_ENABLE="TRUE" | |
17 | export PYTHON_COMMAND="python3" | |
18 | ||
19 | ifeq ($(DEB_BUILD_ARCH),amd64) | |
20 | EDK2_BUILD_ARCH=X64 | |
21 | endif | |
22 | ifeq ($(DEB_BUILD_ARCH),arm64) | |
23 | EDK2_BUILD_ARCH=AARCH64 | |
24 | endif | |
25 | ifeq ($(DEB_HOST_ARCH),amd64) | |
26 | EDK2_HOST_ARCH=X64 | |
27 | endif | |
28 | ||
29 | # Clear variables used internally by the edk2 build system | |
30 | undefine WORKSPACE | |
31 | undefine ECP_SOURCE | |
32 | undefine EDK_SOURCE | |
33 | undefine EFI_SOURCE | |
34 | undefine EDK_TOOLS_PATH | |
35 | undefine CONF_PATH | |
36 | ||
37 | %: | |
38 | dh $@ | |
39 | ||
40 | override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf | |
41 | ||
42 | setup-build: | |
43 | cp -a debian/Logo.bmp MdeModulePkg/Logo/Logo.bmp | |
44 | make -C BaseTools ARCH=$(EDK2_BUILD_ARCH) | |
45 | # call this when building too, it modifies the shell environment | |
46 | . ./edksetup.sh | |
47 | ||
48 | build-ovmf: EDK2_ARCH_DIR=X64 | |
49 | build-ovmf: EDK2_HOST_ARCH=X64 | |
50 | build-ovmf: setup-build | |
51 | set -e; . ./edksetup.sh; \ | |
52 | OvmfPkg/build.sh \ | |
53 | -b RELEASE \ | |
54 | -a $(EDK2_HOST_ARCH) \ | |
55 | -t $(EDK2_TOOLCHAIN) \ | |
56 | -DSECURE_BOOT_ENABLE=FALSE \ | |
57 | -DFD_SIZE_2MB \ | |
58 | -n $$(getconf _NPROCESSORS_ONLN) | |
59 | ||
60 | build-qemu-efi: setup-build | |
61 | echo FOO "$${$(EDK2_TOOLCHAIN)_AARCH64_PREFIX}" | |
62 | mkdir -p ShellBinPkg/UefiShell/$(EDK2_ARCH_DIR) FatBinPkg/EnhancedFatDxe/$(EDK2_ARCH_DIR) | |
63 | set -e; . ./edksetup.sh; \ | |
64 | build -a $(EDK2_HOST_ARCH) -p ShellPkg/ShellPkg.dsc \ | |
65 | -b RELEASE -t $(EDK2_TOOLCHAIN); \ | |
66 | cp -a Build/Shell/RELEASE_$(EDK2_TOOLCHAIN)/$(EDK2_HOST_ARCH)/Shell_7C04A583-9E3E-4f1c-AD65-E05268D0B4D1.efi \ | |
67 | ShellBinPkg/UefiShell/$(EDK2_ARCH_DIR)/Shell.efi; \ | |
68 | build -a $(EDK2_HOST_ARCH) -p FatPkg/FatPkg.dsc \ | |
69 | -m FatPkg/EnhancedFatDxe/Fat.inf \ | |
70 | -t $(EDK2_TOOLCHAIN) -b RELEASE; \ | |
71 | cp -a Build/Fat/RELEASE_$(EDK2_TOOLCHAIN)/$(EDK2_HOST_ARCH)/Fat.efi \ | |
72 | FatBinPkg/EnhancedFatDxe/$(EDK2_ARCH_DIR)/Fat.efi; \ | |
73 | build -a $(EDK2_HOST_ARCH) \ | |
74 | -t $(EDK2_TOOLCHAIN) \ | |
75 | -p ArmVirtPkg/ArmVirtQemu.dsc \ | |
76 | -DHTTP_BOOT_ENABLE=TRUE \ | |
77 | -DSECURE_BOOT_ENABLE=FALSE \ | |
78 | -DINTEL_BDS \ | |
79 | -b RELEASE | |
80 | dd if=/dev/zero of=Build/ArmVirtQemu-$(EDK2_HOST_ARCH)/RELEASE_$(EDK2_TOOLCHAIN)/FV/$(FW_NAME)_CODE.fd bs=1M seek=64 count=0 | |
81 | dd if=Build/ArmVirtQemu-$(EDK2_HOST_ARCH)/RELEASE_$(EDK2_TOOLCHAIN)/FV/QEMU_EFI.fd of=Build/ArmVirtQemu-$(EDK2_HOST_ARCH)/RELEASE_$(EDK2_TOOLCHAIN)/FV/$(FW_NAME)_CODE.fd conv=notrunc | |
82 | dd if=/dev/zero of=Build/ArmVirtQemu-$(EDK2_HOST_ARCH)/RELEASE_$(EDK2_TOOLCHAIN)/FV/$(FW_NAME)_VARS.fd bs=1M seek=64 count=0 | |
83 | ||
84 | build-qemu-efi-aarch64: | |
85 | $(MAKE) -f debian/rules build-qemu-efi EDK2_ARCH_DIR=AArch64 EDK2_HOST_ARCH=AARCH64 FW_NAME=AAVMF | |
86 | ||
87 | override_dh_auto_clean: | |
88 | set -e; \ | |
89 | if [ -d BaseTools/Source/C/bin ]; then \ | |
90 | . ./edksetup.sh; build clean; \ | |
91 | make -C BaseTools clean; \ | |
92 | fi | |
93 | rm -rf Conf/.cache Build .pc-post | |
94 | ||
95 | .PHONY: setup-build build-ovmf |