SHELL = /bin/bash
+target = RELEASE
toolchain = $(shell source ./edk2-funcs.sh && qemu_edk2_get_toolchain $(1))
licenses := \
edk2/License.txt \
+ edk2/License-History.txt \
edk2/OvmfPkg/License.txt \
+ edk2/ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3/COPYING.txt \
edk2/CryptoPkg/Library/OpensslLib/openssl/LICENSE
# The "edk2-arm-vars.fd" varstore template is suitable for aarch64 as well.
i386-secure-code \
x86_64-code \
x86_64-secure-code \
+ x86_64-microvm \
\
arm-vars \
i386-vars
# files.
.INTERMEDIATE: $(foreach flashdev,$(flashdevs),../pc-bios/edk2-$(flashdev).fd)
+# Fetch edk2 submodule's submodules. If it is not in a git tree, assume
+# we're building from a tarball and that they've already been fetched by
+# make-release/tarball scripts.
submodules:
- cd edk2 && git submodule update --init --force
+ if test -e edk2/.git; then \
+ cd edk2 && git submodule update --init --force -- \
+ ArmPkg/Library/ArmSoftFloatLib/berkeley-softfloat-3 \
+ BaseTools/Source/C/BrotliCompress/brotli \
+ CryptoPkg/Library/OpensslLib/openssl \
+ MdeModulePkg/Library/BrotliCustomDecompressLib/brotli \
+ ; \
+ fi
# See notes on the ".NOTPARALLEL" target and the "+" indicator in
# "tests/uefi-test-tools/Makefile".
--platform=ArmVirtPkg/ArmVirtQemu.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE
- cp edk2/Build/ArmVirtQemu-AARCH64/DEBUG_$(call toolchain,aarch64)/FV/QEMU_EFI.fd \
+ -D NETWORK_TLS_ENABLE \
+ -D TPM2_ENABLE \
+ -D TPM2_CONFIG_ENABLE
+ cp edk2/Build/ArmVirtQemu-AARCH64/$(target)_$(call toolchain,aarch64)/FV/QEMU_EFI.fd \
$@
truncate --size=64M $@
--platform=ArmVirtPkg/ArmVirtQemu.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE
- cp edk2/Build/ArmVirtQemu-ARM/DEBUG_$(call toolchain,arm)/FV/QEMU_EFI.fd \
+ -D NETWORK_TLS_ENABLE \
+ -D TPM2_ENABLE \
+ -D TPM2_CONFIG_ENABLE
+ cp edk2/Build/ArmVirtQemu-ARM/$(target)_$(call toolchain,arm)/FV/QEMU_EFI.fd \
$@
truncate --size=64M $@
--platform=OvmfPkg/OvmfPkgIa32.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE \
-D NETWORK_TLS_ENABLE \
- -D TLS_ENABLE \
- -D TPM2_ENABLE \
- -D TPM2_CONFIG_ENABLE
- cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_CODE.fd $@
+ -D TPM_ENABLE \
+ -D TPM_CONFIG_ENABLE
+ cp edk2/Build/OvmfIa32/$(target)_$(call toolchain,i386)/FV/OVMF_CODE.fd $@
../pc-bios/edk2-i386-secure-code.fd: submodules
+./edk2-build.sh \
--platform=OvmfPkg/OvmfPkgIa32.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE \
-D NETWORK_TLS_ENABLE \
- -D TLS_ENABLE \
- -D TPM2_ENABLE \
- -D TPM2_CONFIG_ENABLE \
+ -D TPM_ENABLE \
+ -D TPM_CONFIG_ENABLE \
-D SECURE_BOOT_ENABLE \
-D SMM_REQUIRE
- cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_CODE.fd $@
+ cp edk2/Build/OvmfIa32/$(target)_$(call toolchain,i386)/FV/OVMF_CODE.fd $@
../pc-bios/edk2-x86_64-code.fd: submodules
+./edk2-build.sh \
--platform=OvmfPkg/OvmfPkgX64.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE \
-D NETWORK_TLS_ENABLE \
- -D TLS_ENABLE \
- -D TPM2_ENABLE \
- -D TPM2_CONFIG_ENABLE
- cp edk2/Build/OvmfX64/DEBUG_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@
+ -D TPM_ENABLE \
+ -D TPM_CONFIG_ENABLE
+ cp edk2/Build/OvmfX64/$(target)_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@
../pc-bios/edk2-x86_64-secure-code.fd: submodules
+./edk2-build.sh \
--platform=OvmfPkg/OvmfPkgIa32X64.dsc \
-D NETWORK_IP6_ENABLE \
-D NETWORK_HTTP_BOOT_ENABLE \
- -D HTTP_BOOT_ENABLE \
-D NETWORK_TLS_ENABLE \
- -D TLS_ENABLE \
- -D TPM2_ENABLE \
- -D TPM2_CONFIG_ENABLE \
+ -D TPM_ENABLE \
+ -D TPM_CONFIG_ENABLE \
-D SECURE_BOOT_ENABLE \
-D SMM_REQUIRE
- cp edk2/Build/Ovmf3264/DEBUG_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@
+ cp edk2/Build/Ovmf3264/$(target)_$(call toolchain,x86_64)/FV/OVMF_CODE.fd $@
+
+../pc-bios/edk2-x86_64-microvm.fd: submodules
+ +./edk2-build.sh \
+ x86_64 \
+ --arch=X64 \
+ --platform=OvmfPkg/Microvm/MicrovmX64.dsc \
+ -D NETWORK_IP6_ENABLE \
+ -D NETWORK_HTTP_BOOT_ENABLE \
+ -D NETWORK_TLS_ENABLE
+ cp edk2/Build/MicrovmX64/$(target)_$(call toolchain,x86_64)/FV/MICROVM.fd $@
../pc-bios/edk2-arm-vars.fd: ../pc-bios/edk2-arm-code.fd
- cp edk2/Build/ArmVirtQemu-ARM/DEBUG_$(call toolchain,arm)/FV/QEMU_VARS.fd \
+ cp edk2/Build/ArmVirtQemu-ARM/$(target)_$(call toolchain,arm)/FV/QEMU_VARS.fd \
$@
truncate --size=64M $@
../pc-bios/edk2-i386-vars.fd: ../pc-bios/edk2-i386-code.fd
- cp edk2/Build/OvmfIa32/DEBUG_$(call toolchain,i386)/FV/OVMF_VARS.fd $@
+ cp edk2/Build/OvmfIa32/$(target)_$(call toolchain,i386)/FV/OVMF_VARS.fd $@
# The license file accumulates several individual licenses from under edk2,
# prefixing each individual license with a header (generated by "tail") that