177943Sdfr# $FreeBSD$
277943Sdfr
3276486SngieMAN=
4156813Sru
5156813Sru.include <bsd.own.mk>
6188895SruMK_SSP=		no
7156813Sru
8138002SmarcelPROG=		loader.sym
9125729SruINTERNALPROG=
10164010SmarcelSRCS=		conf.c efimd.c main.c pal.S start.S vers.c
1177943Sdfr
12211680Simp.PATH: ${.CURDIR}/../../../${MACHINE_CPUARCH}/${MACHINE_CPUARCH}
13164010Smarcel
14164010SmarcelCFLAGS+=	-I${.CURDIR}/../common
15164010SmarcelCFLAGS+=	-I${.CURDIR}/../../common
16138002SmarcelCFLAGS+=	-I${.CURDIR}/../../efi/include
17211680SimpCFLAGS+=	-I${.CURDIR}/../../efi/include/${MACHINE_CPUARCH}
18164010SmarcelCFLAGS+=	-I${.CURDIR}/../../..
19138002SmarcelCFLAGS+=	-I${.CURDIR}/../../../../lib/libstand
2077943Sdfr
21211680SimpLDSCRIPT=	${.CURDIR}/ldscript.${MACHINE_CPUARCH}
22125767SmarcelLDFLAGS=	-Wl,-T${LDSCRIPT} -shared -symbolic
2377943Sdfr
24138002Smarcel${PROG}: ${LDSCRIPT}
25138002Smarcel
26211680SimpNEWVERSWHAT=	"EFI boot" ${MACHINE_CPUARCH}
27138002Smarcel
28125729Sruvers.c: ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version
2977943Sdfr	sh ${.CURDIR}/../../common/newvers.sh ${.CURDIR}/version ${NEWVERSWHAT}
3077943Sdfr
31138002SmarcelOBJCOPY?=	objcopy
32138140SmarcelOBJDUMP?=	objdump
33138002Smarcel
34164010SmarcelFILES=		loader.efi
35164010SmarcelFILESMODE_loader.efi= ${BINMODE}
36164010Smarcel
37125729Sruloader.efi: loader.sym
38138140Smarcel	if [ `${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*' | wc -l` != 0 ]; then \
39138140Smarcel		${OBJDUMP} -t ${.ALLSRC} | fgrep '*UND*'; \
40138140Smarcel		exit 1; \
41138140Smarcel	fi
42138002Smarcel	${OBJCOPY} -j .data -j .dynamic -j .dynstr -j .dynsym -j .hash \
43138002Smarcel	    -j .rela.dyn -j .reloc -j .sdata -j .text \
44211680Simp	    --target=efi-app-${MACHINE_CPUARCH} ${.ALLSRC} ${.TARGET}
4577943Sdfr
46164010SmarcelCLEANFILES=	vers.c loader.efi
4777943Sdfr
48164010SmarcelLIBIA64=	${.OBJDIR}/../common/libia64.a
49138002SmarcelLIBEFI=		${.OBJDIR}/../../efi/libefi/libefi.a
50164010Smarcel.if ${MK_FORTH} != "no"
51164010SmarcelLIBFICL=        ${.OBJDIR}/../../ficl/libficl.a
52164010Smarcel.endif
53125729Sru
54164010SmarcelDPADD=		${LIBIA64} ${LIBFICL} ${LIBEFI} ${LIBSTAND}
55164010SmarcelLDADD=		-Wl,--whole-archive ${LIBIA64} -Wl,--no-whole-archive \
56164010Smarcel		    ${LIBFICL} ${LIBEFI} -lstand
5777943Sdfr
5877943Sdfr.include <bsd.prog.mk>
59