portability fixes
[rrq/rrqmisc.git] / gnuefi.mk
1 ## Makefile to build for efi using gnu-efi
2
3 TYPING = ItemKeyFun.c integeritem.c stringitem.c
4 VECTOR =  Vector.c HashVector.c
5 EFIMM = Heap.c
6 INCDIR = -Ityping -Ivector -Iefimm
7
8
9 OBJS = $(addprefix typing/,${TYPING:.c=.o})
10 OBJS += $(addprefix vector/,${VECTOR:.c=.o})
11 OBJS += $(addprefix efimm/,${EFIMM:.c=.o})
12
13 $(info ${OBJS})
14
15 default: librrqmisc.a
16
17 GNUEFI = /home/ralph/src/gnu-efi
18 INCDIR += -I${GNUEFI}/inc -I${GNUEFI}/inc/protocol -I${GNUEFI}/inc/x86_64
19 CFLAGS += -Wno-error=pragmas -mno-red-zone -mno-avx -fpic  -g -O2 -Wall -Wextra -Werror
20 CFLAGS += -fshort-wchar -fno-strict-aliasing -ffreestanding -fno-stack-protector -fno-stack-check
21 CFLAGS += -fno-stack-check -fno-merge-all-constants
22 CFLAGS += -fmax-errors=1
23 CPPFLAGS += -DCONFIG_x86_64 -DGNU_EFI_USE_MS_ABI
24 CPPFLAGS += -maccumulate-outgoing-args --std=c11
25 CPPFLAGS += -D__KERNEL__ -I/usr/src/sys/build/include
26
27 %.o: %.c
28         $(CC) $(INCDIR) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
29
30 librrqmisc.a: $(patsubst %,librrqmisc.a(%),${OBJS})
31
32 clean:
33         rm -f none {efimm,typing,vector}/*.o