12 # architecture-specific loader code
13 SRCS= main.c exec.c conf.c vers.c reloc.c start.S elf32_freebsd.c
14 SRCS+= i386_copy.c bootinfo.c autoload.c devicename.c efimd.c
16 CFLAGS+= -I${.CURDIR}/../../efi/include
17 CFLAGS+= -I${.CURDIR}/../../efi/include/i386
19 .if ${MK_FORTH} != "no"
22 CFLAGS+= -I${.CURDIR}/../../ficl
23 CFLAGS+= -I${.CURDIR}/../../ficl/i386
24 LIBFICL= ${.OBJDIR}/../../ficl/libficl.a
27 # Include bcache code.
30 # Always add MI sources
31 .PATH: ${.CURDIR}/../../common
32 .include "${.CURDIR}/../../common/Makefile.inc"
33 CFLAGS+= -I${.CURDIR}/../../common
36 FILESMODE_loader.efi= ${BINMODE}
38 LDSCRIPT= ${.CURDIR}/ldscript.${MACHINE_ARCH}
39 LDFLAGS= -Wl,-T${LDSCRIPT} -shared -symbolic
43 CLEANFILES= vers.c loader.efi
45 NEWVERSWHAT= "EFI loader" x86
47 vers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
48 sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
53 loader.efi: loader.sym
54 if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
55 ${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
58 ${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \
59 -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \
60 --target=efi-app-ia32 ${.ALLSRC} ${.TARGET}
62 LIBEFI= ${.OBJDIR}/../../efi/libefi/libefi.a
63 CFLAGS+= -I${.CURDIR}/../libi386
64 CFLAGS+= -I${.CURDIR}/../btx/lib
66 DPADD= ${LIBFICL} ${LIBEFI} ${LIBSTAND}
67 LDADD= ${LIBFICL} ${LIBEFI} -lstand
69 .include <bsd.prog.mk>