Browse Source

[build] Add efidrv.cab target for UEFI Secure Boot signing

Signed-off-by: Michael Brown <mcb30@ipxe.org>
tags/v1.20.1
Michael Brown 11 years ago
parent
commit
dbea47ce7d
4 changed files with 17 additions and 6 deletions
  1. 1
    0
      src/Makefile
  2. 3
    1
      src/Makefile.housekeeping
  3. 3
    5
      src/arch/i386/Makefile.pcbios
  4. 10
    0
      src/arch/x86/Makefile.efi

+ 1
- 0
src/Makefile View File

@@ -49,6 +49,7 @@ ICCFIX		:= ./util/iccfix
49 49
 EINFO		:= ./util/einfo
50 50
 GENKEYMAP	:= ./util/genkeymap.pl
51 51
 DOXYGEN		:= doxygen
52
+LCAB		:= lcab
52 53
 BINUTILS_DIR	:= /usr
53 54
 BFD_DIR		:= $(BINUTILS_DIR)
54 55
 ZLIB_DIR	:= /usr

+ 3
- 1
src/Makefile.housekeeping View File

@@ -1086,7 +1086,9 @@ automedia :
1086 1086
 #
1087 1087
 define media_template
1088 1088
 $(if $(filter $(1),$(AUTO_MEDIA)),$(call auto_media_template,$(1)))
1089
-$$(BIN)/all$(1)s : $$(foreach DRIVER,$$(DRIVERS),$$(BIN)/$$(DRIVER).$(1))
1089
+LIST_$(1) := $$(if $$(LIST_NAME_$(1)),$$($$(LIST_NAME_$(1))),$$(DRIVERS))
1090
+ALL_$(1) = $$(foreach ITEM,$$(LIST_$(1)),$$(BIN)/$$(ITEM).$(1))
1091
+$$(BIN)/all$(1)s : $$(ALL_$(1))
1090 1092
 $$(BIN)/allall : $$(BIN)/all$(1)s
1091 1093
 all$(1)s : $$(BIN)/all$(1)s
1092 1094
 allall : $$(BIN)/allall

+ 3
- 5
src/arch/i386/Makefile.pcbios View File

@@ -40,12 +40,10 @@ PAD_exe		= $(PERL) $(PADIMG) --blksize=512
40 40
 FINALISE_rom	= $(PERL) $(FIXROM)
41 41
 FINALISE_mrom	= $(FINALISE_rom)
42 42
 
43
-# Add per-ROM targets for "allroms"
43
+# Use $(ROMS) rather than $(DRIVERS) for "allroms" and "allmroms"
44 44
 #
45
-$(BIN)/allroms : $(foreach ROM,$(ROMS),$(BIN)/$(ROM).rom)
46
-$(BIN)/allmroms : $(foreach ROM,$(ROMS),$(BIN)/$(ROM).mrom)
47
-allroms : $(BIN)/allroms
48
-allmroms : $(BIN)/allmroms
45
+LIST_NAME_rom := ROMS
46
+LIST_NAME_mrom := ROMS
49 47
 
50 48
 # rule to make a non-emulation ISO boot image
51 49
 NON_AUTO_MEDIA	+= iso

+ 10
- 0
src/arch/x86/Makefile.efi View File

@@ -12,6 +12,8 @@ LDFLAGS		+= -q -S
12 12
 #
13 13
 NON_AUTO_MEDIA	+= efi
14 14
 NON_AUTO_MEDIA	+= efidrv
15
+NON_AUTO_MEDIA	+= drv.efi
16
+NON_AUTO_MEDIA	+= efirom
15 17
 
16 18
 # Rules for building EFI files
17 19
 #
@@ -23,6 +25,14 @@ $(BIN)/%.efidrv : $(BIN)/%.efidrv.tmp $(ELF2EFI)
23 25
 	$(QM)$(ECHO) "  [FINISH] $@"
24 26
 	$(Q)$(ELF2EFI) --subsystem=11 $< $@
25 27
 
28
+$(BIN)/%.drv.efi : $(BIN)/%.efidrv
29
+	$(QM)$(ECHO) "  [FINISH] $@"
30
+	$(Q)$(CP) $< $@
31
+
26 32
 $(BIN)/%.efirom : $(BIN)/%.efidrv $(EFIROM)
27 33
 	$(QM)$(ECHO) "  [FINISH] $@"
28 34
 	$(Q)$(EFIROM) -v $(TGT_PCI_VENDOR) -d $(TGT_PCI_DEVICE) $< $@
35
+
36
+$(BIN)/efidrv.cab : $(BIN)/alldrv.efis # $(ALL_drv.efi) is not yet defined
37
+	$(QM)$(ECHO) "  [CAB] $@"
38
+	$(Q)$(LCAB) -n -q $(ALL_drv.efi) $@

Loading…
Cancel
Save