Files
moslab-code/src/l4/pkg/gnu-efi/lib/build/Make.rules
2025-09-12 15:55:45 +02:00

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)