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 ifeq ($(DEB_BUILD_ARCH
),amd64
)
19 ifeq ($(DEB_BUILD_ARCH
),arm64
)
20 EDK2_BUILD_ARCH
=AARCH64
22 ifeq ($(DEB_HOST_ARCH
),amd64
)
26 # Clear variables used internally by the edk2 build system
31 undefine EDK_TOOLS_PATH
37 override_dh_auto_build
: build-qemu-efi-aarch64 build-ovmf
40 cp
-a debian
/Logo.bmp MdeModulePkg
/Logo
/Logo.bmp
41 make
-C BaseTools ARCH
=$(EDK2_BUILD_ARCH
)
42 # call this when building too, it modifies the shell environment
45 build-ovmf
: EDK2_ARCH_DIR
=X64
46 build-ovmf
: EDK2_HOST_ARCH
=X64
47 build-ovmf
: setup-build
48 set
-e
; . .
/edksetup.sh
; \
51 -a
$(EDK2_HOST_ARCH
) \
52 -t
$(EDK2_TOOLCHAIN
) \
53 -DSECURE_BOOT_ENABLE
=FALSE \
55 -n
$$(getconf _NPROCESSORS_ONLN
)
57 build-qemu-efi
: setup-build
58 echo FOO
"$${$(EDK2_TOOLCHAIN)_AARCH64_PREFIX}"
59 mkdir
-p ShellBinPkg
/UefiShell
/$(EDK2_ARCH_DIR
) FatBinPkg
/EnhancedFatDxe
/$(EDK2_ARCH_DIR
)
60 set
-e
; . .
/edksetup.sh
; \
61 build
-a
$(EDK2_HOST_ARCH
) -p ShellPkg
/ShellPkg.dsc \
62 -b RELEASE
-t
$(EDK2_TOOLCHAIN
); \
63 cp
-a Build
/Shell
/RELEASE_
$(EDK2_TOOLCHAIN
)/$(EDK2_HOST_ARCH
)/Shell_7C04A583-9E3E-4f1c-AD65-E05268D0B4D1.efi \
64 ShellBinPkg
/UefiShell
/$(EDK2_ARCH_DIR
)/Shell.efi
; \
65 build
-a
$(EDK2_HOST_ARCH
) -p FatPkg
/FatPkg.dsc \
66 -m FatPkg
/EnhancedFatDxe
/Fat.inf \
67 -t
$(EDK2_TOOLCHAIN
) -b RELEASE
; \
68 cp
-a Build
/Fat
/RELEASE_
$(EDK2_TOOLCHAIN
)/$(EDK2_HOST_ARCH
)/Fat.efi \
69 FatBinPkg
/EnhancedFatDxe
/$(EDK2_ARCH_DIR
)/Fat.efi
; \
70 build
-a
$(EDK2_HOST_ARCH
) \
71 -t
$(EDK2_TOOLCHAIN
) \
72 -p ArmVirtPkg
/ArmVirtQemu.dsc \
73 -DHTTP_BOOT_ENABLE
=TRUE \
74 -DSECURE_BOOT_ENABLE
=FALSE \
77 dd if
=/dev
/zero of
=Build
/ArmVirtQemu-
$(EDK2_HOST_ARCH
)/RELEASE_
$(EDK2_TOOLCHAIN
)/FV
/$(FW_NAME
)_CODE.fd bs
=1M seek
=64 count
=0
78 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
79 dd if
=/dev
/zero of
=Build
/ArmVirtQemu-
$(EDK2_HOST_ARCH
)/RELEASE_
$(EDK2_TOOLCHAIN
)/FV
/$(FW_NAME
)_VARS.fd bs
=1M seek
=64 count
=0
81 build-qemu-efi-aarch64
:
82 $(MAKE
) -f debian
/rules build-qemu-efi EDK2_ARCH_DIR
=AArch64 EDK2_HOST_ARCH
=AARCH64 FW_NAME
=AAVMF
84 override_dh_auto_clean
:
86 if
[ -d BaseTools
/Source
/C
/bin
]; then \
87 . .
/edksetup.sh
; build
clean; \
88 make
-C BaseTools
clean; \
90 rm -rf Conf
/.cache Build .pc-post
92 .PHONY
: setup-build build-ovmf