150472Speter# $FreeBSD$
234495Sjdp
334495Sjdp.include "../Makefile.inc0"
4234782Skib.include <bsd.own.mk>
534495Sjdp
634495Sjdp.PATH: ${SRCDIR}/ld
734495Sjdp
8172326Smarcel.if ${TARGET_ARCH} == "ia64"
9172326SmarcelCFLAGS+= -O1
10172326Smarcel.endif
11172326Smarcel
1284910SobrienPROG=	ld
1384910SobrienSCRIPTDIR= /usr/libdata/ldscripts
14218822SdimSRCS+=	ldcref.c \
15218822Sdim	ldctor.c \
16218822Sdim	ldemul-list.h \
17218822Sdim	ldemul.c \
18218822Sdim	ldexp.c \
19218822Sdim	ldfile.c \
20218822Sdim	ldgram.y \
21218822Sdim	ldlang.c \
22218822Sdim	ldlex.l \
23218822Sdim	ldmain.c \
24218822Sdim	ldmisc.c \
25218822Sdim	ldver.c \
26218822Sdim	ldwrite.c \
27218822Sdim	lexsup.c \
28218822Sdim	mri.c
2983877Sru
30131832SobrienCFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
31131832SobrienCFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
3290330SobrienCFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\"
3389886SobrienCFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\"
34257662SbrooksCFLAGS+= -DBINDIR=\"${BINDIR}\"
35257662Sbrooks.if defined(TOOLS_PREFIX)
36257662SbrooksCFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\"
37257662Sbrooks.else
38257662SbrooksCFLAGS+= -DTARGET_SYSTEM_ROOT=\"/\"
39257662Sbrooks.endif
40130757SobrienCFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\"
41130575SobrienCFLAGS+= -D_GNU_SOURCE
4284910SobrienCFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd
43234782Skib.if ${MK_SHARED_TOOLCHAIN} == "no"
44139112SruNO_SHARED?= yes
45234782Skib.endif
46113398SruDPADD=	${RELTOP}/libbfd/libbfd.a
47113398SruDPADD+=	${RELTOP}/libiberty/libiberty.a
4884910SobrienLDADD=	${DPADD}
4934495SjdpCLEANDIRS+=	ldscripts
5060777SobrienCLEANFILES+=	ldemul-list.h stringify.sed
5134495Sjdp
52131832SobrienHOST=		${TARGET_TUPLE}
53219811SmarcelLIBSEARCHPATH=	\"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
54218822SdimELF_SCR_EXT=	x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw
55131832Sobrien.for ext in ${ELF_SCR_EXT}
56131832SobrienLDSCRIPTS+=	${NATIVE_EMULATION}.${ext}
57131832Sobrien.endfor
5852938Sjb
5935717SjbEMXFR=
6035717SjbEMLST=
61218822Sdim.for _e in ${NATIVE_EMULATION} ${EMS}
6293361SobrienEMXFR+=	extern ld_emulation_xfer_type ld_${_e}_emulation;
6393361SobrienEMLST+=	&ld_${_e}_emulation,
6435717Sjb.endfor
6535717Sjb
6635717Sjbldemul-list.h:
6784910Sobrien	echo "${EMXFR}" > ${.TARGET}
6884910Sobrien	echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET}
6935717Sjb
7060777Sobrienstringify.sed:
7169164Sobrien	ln -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET}
7260777Sobrien
7334495Sjdpafterinstall:
74100872Sru	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
7534495Sjdp	    ${LDSCRIPTS:S|^|ldscripts/|} ${DESTDIR}${SCRIPTDIR}
7634495Sjdp
7734495Sjdp.include <bsd.prog.mk>
78