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