81 lines
3.3 KiB
Diff
81 lines
3.3 KiB
Diff
diff --git a/Make.rules b/Make.rules
|
|
index 489ad8c..ac46165 100644
|
|
--- a/Make.rules
|
|
+++ b/Make.rules
|
|
@@ -14,9 +14,9 @@ else
|
|
$(error unknown architecture $(ARCH))
|
|
endif
|
|
INCDIR = -I$(TOPDIR)include/ -I/usr/include/efi -I/usr/include/efi/$(ARCH) -I/usr/include/efi/protocol
|
|
-CPPFLAGS = -DCONFIG_$(ARCH)
|
|
-CFLAGS = -O2 -g $(ARCH3264) -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check
|
|
-LDFLAGS = -nostdlib
|
|
+EFI_CPPFLAGS = -DCONFIG_$(ARCH)
|
|
+EFI_CFLAGS = -O2 -g $(ARCH3264) -fpic -Wall -fshort-wchar -fno-strict-aliasing -fno-merge-constants -fno-stack-protector -ffreestanding -fno-stack-check
|
|
+EFI_LDFLAGS = -nostdlib
|
|
CRTOBJ = crt0-efi-$(ARCH).o
|
|
CRTPATHS = /lib /lib64 /lib/efi /lib64/efi /usr/lib /usr/lib64 /usr/lib/efi /usr/lib64/efi /usr/lib/gnuefi /usr/lib64/gnuefi
|
|
CRTPATH = $(shell for f in $(CRTPATHS); do if [ -e $$f/$(CRTOBJ) ]; then echo $$f; break; fi; done)
|
|
@@ -24,7 +24,7 @@ CRTOBJS = $(CRTPATH)/$(CRTOBJ)
|
|
# there's a bug in the gnu tools ... the .reloc section has to be
|
|
# aligned otherwise the file alignment gets screwed up
|
|
LDSCRIPT = elf_$(ARCH)_efi.lds
|
|
-LDFLAGS += -shared -Bsymbolic $(CRTOBJS) -L $(CRTPATH) -L /usr/lib -L /usr/lib64 -T $(LDSCRIPT)
|
|
+EFI_LDFLAGS += -shared -Bsymbolic $(CRTOBJS) -L $(CRTPATH) -L /usr/lib -L /usr/lib64 -T $(LDSCRIPT)
|
|
LOADLIBES = -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name)
|
|
FORMAT = --target=efi-app-$(ARCH)
|
|
OBJCOPY = objcopy
|
|
@@ -36,23 +36,23 @@ EFIDIR = $(DESTDIR)/usr/share/efitools/efi
|
|
DOCDIR = $(DESTDIR)/usr/share/efitools
|
|
|
|
# globally use EFI calling conventions (requires gcc >= 4.7)
|
|
-CFLAGS += -DGNU_EFI_USE_MS_ABI
|
|
+EFI_CFLAGS += -DGNU_EFI_USE_MS_ABI
|
|
|
|
ifeq ($(ARCH),x86_64)
|
|
- CFLAGS += -DEFI_FUNCTION_WRAPPER -mno-red-zone
|
|
+ EFI_CFLAGS += -DEFI_FUNCTION_WRAPPER -mno-red-zone
|
|
endif
|
|
|
|
ifeq ($(ARCH),ia32)
|
|
- CFLAGS += -mno-red-zone
|
|
+ EFI_CFLAGS += -mno-red-zone
|
|
endif
|
|
|
|
ifeq ($(ARCH),arm)
|
|
- LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
|
|
+ EFI_LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
|
|
FORMAT = -O binary
|
|
endif
|
|
|
|
ifeq ($(ARCH),aarch64)
|
|
- LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
|
|
+ EFI_LDFLAGS += --defsym=EFI_SUBSYSTEM=0x0a
|
|
FORMAT = -O binary
|
|
endif
|
|
|
|
@@ -61,7 +61,7 @@ endif
|
|
-j .rel -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
|
|
-j .reloc $(FORMAT) $*.so $@
|
|
%.so: %.o
|
|
- $(LD) $(LDFLAGS) $^ -o $@ $(LOADLIBES)
|
|
+ $(LD) $(EFI_LDFLAGS) $^ -o $@ $(LOADLIBES)
|
|
# check we have no undefined symbols
|
|
nm -D $@ | grep ' U ' && exit 1 || exit 0
|
|
|
|
@@ -99,13 +99,13 @@ getvar = $(shell if [ "$(1)" = "PK" -o "$(1)" = "KEK" ]; then echo $(1); else ec
|
|
./sign-efi-sig-list -a -c PK.crt -k PK.key dbx $< $@
|
|
|
|
%.o: %.c
|
|
- $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
|
|
+ $(CC) $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -c $< -o $@
|
|
|
|
%.efi.o: %.c
|
|
- $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
|
|
+ $(CC) $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
|
|
|
|
%.efi.s: %.c
|
|
- $(CC) -S $(INCDIR) $(CFLAGS) $(CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
|
|
+ $(CC) -S $(INCDIR) $(EFI_CFLAGS) $(EFI_CPPFLAGS) -fno-toplevel-reorder -DBUILD_EFI -c $< -o $@
|
|
|
|
%.crt:
|
|
openssl req -new -x509 -newkey rsa:2048 -subj "/CN=$*/" -keyout $*.key -out $@ -days 3650 -nodes -sha256
|