1206376Srpaulo# $FreeBSD$
2206376Srpaulo
3206376SrpauloNO_MAN=
4206376SrpauloBUILDING_EFI=
5206376Srpaulo
6206376Srpaulo.include <bsd.own.mk>
7255944SbdreweryMK_SSP=		no
8206376Srpaulo
9206376SrpauloPROG=		loader.sym
10206376SrpauloINTERNALPROG=
11206376Srpaulo
12206376Srpaulo# architecture-specific loader code
13206376SrpauloSRCS=	main.c exec.c conf.c vers.c reloc.c start.S elf32_freebsd.c
14206376SrpauloSRCS+=	i386_copy.c bootinfo.c autoload.c devicename.c efimd.c
15206376Srpaulo
16206376SrpauloCFLAGS+=	-I${.CURDIR}/../../efi/include
17206376SrpauloCFLAGS+=	-I${.CURDIR}/../../efi/include/i386
18206376Srpaulo
19206376Srpaulo.if ${MK_FORTH} != "no"
20206376SrpauloBOOT_FORTH=	yes
21206376SrpauloCFLAGS+=	-DBOOT_FORTH
22206376SrpauloCFLAGS+=	-I${.CURDIR}/../../ficl
23206376SrpauloCFLAGS+=	-I${.CURDIR}/../../ficl/i386
24206376SrpauloLIBFICL=	${.OBJDIR}/../../ficl/libficl.a
25206376Srpaulo.endif
26206376Srpaulo
27206376Srpaulo# Include bcache code.
28206376SrpauloHAVE_BCACHE=    yes
29206376Srpaulo
30206376Srpaulo# Always add MI sources 
31206376Srpaulo.PATH:		${.CURDIR}/../../common
32206376Srpaulo.include	"${.CURDIR}/../../common/Makefile.inc"
33206376SrpauloCFLAGS+=	-I${.CURDIR}/../../common
34206376Srpaulo
35206376SrpauloFILES=	loader.efi
36206376SrpauloFILESMODE_loader.efi=	${BINMODE}
37206376Srpaulo
38234493SmarcelLDSCRIPT=	${.CURDIR}/ldscript.i386
39245765SbennoLDFLAGS=	-Wl,-T${LDSCRIPT} -Wl,-Bsymbolic -shared
40206376Srpaulo
41206376Srpaulo${PROG}:	${LDSCRIPT}
42206376Srpaulo
43206376SrpauloCLEANFILES=	vers.c loader.efi
44206376Srpaulo
45212066SdelphijNEWVERSWHAT=	"EFI loader" x86
46206376Srpaulo
47206376Srpaulovers.c:	${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
48206376Srpaulo	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
49206376Srpaulo
50206376SrpauloOBJCOPY?=	objcopy
51206376SrpauloOBJDUMP?=	objdump
52206376Srpaulo
53206376Srpauloloader.efi: loader.sym
54206376Srpaulo	if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
55206376Srpaulo		${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
56206376Srpaulo		exit 1; \
57206376Srpaulo	fi
58206376Srpaulo	${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \
59206376Srpaulo	    -j .rel.dyn -j .reloc -j .sdata -j .text -j set_Xcommand_set \
60206376Srpaulo	    --target=efi-app-ia32 ${.ALLSRC} ${.TARGET}
61206376Srpaulo
62206376SrpauloLIBEFI=		${.OBJDIR}/../../efi/libefi/libefi.a
63206376SrpauloCFLAGS+=	-I${.CURDIR}/../libi386
64206376SrpauloCFLAGS+=	-I${.CURDIR}/../btx/lib
65206376Srpaulo
66206376SrpauloDPADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND}
67234493SmarcelLDADD=		${LIBFICL} ${LIBEFI} ${LIBSTAND}
68206376Srpaulo
69206376Srpaulo.include <bsd.prog.mk>
70234493Smarcel
71234493Smarcel.if ${MACHINE_CPUARCH} == "amd64"
72234493SmarcelCFLAGS+=        -I.
73234493Smarcelbeforedepend ${OBJS}: machine
74234493Smarcelmachine:
75234493Smarcel	ln -sf ${.CURDIR}/../../../i386/include machine
76234493Smarcel.endif
77