summaryrefslogtreecommitdiffstats
path: root/src/Makefile.efi
diff options
context:
space:
mode:
authorMichael Brown2016-03-12 22:47:13 +0100
committerMichael Brown2016-03-12 22:47:13 +0100
commita8037ee131a9501ddfc89ce157e3718b1a3b86a7 (patch)
tree918210dd467c16d5778a9ebd229d5060957a3ce5 /src/Makefile.efi
parent[tg3] Remove x86-specific inline assembly (diff)
downloadipxe-a8037ee131a9501ddfc89ce157e3718b1a3b86a7.tar.gz
ipxe-a8037ee131a9501ddfc89ce157e3718b1a3b86a7.tar.xz
ipxe-a8037ee131a9501ddfc89ce157e3718b1a3b86a7.zip
[efi] Centralise architecture-independent EFI Makefile and linker script
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/Makefile.efi')
-rw-r--r--src/Makefile.efi46
1 files changed, 46 insertions, 0 deletions
diff --git a/src/Makefile.efi b/src/Makefile.efi
new file mode 100644
index 00000000..151b3318
--- /dev/null
+++ b/src/Makefile.efi
@@ -0,0 +1,46 @@
+# -*- makefile -*- : Force emacs to use Makefile mode
+
+# The EFI linker script
+#
+LDSCRIPT = scripts/efi.lds
+
+# Retain relocation information for elf2efi
+#
+LDFLAGS += -q -S
+
+# Media types.
+#
+NON_AUTO_MEDIA += efi
+NON_AUTO_MEDIA += efidrv
+NON_AUTO_MEDIA += drv.efi
+NON_AUTO_MEDIA += efirom
+
+# Include SNP driver in the all-drivers build
+#
+DRIVERS_net += snp
+
+# Rules for building EFI files
+#
+$(BIN)/%.efi : $(BIN)/%.efi.tmp $(ELF2EFI)
+ $(QM)$(ECHO) " [FINISH] $@"
+ $(Q)$(ELF2EFI) --subsystem=10 $< $@
+
+$(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) $@
+
+$(BIN)/%.usb : $(BIN)/%.efi
+ $(QM)$(ECHO) " [GENEFIDSK] $@"
+ $(Q)bash util/genefidsk -o $@ -b $(EFI_BOOT_FILE) $<