1# $FreeBSD$ 2 3ELF_SCR_EXT= x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw 4.include "../Makefile.inc0" 5.include <src.opts.mk> 6 7.PATH: ${SRCDIR}/ld 8 9PROG= ld.bfd 10.if ${MK_LLD_IS_LD} == "no" 11MAN= ld.1 12.else 13MAN= ld.bfd.1 14CLEANFILES+= ld.bfd.1 15ld.bfd.1: ld.1 16 ${CP} ${.ALLSRC} ${.TARGET} 17.endif 18 19SCRIPTDIR= /usr/libdata/ldscripts 20SRCS+= ldcref.c \ 21 ldctor.c \ 22 ldemul-list.h \ 23 ldemul.c \ 24 ldexp.c \ 25 ldfile.c \ 26 ldgram.y \ 27 ldlang.c \ 28 ldlex.l \ 29 ldmain.c \ 30 ldmisc.c \ 31 ldver.c \ 32 ldwrite.c \ 33 lexsup.c \ 34 mri.c 35 36CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\" 37CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\" 38CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\" 39CFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\" 40CFLAGS+= -DBINDIR=\"${BINDIR}\" 41.if defined(TOOLS_PREFIX) 42CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\" 43.else 44CFLAGS+= -DTARGET_SYSTEM_ROOT=\"/\" 45.endif 46CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\" 47CFLAGS+= -D_GNU_SOURCE 48CFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd 49.if ${MK_SHARED_TOOLCHAIN} == "no" 50NO_SHARED?= yes 51.endif 52DPADD= ${GNURELTOP}/libbfd/libbfd.a 53DPADD+= ${GNURELTOP}/libiberty/libiberty.a 54LDADD= ${DPADD} 55CLEANDIRS+= ldscripts 56CLEANFILES+= ldemul-list.h stringify.sed 57 58FILES= ${LDSCRIPTS:S|^|ldscripts/|} 59FILESDIR= ${SCRIPTDIR} 60.if ${MK_LLD_IS_LD} == "no" 61LINKS= ${BINDIR}/ld.bfd ${BINDIR}/ld 62.endif 63 64HOST= ${TARGET_TUPLE} 65LIBSEARCHPATH= \"=/lib\":\"=/usr/lib\" 66.for ext in ${ELF_SCR_EXT} 67LDSCRIPTS+= ${NATIVE_EMULATION}.${ext} 68ldscripts/${NATIVE_EMULATION}.${ext}: e${NATIVE_EMULATION}.c 69.endfor 70 71EMXFR= 72EMLST= 73.for _e in ${NATIVE_EMULATION} ${EMS} 74EMXFR+= extern ld_emulation_xfer_type ld_${_e}_emulation; 75EMLST+= &ld_${_e}_emulation, 76.endfor 77 78ldemul-list.h: 79 echo "${EMXFR}" > ${.TARGET} 80 echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET} 81 82stringify.sed: ${SRCDIR}/ld/emultempl/astring.sed .NOMETA 83 ln -sf ${.ALLSRC} ${.TARGET} 84 85GENDIRDEPS_FILTER.host+= Nusr.bin/yacc 86 87.include <bsd.prog.mk> 88