xref: /freebsd-12.1/gnu/usr.bin/binutils/ld/Makefile (revision 349a1e57)
19b7a44a6SPeter Wemm# $FreeBSD$
2ab5ad3a4SJohn Polstra
3ef59fb82SBryan DreweryELF_SCR_EXT=	x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw
4ab5ad3a4SJohn Polstra.include "../Makefile.inc0"
5c6063d0dSWarner Losh.include <src.opts.mk>
6ab5ad3a4SJohn Polstra
7ab5ad3a4SJohn Polstra.PATH: ${SRCDIR}/ld
8ab5ad3a4SJohn Polstra
9dbecd1bfSEd MastePROG=	ld.bfd
10d74021d6SBryan Drewery.if (!defined(TOOLS_PREFIX) && ${MK_LLD_IS_LD} == "no") || \
11d74021d6SBryan Drewery    (defined(TOOLS_PREFIX) && ${MK_LLD_BOOTSTRAP} == "no")
12dbecd1bfSEd MasteMAN=	ld.1
13d74021d6SBryan DreweryLINKS=		${BINDIR}/ld.bfd ${BINDIR}/ld
14337981bdSEd Maste.else
15337981bdSEd MasteMAN=	ld.bfd.1
16337981bdSEd MasteCLEANFILES+=	ld.bfd.1
17337981bdSEd Masteld.bfd.1:	ld.1
18337981bdSEd Maste	${CP} ${.ALLSRC} ${.TARGET}
19337981bdSEd Maste.endif
20337981bdSEd Maste
21ab5ad3a4SJohn PolstraSCRIPTDIR= /usr/libdata/ldscripts
22d9eabf46SDimitry AndricSRCS+=	ldcref.c \
23d9eabf46SDimitry Andric	ldctor.c \
24d9eabf46SDimitry Andric	ldemul-list.h \
25d9eabf46SDimitry Andric	ldemul.c \
26d9eabf46SDimitry Andric	ldexp.c \
27d9eabf46SDimitry Andric	ldfile.c \
28d9eabf46SDimitry Andric	ldgram.y \
29d9eabf46SDimitry Andric	ldlang.c \
30d9eabf46SDimitry Andric	ldlex.l \
31d9eabf46SDimitry Andric	ldmain.c \
32d9eabf46SDimitry Andric	ldmisc.c \
33d9eabf46SDimitry Andric	ldver.c \
34d9eabf46SDimitry Andric	ldwrite.c \
35d9eabf46SDimitry Andric	lexsup.c \
36d9eabf46SDimitry Andric	mri.c
37946b7fa1SRuslan Ermilov
387d0fc2f4SDavid E. O'BrienCFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
397d0fc2f4SDavid E. O'BrienCFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
4025a59bcfSDavid E. O'BrienCFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\"
41a1a1118aSDavid E. O'BrienCFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\"
422fda6dbcSBrooks DavisCFLAGS+= -DBINDIR=\"${BINDIR}\"
432fda6dbcSBrooks Davis.if defined(TOOLS_PREFIX)
442fda6dbcSBrooks DavisCFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\"
452fda6dbcSBrooks Davis.else
462fda6dbcSBrooks DavisCFLAGS+= -DTARGET_SYSTEM_ROOT=\"/\"
472fda6dbcSBrooks Davis.endif
4834d55919SDavid E. O'BrienCFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\"
49e223c68bSDavid E. O'BrienCFLAGS+= -D_GNU_SOURCE
508f0d33afSDavid E. O'BrienCFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd
514f20e4f2SKonstantin Belousov.if ${MK_SHARED_TOOLCHAIN} == "no"
5283c7ade9SRuslan ErmilovNO_SHARED?= yes
534f20e4f2SKonstantin Belousov.endif
54*349a1e57SEd MasteDPADD=	${GNURELTOP}/libbfd/libbfd${PIE_SUFFIX}.a
55*349a1e57SEd MasteDPADD+=	${GNURELTOP}/libiberty/libiberty${PIE_SUFFIX}.a
566a186274SBruce EvansLDADD=	${DPADD}
57ab5ad3a4SJohn PolstraCLEANDIRS+=	ldscripts
587f3d7f20SDavid E. O'BrienCLEANFILES+=	ldemul-list.h stringify.sed
59c8c066f7SJohn Birrell
603adbeaccSBryan DreweryFILES=		${LDSCRIPTS:S|^|ldscripts/|}
613adbeaccSBryan DreweryFILESDIR=	${SCRIPTDIR}
623adbeaccSBryan Drewery
637d0fc2f4SDavid E. O'BrienHOST=		${TARGET_TUPLE}
648b2b71b4SBryan DreweryLIBSEARCHPATH=	\"=/lib\":\"=/usr/lib\"
657d0fc2f4SDavid E. O'Brien.for ext in ${ELF_SCR_EXT}
667d0fc2f4SDavid E. O'BrienLDSCRIPTS+=	${NATIVE_EMULATION}.${ext}
67dabaad66SBryan Dreweryldscripts/${NATIVE_EMULATION}.${ext}: e${NATIVE_EMULATION}.c
687d0fc2f4SDavid E. O'Brien.endfor
69a719bd2fSJohn Birrell
70c8c066f7SJohn BirrellEMXFR=
71c8c066f7SJohn BirrellEMLST=
72ce8fb931SDimitry Andric.for _e in ${NATIVE_EMULATION} ${EMS}
73eb294035SDavid E. O'BrienEMXFR+=	extern ld_emulation_xfer_type ld_${_e}_emulation;
74eb294035SDavid E. O'BrienEMLST+=	&ld_${_e}_emulation,
75c8c066f7SJohn Birrell.endfor
76c8c066f7SJohn Birrell
77c8c066f7SJohn Birrellldemul-list.h:
784ab605cfSDavid E. O'Brien	echo "${EMXFR}" > ${.TARGET}
794ab605cfSDavid E. O'Brien	echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET}
80c8c066f7SJohn Birrell
81b791fbe6SBryan Drewerystringify.sed: ${SRCDIR}/ld/emultempl/astring.sed .NOMETA
82b791fbe6SBryan Drewery	ln -sf ${.ALLSRC} ${.TARGET}
837f3d7f20SDavid E. O'Brien
8498e0ffaeSSimon J. GerratyGENDIRDEPS_FILTER.host+= Nusr.bin/yacc
8598e0ffaeSSimon J. Gerraty
86ab5ad3a4SJohn Polstra.include <bsd.prog.mk>
87