]> git.ipfire.org Git - thirdparty/ipxe.git/commitdiff
[build] Add efidrv.cab target for UEFI Secure Boot signing
authorMichael Brown <mcb30@ipxe.org>
Tue, 14 May 2013 19:08:26 +0000 (20:08 +0100)
committerMichael Brown <mcb30@ipxe.org>
Tue, 14 May 2013 19:46:53 +0000 (20:46 +0100)
Signed-off-by: Michael Brown <mcb30@ipxe.org>
src/Makefile
src/Makefile.housekeeping
src/arch/i386/Makefile.pcbios
src/arch/x86/Makefile.efi

index 207369a96f8fcbad84b758fb29d34e63c1ea9c48..c6f090d96a21a3825165d1fb0cab8804778d0210 100644 (file)
@@ -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
index b4023ac6173f0a9b68cd91fd9c642c5ffb576202..80b70f5cd00962aa4dc5f40754bb322263769da5 100644 (file)
@@ -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
index 32800cdecf07ac4df172894cfb89122464bfc7c6..d3fe8b9e60765c5a9a4f525528f4a47d859835b1 100644 (file)
@@ -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
index bef8d59d8de43980e4e786cb8c7eb9bb3e781320..3e3fbe3cac15963f253b56742e54799450a97b75 100644 (file)
@@ -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) $@