57 lines
2.0 KiB
Makefile
57 lines
2.0 KiB
Makefile
# vim:set ft=make:
|
|
PKGDIR ?= ../..
|
|
L4DIR ?= $(PKGDIR)/../..
|
|
|
|
EFI_ARCH-x86 = ia32
|
|
EFI_ARCH-amd64 = x86_64
|
|
EFI_ARCH-arm64 = aarch64
|
|
EFI_ARCH = $(EFI_ARCH-$(ARCH))
|
|
EFILDSCRIPT = elf_$(EFI_ARCH)_efi.lds
|
|
|
|
TARGET = libgnuefi.p.a libefi.p.a libgnuefi-crt0.p.a
|
|
INSTALL_TARGET = libgnuefi.p.a libefi.p.a libgnuefi-crt0.p.a crt0-gnuefi.o $(EFILDSCRIPT)
|
|
|
|
PRIVATE_INCDIR = $(SRC_DIR)
|
|
CONTRIB_INCDIR = gnu-efi gnu-efi/$(EFI_ARCH)
|
|
CFLAGS = -fpic -fshort-wchar -fno-strict-aliasing \
|
|
-ffreestanding -fno-stack-protector -fno-stack-check \
|
|
-fno-stack-check \
|
|
-fno-merge-all-constants -Wno-error=pragmas
|
|
CFLAGS-amd64 = -DGNU_EFI_USE_MS_ABI -maccumulate-outgoing-args --std=c11 \
|
|
-mno-avx
|
|
DEFINES = -DCONFIG_$(EFI_ARCH) -DL4
|
|
PC_LIBS = -lgnuefi.p -lefi.p
|
|
PC_EXTRA = Link_Start= %:search(crt0-gnuefi.o %(libdir))
|
|
|
|
vpath %.c $(SRC_DIR)/../contrib
|
|
vpath %.S $(SRC_DIR)/../contrib
|
|
|
|
SRC_C_libgnuefi.p.a = gnuefi/reloc_$(EFI_ARCH).c
|
|
SRC_S_libgnuefi-crt0.p.a = gnuefi/crt0-efi-$(EFI_ARCH).S
|
|
|
|
FILES_C = boxdraw smbios console crc data debug dpath \
|
|
entry error event exit guid hand hw init lock \
|
|
misc pause print sread str cmdline \
|
|
runtime/rtlock runtime/efirtlib runtime/rtstr runtime/vm runtime/rtdata \
|
|
$(EFI_ARCH)/initplat $(EFI_ARCH)/math
|
|
FILES_S = ctors $(EFI_ARCH)/setjmp
|
|
|
|
FILES_S-x86 = $(EFI_ARCH)/efi_stub
|
|
FILES_C-amd64 = $(EFI_ARCH)/callwrap
|
|
FILES_S-amd64 = $(EFI_ARCH)/efi_stub
|
|
FILES_S-arm = $(EFI_ARCH)/uldiv $(EFI_ARCH)/ldivmod $(EFI_ARCH)/div $(EFI_ARCH)/llsl $(EFI_ARCH)/llsr \
|
|
$(EFI_ARCH)/mullu
|
|
|
|
SRC_S_libefi.p.a += $(addprefix lib/,$(addsuffix .S,$(FILES_S) $(FILES_S-$(ARCH))))
|
|
SRC_C_libefi.p.a += $(addprefix lib/,$(addsuffix .c,$(FILES_C) $(FILES_C-$(ARCH))))
|
|
|
|
include $(L4DIR)/mk/lib.mk
|
|
|
|
$(EFILDSCRIPT):
|
|
$(VERBOSE)$(LN) -sf $(SRC_DIR)/../contrib/gnuefi/$(EFILDSCRIPT)
|
|
|
|
crt0-gnuefi.o: gnuefi/crt0-efi-$(EFI_ARCH).s.o
|
|
$(VERBOSE)$(LN) -sf $< $@
|
|
|
|
WARNINGS := $(WARNINGS_MINIMAL)
|