]> git.proxmox.com Git - pve-edk2-firmware.git/blame - debian/rules
enable TPM and TPM2 support
[pve-edk2-firmware.git] / debian / rules
CommitLineData
33bf0acc
TL
1#!/usr/bin/make -f
2SHELL=/bin/bash
3
4# this is a simplified version from the upstream package
5
20ffa59c 6# Only used for creating our build tools.
33bf0acc 7DEB_BUILD_ARCH ?= $(shell dpkg-architecture -qDEB_BUILD_ARCH)
20ffa59c
TL
8DEB_HOST_ARCH ?= $(shell dpkg-architecture -qDEB_HOST_ARCH)
9DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
33bf0acc 10
20ffa59c
TL
11# for GCC5 and newer, LTO enabled
12EDK2_TOOLCHAIN=GCC5
13AARCH64_TOOLCHAIN=GCC5
33bf0acc
TL
14export $(EDK2_TOOLCHAIN)_AARCH64_PREFIX=aarch64-linux-gnu-
15
1da98c7b
TL
16export PYTHON3_ENABLE="TRUE"
17export PYTHON_COMMAND="python3"
18
33bf0acc
TL
19ifeq ($(DEB_BUILD_ARCH),amd64)
20 EDK2_BUILD_ARCH=X64
33bf0acc
TL
21endif
22ifeq ($(DEB_BUILD_ARCH),arm64)
23 EDK2_BUILD_ARCH=AARCH64
24endif
20ffa59c
TL
25ifeq ($(DEB_HOST_ARCH),amd64)
26 EDK2_HOST_ARCH=X64
27endif
33bf0acc
TL
28
29# Clear variables used internally by the edk2 build system
30undefine WORKSPACE
31undefine ECP_SOURCE
32undefine EDK_SOURCE
33undefine EFI_SOURCE
34undefine EDK_TOOLS_PATH
35undefine CONF_PATH
36
37%:
38 dh $@
39
20ffa59c 40override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf
33bf0acc
TL
41
42setup-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
48build-ovmf: EDK2_ARCH_DIR=X64
49build-ovmf: EDK2_HOST_ARCH=X64
50build-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 \
111c5776
SR
57 -DTPM_ENABLE=TRUE \
58 -DTPM2_ENABLE=TRUE \
33bf0acc
TL
59 -DFD_SIZE_2MB \
60 -n $$(getconf _NPROCESSORS_ONLN)
61
20ffa59c
TL
62build-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); \
7ea3cb51 68 cp -a Build/Shell/RELEASE_$(EDK2_TOOLCHAIN)/$(EDK2_HOST_ARCH)/Shell_7C04A583-9E3E-4f1c-AD65-E05268D0B4D1.efi \
20ffa59c
TL
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 \
111c5776
SR
80 -DTPM_ENABLE=TRUE \
81 -DTPM2_ENABLE=TRUE \
20ffa59c
TL
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
88build-qemu-efi-aarch64:
89 $(MAKE) -f debian/rules build-qemu-efi EDK2_ARCH_DIR=AArch64 EDK2_HOST_ARCH=AARCH64 FW_NAME=AAVMF
90
33bf0acc
TL
91override_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