]> git.proxmox.com Git - pve-edk2-firmware.git/blob - debian/rules
bump version to 4.2023.08-4
[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 -DTPM_ENABLE=TRUE \
58 -DTPM2_ENABLE=TRUE \
59 -DFD_SIZE_2MB \
60 -n $$(getconf _NPROCESSORS_ONLN)
61
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 \
80 -DTPM_ENABLE=TRUE \
81 -DTPM2_ENABLE=TRUE \
82 -DINTEL_BDS \
83 -b RELEASE
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
87
88 build-qemu-efi-aarch64:
89 $(MAKE) -f debian/rules build-qemu-efi EDK2_ARCH_DIR=AArch64 EDK2_HOST_ARCH=AARCH64 FW_NAME=AAVMF
90
91 override_dh_auto_clean:
92 set -e; \
93 if [ -d BaseTools/Source/C/bin ]; then \
94 . ./edksetup.sh; build clean; \
95 make -C BaseTools clean; \
96 fi
97 rm -rf Conf/.cache Build .pc-post
98
99 .PHONY: setup-build build-ovmf