]> git.proxmox.com Git - pve-edk2-firmware.git/blob - debian/rules
fb85b293e6de8cadbb13e8fe9d287d675e0caaa0
[pve-edk2-firmware.git] / debian / rules
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