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