1.include "../../Makefile.inc1" 2.include "../Makefile.block2" 3 4.PATH: ${SRCDIR}/ld 5 6PROG= ld.bfd 7MFILE= ld${MANPAGEVER}.1 8MAN= ${MFILE} 9SRCS+= ldgram.y \ 10 ldlex.l \ 11 lexsup.c \ 12 ldlang.c \ 13 mri.c \ 14 ldctor.c \ 15 ldmain.c \ 16 ldwrite.c \ 17 ldexp.c \ 18 ldemul.c \ 19 ldver.c \ 20 ldmisc.c \ 21 ldfile.c \ 22 ldcref.c \ 23 plugin.c \ 24 ldbuildid.c 25LDADD= ${LDADD_CTF} ${LDADD_BFD} ${LDADD_IBERTY} -lz 26 27LIBEXEC_BINUTILS= ${BINDIR}/.. 28SCRIPTDIR= ${LIBEXEC_BINUTILS}/ldscripts 29ELF_SCR_EXT= x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw 30 31.include "Makefile.x86_64" 32 33# We need to change CFLAGS, so that not to pick up bulibs's config.h first. 34BULIBS_INC:= # empty 35 36CFLAGS+= -I${SRCDIR}/include -I${SRCDIR}/bfd 37CFLAGS+= -I${SRCDIR}/ld -I${.OBJDIR} -I${.CURDIR} 38CFLAGS+= ${_BULIBS_INC} # for bfd.h 39 40CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" 41CFLAGS+= -DBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" 42CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\" 43CFLAGS+= -DENABLE_PLUGINS -DHAVE_CONFIG_H 44CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${USRDATA_PREFIX}\" 45 46CFLAGS+= -DELF_LIST_OPTIONS=TRUE 47CFLAGS+= -DELF_SHLIB_LIST_OPTIONS=TRUE 48CFLAGS+= -DELF_PLT_UNWIND_LIST_OPTIONS=TRUE 49 50# XXX: Do we want -Wl,-z,relro on by default? Differs for ld.bfd and lg.gold. 51CFLAGS+= -DDEFAULT_LD_Z_RELRO=0 52 53# link-time optimization requires dlopen() which means ld cannot be built 54# statically and also support -plugin, not even for cross-tools. 55.if !defined(REALLY_NOSHARED) 56.undef NOSHARED 57.endif 58 59ldemul.c: ldemul-list.h 60 61CLEANDIRS+= ldscripts tmpdir 62CLEANFILES+= ldemul-list.h stringify.sed 63 64EMXFR= 65EMLST= 66.for _e in ${EMS} 67EMXFR+= extern ld_emulation_xfer_type ld_${_e}_emulation; 68EMLST+= &ld_${_e}_emulation, 69.endfor 70 71ldemul-list.h: 72 echo "${EMXFR}" > ${.TARGET} 73 echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET} 74 75stringify.sed: 76 ${LN} -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET} 77 78install-ldscripts: ${LDSCRIPTS:S|^|ldscripts/|} 79 ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \ 80 ${.ALLSRC} ${DESTDIR}${SCRIPTDIR} 81 82.if defined(IS_PRIMARY) 83MLINKS+= ${MFILE} ld.1 84.endif 85 86afterinstall: install-ldscripts 87 88CLEANDIRS+= ldscripts tmpdir 89CLEANFILES+= ldemul-list.h stringify.sed 90 91.include <bsd.prog.mk> 92