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
 EINFO		:= ./util/einfo
49
 EINFO		:= ./util/einfo
50
 GENKEYMAP	:= ./util/genkeymap.pl
50
 GENKEYMAP	:= ./util/genkeymap.pl
51
 DOXYGEN		:= doxygen
51
 DOXYGEN		:= doxygen
52
+LCAB		:= lcab
52
 BINUTILS_DIR	:= /usr
53
 BINUTILS_DIR	:= /usr
53
 BFD_DIR		:= $(BINUTILS_DIR)
54
 BFD_DIR		:= $(BINUTILS_DIR)
54
 ZLIB_DIR	:= /usr
55
 ZLIB_DIR	:= /usr

+ 3
- 1
src/Makefile.housekeeping View File

1086
 #
1086
 #
1087
 define media_template
1087
 define media_template
1088
 $(if $(filter $(1),$(AUTO_MEDIA)),$(call auto_media_template,$(1)))
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
 $$(BIN)/allall : $$(BIN)/all$(1)s
1092
 $$(BIN)/allall : $$(BIN)/all$(1)s
1091
 all$(1)s : $$(BIN)/all$(1)s
1093
 all$(1)s : $$(BIN)/all$(1)s
1092
 allall : $$(BIN)/allall
1094
 allall : $$(BIN)/allall

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

40
 FINALISE_rom	= $(PERL) $(FIXROM)
40
 FINALISE_rom	= $(PERL) $(FIXROM)
41
 FINALISE_mrom	= $(FINALISE_rom)
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
 # rule to make a non-emulation ISO boot image
48
 # rule to make a non-emulation ISO boot image
51
 NON_AUTO_MEDIA	+= iso
49
 NON_AUTO_MEDIA	+= iso

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

12
 #
12
 #
13
 NON_AUTO_MEDIA	+= efi
13
 NON_AUTO_MEDIA	+= efi
14
 NON_AUTO_MEDIA	+= efidrv
14
 NON_AUTO_MEDIA	+= efidrv
15
+NON_AUTO_MEDIA	+= drv.efi
16
+NON_AUTO_MEDIA	+= efirom
15
 
17
 
16
 # Rules for building EFI files
18
 # Rules for building EFI files
17
 #
19
 #
23
 	$(QM)$(ECHO) "  [FINISH] $@"
25
 	$(QM)$(ECHO) "  [FINISH] $@"
24
 	$(Q)$(ELF2EFI) --subsystem=11 $< $@
26
 	$(Q)$(ELF2EFI) --subsystem=11 $< $@
25
 
27
 
28
+$(BIN)/%.drv.efi : $(BIN)/%.efidrv
29
+	$(QM)$(ECHO) "  [FINISH] $@"
30
+	$(Q)$(CP) $< $@
31
+
26
 $(BIN)/%.efirom : $(BIN)/%.efidrv $(EFIROM)
32
 $(BIN)/%.efirom : $(BIN)/%.efidrv $(EFIROM)
27
 	$(QM)$(ECHO) "  [FINISH] $@"
33
 	$(QM)$(ECHO) "  [FINISH] $@"
28
 	$(Q)$(EFIROM) -v $(TGT_PCI_VENDOR) -d $(TGT_PCI_DEVICE) $< $@
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