/
githubmirror
/
efifs
Обзор
Документация
Войти
/
githubmirror
/
efifs
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
v0.5
Make.common
118 строк
3 KB
Pete Batard
add support for building multiple filesystems and add exFAT
02 июл 2014, 02:03
02 июл 2014, 02:03
7c1dc60
Код
Авторство
О чём код?
# # Make.common # Common make rules for building with gnu-efi # # Edit the following according to the location where the gnu-efi binaries reside EFIINC = /usr/include/efi GNUEFILIB = /usr/lib EFILIB = /usr/lib EFICRT0 = /usr/lib # You shouldn't have to edit anything below this HOSTARCH = $(shell uname -m | sed s,i[3456789]86,ia32,) ARCH := $(HOSTARCH) OS = $(shell uname -s) CPPFLAGS = -I$(EFIINC) -I$(EFIINC)/$(ARCH) -I$(EFIINC)/protocol -I$(SRCDIR) -DCONFIG_$(ARCH) -D__MAKEWITH_GNUEFI \ -DGNU_EFI_USE_MS_ABI -DGRUB_MACHINE_EFI -DGRUB_KERNEL -DGRUB_FILE=\"$(subst $(srcdir)/,,$<)\" OPTIMFLAGS = -O2 -fno-strict-aliasing DEBUGFLAGS = -Wall -Wunused -Wno-pointer-sign -Wshadow CFLAGS = $(ARCH3264) $(OPTIMFLAGS) -fno-stack-protector -fpic -fshort-wchar -mno-red-zone $(DEBUGFLAGS) ASFLAGS = $(ARCH3264) LDFLAGS = -nostdlib -znocombreloc -zdefs prefix = /usr/bin/ CC = $(prefix)gcc AS = $(prefix)as LD = $(prefix)ld AR = $(prefix)ar RANLIB = $(prefix)ranlib OBJCOPY = $(prefix)objcopy ifeq ($(ARCH),ia64) # EFI specs allows only lower floating point partition to be used CFLAGS += -frename-registers -mfixed-range=f32-f127 endif ifeq ($(ARCH),x86_64) CFLAGS += -DEFI_FUNCTION_WRAPPER CPPFLAGS += -DEFIX64 ifeq ($(HOSTARCH),ia32) ARCH3264 = -m64 GNUEFILIB := $(GNUEFILIB)64 EFILIB := $(EFILIB)64 EFICRT0 := $(EFICRT0)64 endif endif ifeq ($(ARCH),ia32) CPPFLAGS += -DEFI32 -malign-double ifeq ($(HOSTARCH),x86_64) ARCH3264 = -m32 GNUEFILIB := $(GNUEFILIB)32 EFILIB := $(EFILIB)32 EFICRT0 := $(EFICRT0)32 endif endif CRTOBJS = $(EFICRT0)/crt0-efi-$(ARCH).o ifneq (,$(findstring FreeBSD,$(OS))) ifeq ($(ARCH),x86_64) LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_fbsd_efi.lds else LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds endif else LDSCRIPT = $(EFICRT0)/elf_$(ARCH)_efi.lds endif LDFLAGS += -T $(LDSCRIPT) -shared -Bsymbolic -L$(EFILIB) -L$(GNUEFILIB) $(CRTOBJS) LIBS += -lefi -lgnuefi $(shell $(CC) $(ARCH3264) -print-libgcc-file-name) FORMAT = efi-app-$(ARCH) FORMAT_DRIVER = efi-bsdrv-$(ARCH) # general rules -include $(OBJS:.o=.d) # http://scottmcpeak.com/autodepend/autodepend.html %.o: %.c @echo [CC] $@ @$(CC) $(LOCAL_CPPFLAGS) $(CPPFLAGS) $(LOCAL_CFLAGS) $(CFLAGS) -c $< -o $@ @$(CC) -MM $(LOCAL_CPPFLAGS) $(CPPFLAGS) $(LOCAL_CFLAGS) $*.c > $*.d @mv -f $*.d $*.d.tmp @sed -e 's|.*:|$*.o:|' < $*.d.tmp > $*.d @sed -e 's/.*://' -e 's/\\$$//' < $*.d.tmp | fmt -1 | \ sed -e 's/^ *//' -e 's/$$/:/' >> $*.d @rm -f $*.d.tmp # rules for EFI applications ifneq (,$(filter %.efi,$(TARGET))) SHLIB_TARGET = $(subst .efi,.so,$(TARGET)) $(SHLIB_TARGET): $(OBJS) *.a @echo [LD] $@ @$(LD) $(LOCAL_LDFLAGS) $(LDFLAGS) $(OBJS) -o $@ $(LOCAL_LIBS) $(LIBS) endif # rules for libraries ifneq (,$(filter %.a,$(TARGET))) $(TARGET): $(OBJS) @echo [AR] $@ @$(AR) sq $@ $(OBJS) endif # EOF