diff options
author | Michael Brown | 2013-05-14 21:08:26 +0200 |
---|---|---|
committer | Michael Brown | 2013-05-14 21:46:53 +0200 |
commit | dbea47ce7d61f253b58aa7268b0261922a6b1a22 (patch) | |
tree | 5f2879d5c7d5b55931f386af04f8ff30499ba7a4 | |
parent | [build] Provide "allXXXs" targets for all media on all platforms (diff) | |
download | ipxe-dbea47ce7d61f253b58aa7268b0261922a6b1a22.tar.gz ipxe-dbea47ce7d61f253b58aa7268b0261922a6b1a22.tar.xz ipxe-dbea47ce7d61f253b58aa7268b0261922a6b1a22.zip |
[build] Add efidrv.cab target for UEFI Secure Boot signing
Signed-off-by: Michael Brown <mcb30@ipxe.org>
-rw-r--r-- | src/Makefile | 1 | ||||
-rw-r--r-- | src/Makefile.housekeeping | 4 | ||||
-rw-r--r-- | src/arch/i386/Makefile.pcbios | 8 | ||||
-rw-r--r-- | src/arch/x86/Makefile.efi | 10 |
4 files changed, 17 insertions, 6 deletions
diff --git a/src/Makefile b/src/Makefile index 207369a9..c6f090d9 100644 --- a/src/Makefile +++ b/src/Makefile @@ -49,6 +49,7 @@ ICCFIX := ./util/iccfix EINFO := ./util/einfo GENKEYMAP := ./util/genkeymap.pl DOXYGEN := doxygen +LCAB := lcab BINUTILS_DIR := /usr BFD_DIR := $(BINUTILS_DIR) ZLIB_DIR := /usr diff --git a/src/Makefile.housekeeping b/src/Makefile.housekeeping index b4023ac6..80b70f5c 100644 --- a/src/Makefile.housekeeping +++ b/src/Makefile.housekeeping @@ -1086,7 +1086,9 @@ automedia : # define media_template $(if $(filter $(1),$(AUTO_MEDIA)),$(call auto_media_template,$(1))) -$$(BIN)/all$(1)s : $$(foreach DRIVER,$$(DRIVERS),$$(BIN)/$$(DRIVER).$(1)) +LIST_$(1) := $$(if $$(LIST_NAME_$(1)),$$($$(LIST_NAME_$(1))),$$(DRIVERS)) +ALL_$(1) = $$(foreach ITEM,$$(LIST_$(1)),$$(BIN)/$$(ITEM).$(1)) +$$(BIN)/all$(1)s : $$(ALL_$(1)) $$(BIN)/allall : $$(BIN)/all$(1)s all$(1)s : $$(BIN)/all$(1)s allall : $$(BIN)/allall diff --git a/src/arch/i386/Makefile.pcbios b/src/arch/i386/Makefile.pcbios index 32800cde..d3fe8b9e 100644 --- a/src/arch/i386/Makefile.pcbios +++ b/src/arch/i386/Makefile.pcbios @@ -40,12 +40,10 @@ PAD_exe = $(PERL) $(PADIMG) --blksize=512 FINALISE_rom = $(PERL) $(FIXROM) FINALISE_mrom = $(FINALISE_rom) -# Add per-ROM targets for "allroms" +# Use $(ROMS) rather than $(DRIVERS) for "allroms" and "allmroms" # -$(BIN)/allroms : $(foreach ROM,$(ROMS),$(BIN)/$(ROM).rom) -$(BIN)/allmroms : $(foreach ROM,$(ROMS),$(BIN)/$(ROM).mrom) -allroms : $(BIN)/allroms -allmroms : $(BIN)/allmroms +LIST_NAME_rom := ROMS +LIST_NAME_mrom := ROMS # rule to make a non-emulation ISO boot image NON_AUTO_MEDIA += iso diff --git a/src/arch/x86/Makefile.efi b/src/arch/x86/Makefile.efi index bef8d59d..3e3fbe3c 100644 --- a/src/arch/x86/Makefile.efi +++ b/src/arch/x86/Makefile.efi @@ -12,6 +12,8 @@ LDFLAGS += -q -S # NON_AUTO_MEDIA += efi NON_AUTO_MEDIA += efidrv +NON_AUTO_MEDIA += drv.efi +NON_AUTO_MEDIA += efirom # Rules for building EFI files # @@ -23,6 +25,14 @@ $(BIN)/%.efidrv : $(BIN)/%.efidrv.tmp $(ELF2EFI) $(QM)$(ECHO) " [FINISH] $@" $(Q)$(ELF2EFI) --subsystem=11 $< $@ +$(BIN)/%.drv.efi : $(BIN)/%.efidrv + $(QM)$(ECHO) " [FINISH] $@" + $(Q)$(CP) $< $@ + $(BIN)/%.efirom : $(BIN)/%.efidrv $(EFIROM) $(QM)$(ECHO) " [FINISH] $@" $(Q)$(EFIROM) -v $(TGT_PCI_VENDOR) -d $(TGT_PCI_DEVICE) $< $@ + +$(BIN)/efidrv.cab : $(BIN)/alldrv.efis # $(ALL_drv.efi) is not yet defined + $(QM)$(ECHO) " [CAB] $@" + $(Q)$(LCAB) -n -q $(ALL_drv.efi) $@ |