Since commit f590a812c210 we build the EDK2 EfiRom utility unconditionally. This has been tested on all the Linux distribution providing continuous integration (namely Debian and Fedora). Not all distributions are able to build the EfiRom without specific patches (In particular SUSE which enforces the PIE protection, see [*]).
Restore the possibility to other distributions to override the EDK2_EFIROM variable. [*] https://lists.opensuse.org/opensuse-factory/2017-06/msg00403.html Reported-by: Olaf Hering <o...@aepfle.de> Signed-off-by: Philippe Mathieu-Daudé <phi...@redhat.com> --- roms/Makefile | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/roms/Makefile b/roms/Makefile index d28252dafdf..ea19aa9b33c 100644 --- a/roms/Makefile +++ b/roms/Makefile @@ -47,7 +47,11 @@ SEABIOS_EXTRAVERSION="-prebuilt.qemu.org" # We need that to combine multiple images (legacy bios, # efi ia32, efi x64) into a single rom binary. # -EDK2_EFIROM = edk2/BaseTools/Source/C/bin/EfiRom +# By default we build the latest EDK2 stable EfiRom utility. +# If you have to use another one, you can also pass the location on +# the command line, i.e. "make EDK2_EFIROM=$(type -P EfiRom) efirom" +# +EDK2_EFIROM ?= edk2/BaseTools/Source/C/bin/EfiRom default: @echo "nothing is build by default" @@ -120,8 +124,11 @@ build-efi-roms: build-pxe-roms $(patsubst %,bin-i386-efi/%.efidrv,$(pxerom_targets)) \ $(patsubst %,bin-x86_64-efi/%.efidrv,$(pxerom_targets)) +# Do not compile $(EDK2_EFIROM) if the variable is overridden +ifeq "$(origin EDK2_EFIROM)" "file" $(EDK2_EFIROM): $(MAKE) -C edk2/BaseTools +endif slof: $(MAKE) -C SLOF CROSS=$(powerpc64_cross_prefix) qemu -- 2.20.1