[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH for-4.1 v4 11/12] Makefile: install the edk2 fir
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH for-4.1 v4 11/12] Makefile: install the edk2 firmware images and their descriptors |
Date: |
Wed, 10 Apr 2019 12:18:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.6.1 |
On 4/10/19 1:00 AM, Laszlo Ersek wrote:
> Decompress and install the edk2 firmware blobs as part of "make install",
> unless blob installation was disabled with configure's "--disable-blobs"
> option.
>
> Additionally, decompress the blobs as a pre-requisite for building softmmu
> binaries -- this is helpful for both "make check" and other ad-hoc tests
> one might want to run in the build directory.
>
> Signed-off-by: Laszlo Ersek <address@hidden>
> Reviewed-by: Michal Privoznik <address@hidden>
> Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
> Reviewed-by: Michael S. Tsirkin <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
Note that this job (with install) on Travis takes <30min:
https://travis-ci.org/philmd/qemu/jobs/518117217
> ---
>
> Notes:
> v4:
>
> - no change
>
> v3:
>
> - pick up Michal's R-b
>
> - pick up Phil's R-b
>
> - pick up Michael's R-b
>
> - Decompress fd.bz2 files with bzip2 rather than fd.xz files with xz, so
> that decompression at "make install" time succeed on older build OSes
> too [Peter]. Note that "BUNZIP2" matches the name of the actual
> command "bunzip2" (i.e. it is sensible), and that it consists of 7
> characters, satisfying the quiet-command limit.
>
> - do not pick up Phil's T-b, consequently
>
> - do not pick up Igor's T-b for the same reason
>
> v2:
>
> - adapt to tracking the edk2 flash device files in compressed form [Dan,
> Michael, Phil]
>
> - do not pick up Michal's and Michael's R-b's due to the above change
>
> configure | 1 +
> Makefile | 29 +++++++++++++++++++-
> .gitignore | 1 +
> 3 files changed, 30 insertions(+), 1 deletion(-)
>
> diff --git a/configure b/configure
> index 1c563a70276a..e1ad87b697e0 100755
> --- a/configure
> +++ b/configure
> @@ -7892,6 +7892,7 @@ for bios_file in \
> $source_path/pc-bios/*.img \
> $source_path/pc-bios/openbios-* \
> $source_path/pc-bios/u-boot.* \
> + $source_path/pc-bios/edk2-*.fd.bz2 \
> $source_path/pc-bios/palcode-*
> do
> LINKS="$LINKS pc-bios/$(basename $bios_file)"
> diff --git a/Makefile b/Makefile
> index 04a0d4505085..626a04d305cc 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -296,6 +296,10 @@ ui/input-keymap-%.c: $(KEYCODEMAP_GEN) $(KEYCODEMAP_CSV)
> $(SRC_PATH)/ui/Makefile
> $(KEYCODEMAP_GEN): .git-submodule-status
> $(KEYCODEMAP_CSV): .git-submodule-status
>
> +edk2-decompressed = $(basename $(wildcard pc-bios/edk2-*.fd.bz2))
> +pc-bios/edk2-%.fd: pc-bios/edk2-%.fd.bz2
> + $(call quiet-command,bzip2 -d -c $< > $@,"BUNZIP2",$<)
> +
> # Don't try to regenerate Makefile or configure
> # We don't generate any of them
> Makefile: ;
> @@ -445,6 +449,7 @@ $(SOFTMMU_SUBDIR_RULES): $(block-obj-y)
> $(SOFTMMU_SUBDIR_RULES): $(crypto-obj-y)
> $(SOFTMMU_SUBDIR_RULES): $(io-obj-y)
> $(SOFTMMU_SUBDIR_RULES): config-all-devices.mak
> +$(SOFTMMU_SUBDIR_RULES): $(edk2-decompressed)
>
> subdir-%:
> $(call quiet-command,$(MAKE) $(SUBDIR_MAKEFLAGS) -C $* V="$(V)"
> TARGET_DIR="$*/" all,)
> @@ -633,6 +638,7 @@ clean:
> ! -path ./roms/edk2/ArmPkg/Library/GccLto/liblto-arm.a \
> ! -path ./roms/edk2/BaseTools/Source/Python/UPT/Dll/sqlite3.dll
> \
> -exec rm {} +
> + rm -f $(edk2-decompressed)
> rm -f $(filter-out %.tlb,$(TOOLS)) $(HELPERS-y) qemu-ga TAGS cscope.*
> *.pod *~ */*~
> rm -f fsdev/*.pod scsi/*.pod
> rm -f qemu-img-cmds.h
> @@ -723,9 +729,14 @@ spapr-rtas.bin slof.bin skiboot.lid \
> palcode-clipper \
> u-boot.e500 u-boot-sam460-20100605.bin \
> qemu_vga.ndrv \
> +edk2-licenses.txt \
> hppa-firmware.img
> +
> +DESCS=50-edk2-i386-secure.json 50-edk2-x86_64-secure.json \
> +60-edk2-aarch64.json 60-edk2-arm.json 60-edk2-i386.json 60-edk2-x86_64.json
> else
> BLOBS=
> +DESCS=
> endif
>
> # Note that we manually filter-out the non-Sphinx documentation which
> @@ -786,7 +797,8 @@ endif
>
> ICON_SIZES=16x16 24x24 32x32 48x48 64x64 128x128 256x256 512x512
>
> -install: all $(if $(BUILD_DOCS),install-doc) install-datadir
> install-localstatedir
> +install: all $(if $(BUILD_DOCS),install-doc) install-datadir
> install-localstatedir \
> + $(if $(INSTALL_BLOBS),$(edk2-decompressed))
> ifneq ($(TOOLS),)
> $(call install-prog,$(subst
> qemu-ga,qemu-ga$(EXESUF),$(TOOLS)),$(DESTDIR)$(bindir))
> endif
> @@ -808,6 +820,21 @@ ifneq ($(BLOBS),)
> set -e; for x in $(BLOBS); do \
> $(INSTALL_DATA) $(SRC_PATH)/pc-bios/$$x
> "$(DESTDIR)$(qemu_datadir)"; \
> done
> +endif
> +ifdef INSTALL_BLOBS
> + set -e; for x in $(edk2-decompressed); do \
> + $(INSTALL_DATA) $$x "$(DESTDIR)$(qemu_datadir)"; \
> + done
> +endif
> +ifneq ($(DESCS),)
> + $(INSTALL_DIR) "$(DESTDIR)$(qemu_datadir)/firmware"
> + set -e; tmpf=$$(mktemp); trap 'rm -f -- "$$tmpf"' EXIT; \
> + for x in $(DESCS); do \
> + sed -e 's,@DATADIR@,$(DESTDIR)$(qemu_datadir),' \
> + "$(SRC_PATH)/pc-bios/descriptors/$$x" > "$$tmpf"; \
> + $(INSTALL_DATA) "$$tmpf" \
> + "$(DESTDIR)$(qemu_datadir)/firmware/$$x"; \
> + done
> endif
> for s in $(ICON_SIZES); do \
> mkdir -p "$(DESTDIR)/$(qemu_icondir)/hicolor/$${s}/apps"; \
> diff --git a/.gitignore b/.gitignore
> index 8f782218044e..fd6e6c38c7b9 100644
> --- a/.gitignore
> +++ b/.gitignore
> @@ -97,6 +97,7 @@
> *.gcno
> *.gcov
> /pc-bios/bios-pq/status
> +/pc-bios/edk2-*.fd
> /pc-bios/vgabios-pq/status
> /pc-bios/optionrom/linuxboot.asm
> /pc-bios/optionrom/linuxboot.bin
>
- [Qemu-devel] [PATCH for-4.1 v4 04/12] roms/edk2: advance to tag edk2-stable201903, (continued)
- [Qemu-devel] [PATCH for-4.1 v4 04/12] roms/edk2: advance to tag edk2-stable201903, Laszlo Ersek, 2019/04/09
- [Qemu-devel] [PATCH for-4.1 v4 07/12] roms: build edk2 firmware binaries and variable store templates, Laszlo Ersek, 2019/04/09
- [Qemu-devel] [PATCH for-4.1 v4 08/12] pc-bios: add edk2 firmware binaries and variable store templates, Laszlo Ersek, 2019/04/09
- [Qemu-devel] [PATCH for-4.1 v4 09/12] pc-bios: document the edk2 firmware images; add firmware descriptors, Laszlo Ersek, 2019/04/09
- [Qemu-devel] [PATCH for-4.1 v4 10/12] tests: add missing dependency to build QTEST_QEMU_BINARY, round 2, Laszlo Ersek, 2019/04/09
- [Qemu-devel] [PATCH for-4.1 v4 11/12] Makefile: install the edk2 firmware images and their descriptors, Laszlo Ersek, 2019/04/09
- Re: [Qemu-devel] [PATCH for-4.1 v4 11/12] Makefile: install the edk2 firmware images and their descriptors,
Philippe Mathieu-Daudé <=
- [Qemu-devel] [PATCH for-4.1 v4 12/12] MAINTAINERS: add the "EDK2 Firmware" subsystem, Laszlo Ersek, 2019/04/09
- Re: [Qemu-devel] [PATCH for-4.1 v4 00/12] bundle edk2 platform firmware with QEMU, Michael S. Tsirkin, 2019/04/09
- Re: [Qemu-devel] [PATCH for-4.1 v4 00/12] bundle edk2 platform firmware with QEMU, Igor Mammedov, 2019/04/10