blob: 72bd136ad3ee7007e1998845a635f0896f818110 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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)
|