From 53ca88735db910c746d6190cca39fcd70d66b650 Mon Sep 17 00:00:00 2001 From: Ada Christine Date: Wed, 17 Mar 2021 12:38:27 +0000 Subject: initial commit --- efi.mk | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 efi.mk (limited to 'efi.mk') diff --git a/efi.mk b/efi.mk new file mode 100644 index 0000000..530a372 --- /dev/null +++ b/efi.mk @@ -0,0 +1,52 @@ +# vim: ft=make:nowrap:ts=4:sw=4 + +ifeq ($(ARCH),x86_64) + GNUEFIARCH := x86_64 +endif +ifeq ($(ARCH),i686) + GNUEFIARCH := ia32 +endif + +ifndef EFIAPIDIR +EFIAPIDIR := /usr/local/include/efi +endif + +ifndef EFILIBDIR +EFILIBDIR := /usr/local/$(TARGET)/lib +endif + +EFICRT := $(EFILIBDIR)/crt0-efi-$(GNUEFIARCH).o +EFILDSCRIPT := $(EFILIBDIR)/elf_$(GNUEFIARCH)_efi.lds + +CPPFLAGS += -I$(EFIAPIDIR) -I$(EFIAPIDIR)/protocol -I$(EFIAPIDIR)/$(GNUEFIARCH) \ + -DGNU_EFI_USE_MS_ABI -DEFI_CALL_WRAPPER -DEFI_DEBUG + +CFLAGS += -fPIC -fshort-wchar -maccumulate-outgoing-args -mno-avx -mno-sse \ + -mno-mmx + +OBJCOPY.efi = $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \ + -j .dynsm -j .rel -j .rela -j .reloc \ + --target=efi-app-$(GNUEFIARCH) $< $@ + +OBJCOPY.debug.efi = $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic \ + -j .dynsym -j .rel -j .rela -j .reloc -j .debug_info \ + -j .debug_abbrev -j .debug_loc -j .debug_aranges \ + -j .debug_line -j .debug_macinfo -j .debug_str \ + --target=efi-app-$(GNUEFIARCH) $< $@ + +LINK._efi.so = $(LD) $(LDFLAGS) -znocombreloc -Bsymbolic -shared --no-undefined \ + $(LIBDIRS) -L$(EFILIBDIR) -T $(EFILDSCRIPT) \ + $(filter %.o, $^) -lgnuefi -lefi $(LOADLIBES) -o $@ + +%.efi: %_efi.so + $(OBJCOPY.info) + $(OBJCOPY.efi) + +%.debug.efi: %_efi.so + $(OBJCOPY.info) + @$(OBJCOPY.debug.efi) + +%_efi.so: $(EFILDSCRIPT) $(EFICRT) + $(LINK.info) + $(LINK._efi.so) + -- cgit v1.3.1-1-g115d