]> code.delx.au - refind/blob - filesystems/Make.gnuefi
Significant reworking of Makefile structure. Added Apple Core Storage
[refind] / filesystems / Make.gnuefi
1 #
2 # filesystems/Make.gnuefi
3 # Build control file for the EFI drivers, as built with GNU-EFI
4 #
5
6 # This program is licensed under the terms of the GNU GPL, version 3,
7 # or (at your option) any later version.
8 # You should have received a copy of the GNU General Public License
9 # along with this program. If not, see <http://www.gnu.org/licenses/>.
10
11 SRCDIR = .
12
13 VPATH = $(SRCDIR)
14 HOSTARCH = $(shell uname -m | sed s,i[3456789]86,ia32,)
15
16 # Note: IA64 options are untested; taken from Debian's rEFIt package.
17
18 LOCAL_GNUEFI_CFLAGS = -DFSTYPE=$(DRIVERNAME) -I$(SRCDIR)
19 ifeq ($(HOSTARCH),x86_64)
20 LOCAL_GNUEFI_CFLAGS += "-DEFIAPI=__attribute__((ms_abi))"
21 endif
22
23 OBJS = fsw_core.o fsw_efi.o fsw_efi_lib.o fsw_lib.o fsw_$(DRIVERNAME).o
24 TARGET = $(DRIVERNAME)_$(FILENAME_CODE).efi
25
26 include $(SRCDIR)/../Make.common
27
28 all: $(TARGET)
29
30 ifeq ($(HOSTARCH),aarch64)
31 # Set symbol for driver
32 SUBSYSTEM_LDFLAG = -defsym=EFI_SUBSYSTEM=0xb
33 endif
34
35 $(SHLIB_TARGET): $(OBJS)
36 $(LD) $(GNUEFI_LDFLAGS) $(SUBSYSTEM_LDFLAG) $(OBJS) -o $@ $(LOCAL_LIBS) $(GNUEFI_LIBS)
37
38 $(TARGET): $(SHLIB_TARGET)
39 $(OBJCOPY) -j .text -j .sdata -j .data -j .dynamic -j .dynsym -j .rel \
40 -j .rela -j .rel.* -j .rela.* -j .rel* -j .rela* \
41 -j .reloc $(FORMAT_DRIVER) $< $@
42 chmod a-x $(TARGET)
43 mkdir -p ../drivers_$(FILENAME_CODE)
44 cp $(TARGET) ../drivers_$(FILENAME_CODE)
45
46 # EOF