X-Git-Url: https://code.delx.au/refind/blobdiff_plain/3e0a899e2a94da03f79657425920859321cb9ae0..1f5b3c00f34cd3bfa077b2110d383632295efbd0:/filesystems/Make.gnuefi diff --git a/filesystems/Make.gnuefi b/filesystems/Make.gnuefi index 4d69b91..71d397f 100644 --- a/filesystems/Make.gnuefi +++ b/filesystems/Make.gnuefi @@ -3,46 +3,42 @@ # Build control file for the EFI drivers, as built with GNU-EFI # +# This program is licensed under the terms of the GNU GPL, version 3, +# or (at your option) any later version. +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + SRCDIR = . VPATH = $(SRCDIR) - HOSTARCH = $(shell uname -m | sed s,i[3456789]86,ia32,) -ARCH ?= $(HOSTARCH) - -# Note: IA64 options are untested; taken from Debian's rEFIt package. -ifeq ($(ARCH),ia64) - # EFI specs allows only lower floating point partition to be used - ARCH_C_CFLAGS = -frename-registers -mfixed-range=f32-f127 - # TODO: Add FILENAME_CODE as appropriate -endif - -ifeq ($(ARCH),ia32) - LIBEG = build32 - ARCH_C_FLAGS = -m32 -malign-double - FILENAME_CODE = ia32 - LD_CODE = elf_i386 -endif -ifeq ($(ARCH),x86_64) - LIBEG = build64 - ARCH_C_FLAGS = "-DEFIAPI=__attribute__((ms_abi))" -m64 - FILENAME_CODE = x64 - LD_CODE = elf_x86_64 +LOCAL_GNUEFI_CFLAGS = -DFSTYPE=$(DRIVERNAME) -I$(SRCDIR) +ifeq ($(HOSTARCH),x86_64) + LOCAL_GNUEFI_CFLAGS += "-DEFIAPI=__attribute__((ms_abi))" endif -LOCAL_CPPFLAGS = -DFSTYPE=$(DRIVERNAME) $(ARCH_C_FLAGS) -I$(SRCDIR) -I$(SRCDIR)/../include -I$(SRCDIR)/../libeg - OBJS = fsw_core.o fsw_efi.o fsw_efi_lib.o fsw_lib.o fsw_$(DRIVERNAME).o TARGET = $(DRIVERNAME)_$(FILENAME_CODE).efi +include $(SRCDIR)/../Make.common + all: $(TARGET) -include $(SRCDIR)/../Make.common +ifeq ($(HOSTARCH),aarch64) + # Set symbol for driver + SUBSYSTEM_LDFLAG = -defsym=EFI_SUBSYSTEM=0xb +endif + +$(SHLIB_TARGET): $(OBJS) + $(LD) $(GNUEFI_LDFLAGS) $(SUBSYSTEM_LDFLAG) $(OBJS) -o $@ $(LOCAL_LIBS) $(GNUEFI_LIBS) $(TARGET): $(SHLIB_TARGET) $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \ - -j .rela -j .reloc --target=$(FORMAT_DRIVER) $< $@ + -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \ + -j .reloc $(FORMAT_DRIVER) $< $@ + chmod a-x $(TARGET) + mkdir -p ../drivers_$(FILENAME_CODE) cp $(TARGET) ../drivers_$(FILENAME_CODE) # EOF