4 # this is a simplified version from the upstream package
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
)
11 # for GCC5 and newer, LTO enabled
13 AARCH64_TOOLCHAIN
=GCC5
14 export $(EDK2_TOOLCHAIN
)_AARCH64_PREFIX
=aarch64-linux-gnu-
16 export PYTHON3_ENABLE
="TRUE"
17 export PYTHON_COMMAND
="python3"
19 ifeq ($(DEB_BUILD_ARCH
),amd64
)
22 ifeq ($(DEB_BUILD_ARCH
),arm64
)
23 EDK2_BUILD_ARCH
=AARCH64
25 ifeq ($(DEB_HOST_ARCH
),amd64
)
29 # Clear variables used internally by the edk2 build system
34 undefine EDK_TOOLS_PATH
40 override_dh_auto_build
: build-qemu-efi-aarch64 build-ovmf
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
48 build-ovmf
: EDK2_ARCH_DIR
=X64
49 build-ovmf
: EDK2_HOST_ARCH
=X64
50 build-ovmf
: setup-build
51 set
-e
; . .
/edksetup.sh
; \
54 -a
$(EDK2_HOST_ARCH
) \
55 -t
$(EDK2_TOOLCHAIN
) \
56 -DSECURE_BOOT_ENABLE
=FALSE \
60 -n
$$(getconf _NPROCESSORS_ONLN
)
62 build-qemu-efi
: setup-build
63 echo FOO
"$${$(EDK2_TOOLCHAIN)_AARCH64_PREFIX}"
64 mkdir
-p ShellBinPkg
/UefiShell
/$(EDK2_ARCH_DIR
) FatBinPkg
/EnhancedFatDxe
/$(EDK2_ARCH_DIR
)
65 set
-e
; . .
/edksetup.sh
; \
66 build
-a
$(EDK2_HOST_ARCH
) -p ShellPkg
/ShellPkg.dsc \
67 -b RELEASE
-t
$(EDK2_TOOLCHAIN
); \
68 cp
-a Build
/Shell
/RELEASE_
$(EDK2_TOOLCHAIN
)/$(EDK2_HOST_ARCH
)/Shell_7C04A583-9E3E-4f1c-AD65-E05268D0B4D1.efi \
69 ShellBinPkg
/UefiShell
/$(EDK2_ARCH_DIR
)/Shell.efi
; \
70 build
-a
$(EDK2_HOST_ARCH
) -p FatPkg
/FatPkg.dsc \
71 -m FatPkg
/EnhancedFatDxe
/Fat.inf \
72 -t
$(EDK2_TOOLCHAIN
) -b RELEASE
; \
73 cp
-a Build
/Fat
/RELEASE_
$(EDK2_TOOLCHAIN
)/$(EDK2_HOST_ARCH
)/Fat.efi \
74 FatBinPkg
/EnhancedFatDxe
/$(EDK2_ARCH_DIR
)/Fat.efi
; \
75 build
-a
$(EDK2_HOST_ARCH
) \
76 -t
$(EDK2_TOOLCHAIN
) \
77 -p ArmVirtPkg
/ArmVirtQemu.dsc \
78 -DHTTP_BOOT_ENABLE
=TRUE \
79 -DSECURE_BOOT_ENABLE
=FALSE \
84 dd if
=/dev
/zero of
=Build
/ArmVirtQemu-
$(EDK2_HOST_ARCH
)/RELEASE_
$(EDK2_TOOLCHAIN
)/FV
/$(FW_NAME
)_CODE.fd bs
=1M seek
=64 count
=0
85 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
86 dd if
=/dev
/zero of
=Build
/ArmVirtQemu-
$(EDK2_HOST_ARCH
)/RELEASE_
$(EDK2_TOOLCHAIN
)/FV
/$(FW_NAME
)_VARS.fd bs
=1M seek
=64 count
=0
88 build-qemu-efi-aarch64
:
89 $(MAKE
) -f debian
/rules build-qemu-efi EDK2_ARCH_DIR
=AArch64 EDK2_HOST_ARCH
=AARCH64 FW_NAME
=AAVMF
91 override_dh_auto_clean
:
93 if
[ -d BaseTools
/Source
/C
/bin
]; then \
94 . .
/edksetup.sh
; build
clean; \
95 make
-C BaseTools
clean; \
97 rm -rf Conf
/.cache Build .pc-post
99 .PHONY
: setup-build build-ovmf