150472Speter# $FreeBSD$
234495Sjdp
3289241SbdreweryELF_SCR_EXT=	x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw
434495Sjdp.include "../Makefile.inc0"
5234782Skib.include <bsd.own.mk>
634495Sjdp
734495Sjdp.PATH: ${SRCDIR}/ld
834495Sjdp
9172326Smarcel.if ${TARGET_ARCH} == "ia64"
10172326SmarcelCFLAGS+= -O1
11172326Smarcel.endif
12172326Smarcel
1384910SobrienPROG=	ld
1484910SobrienSCRIPTDIR= /usr/libdata/ldscripts
15218822SdimSRCS+=	ldcref.c \
16218822Sdim	ldctor.c \
17218822Sdim	ldemul-list.h \
18218822Sdim	ldemul.c \
19218822Sdim	ldexp.c \
20218822Sdim	ldfile.c \
21218822Sdim	ldgram.y \
22218822Sdim	ldlang.c \
23218822Sdim	ldlex.l \
24218822Sdim	ldmain.c \
25218822Sdim	ldmisc.c \
26218822Sdim	ldver.c \
27218822Sdim	ldwrite.c \
28218822Sdim	lexsup.c \
29218822Sdim	mri.c
3083877Sru
31131832SobrienCFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
32131832SobrienCFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
3390330SobrienCFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\"
3489886SobrienCFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\"
35257662SbrooksCFLAGS+= -DBINDIR=\"${BINDIR}\"
36257662Sbrooks.if defined(TOOLS_PREFIX)
37257662SbrooksCFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\"
38257662Sbrooks.else
39257662SbrooksCFLAGS+= -DTARGET_SYSTEM_ROOT=\"/\"
40257662Sbrooks.endif
41130757SobrienCFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\"
42130575SobrienCFLAGS+= -D_GNU_SOURCE
4384910SobrienCFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd
44234782Skib.if ${MK_SHARED_TOOLCHAIN} == "no"
45139112SruNO_SHARED?= yes
46234782Skib.endif
47113398SruDPADD=	${RELTOP}/libbfd/libbfd.a
48113398SruDPADD+=	${RELTOP}/libiberty/libiberty.a
4984910SobrienLDADD=	${DPADD}
5034495SjdpCLEANDIRS+=	ldscripts
5160777SobrienCLEANFILES+=	ldemul-list.h stringify.sed
5234495Sjdp
53289242SbdreweryFILES=		${LDSCRIPTS:S|^|ldscripts/|}
54289242SbdreweryFILESDIR=	${SCRIPTDIR}
55292898SemasteLINKS=		${BINDIR}/ld ${BINDIR}/ld.bfd
56289242Sbdrewery
57131832SobrienHOST=		${TARGET_TUPLE}
58291974SbdreweryLIBSEARCHPATH=	\"=/lib\":\"=/usr/lib\"
59131832Sobrien.for ext in ${ELF_SCR_EXT}
60131832SobrienLDSCRIPTS+=	${NATIVE_EMULATION}.${ext}
61289241Sbdreweryldscripts/${NATIVE_EMULATION}.${ext}: e${NATIVE_EMULATION}.c
62131832Sobrien.endfor
6352938Sjb
6435717SjbEMXFR=
6535717SjbEMLST=
66218822Sdim.for _e in ${NATIVE_EMULATION} ${EMS}
6793361SobrienEMXFR+=	extern ld_emulation_xfer_type ld_${_e}_emulation;
6893361SobrienEMLST+=	&ld_${_e}_emulation,
6935717Sjb.endfor
7035717Sjb
7135717Sjbldemul-list.h:
7284910Sobrien	echo "${EMXFR}" > ${.TARGET}
7384910Sobrien	echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET}
7435717Sjb
7560777Sobrienstringify.sed:
7669164Sobrien	ln -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET}
7760777Sobrien
7834495Sjdp.include <bsd.prog.mk>
79