[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH for-4.1 v3 11/12] Makefile: install the edk2 firmwar
From: |
Laszlo Ersek |
Subject: |
[Qemu-devel] [PATCH for-4.1 v3 11/12] Makefile: install the edk2 firmware images and their descriptors |
Date: |
Thu, 21 Mar 2019 12:34:07 +0100 |
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>
---
Notes:
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 c5032425e6d3..df6e01ada833 100755
--- a/configure
+++ b/configure
@@ -7865,6 +7865,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 d8dad39c5db1..f4562092e8dc 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: ;
@@ -444,6 +448,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,)
@@ -632,6 +637,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
@@ -722,9 +728,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
@@ -785,7 +796,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
@@ -807,6 +819,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
--
2.19.1.3.g30247aa5d201
- [Qemu-devel] [PATCH for-4.1 v3 00/12] bundle edk2 platform firmware with QEMU, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 11/12] Makefile: install the edk2 firmware images and their descriptors,
Laszlo Ersek <=
- [Qemu-devel] [PATCH for-4.1 v3 12/12] MAINTAINERS: add the "EDK2 Firmware" subsystem, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 10/12] tests: add missing dependency to build QTEST_QEMU_BINARY, round 2, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 09/12] pc-bios: document the edk2 firmware images; add firmware descriptors, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 08/12] pc-bios: add edk2 firmware binaries and variable store templates, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 07/12] roms: build edk2 firmware binaries and variable store templates, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 06/12] roms/Makefile: replace the $(EFIROM) target with "edk2-basetools", Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 05/12] roms/edk2-funcs.sh: add the qemu_edk2_get_thread_count() function, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 03/12] tests/uefi-test-tools/build.sh: work around TianoCore#1607, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 02/12] roms/edk2-funcs.sh: require gcc-4.8+ for building i386 and x86_64, Laszlo Ersek, 2019/03/21
- [Qemu-devel] [PATCH for-4.1 v3 04/12] roms/edk2: advance to tag edk2-stable201903, Laszlo Ersek, 2019/03/21