1 .include "../../Makefile.inc1"
2 .include "../Makefile.block2"
7 MFILE= ld${MANPAGEVER}.1
25 LDADD= ${LDADD_BFD} ${LDADD_IBERTY} -lz
27 LIBEXEC_BINUTILS= ${BINDIR}/..
28 SCRIPTDIR= ${LIBEXEC_BINUTILS}/ldscripts
29 ELF_SCR_EXT= x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw
31 .include "Makefile.x86_64"
33 # We need to change CFLAGS, so that not to pick up bulibs's config.h first.
36 CFLAGS+= -I${SRCDIR}/include -I${SRCDIR}/bfd
37 CFLAGS+= -I${SRCDIR}/ld -I${.OBJDIR} -I${.CURDIR}
38 CFLAGS+= ${_BULIBS_INC} # for bfd.h
40 CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\"
41 CFLAGS+= -DBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\"
42 CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}${LIBEXEC_BINUTILS}\"
43 CFLAGS+= -DENABLE_PLUGINS -DHAVE_CONFIG_H
44 CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${USRDATA_PREFIX}\"
46 CFLAGS+= -DELF_LIST_OPTIONS=TRUE
47 CFLAGS+= -DELF_SHLIB_LIST_OPTIONS=TRUE
48 CFLAGS+= -DELF_PLT_UNWIND_LIST_OPTIONS=TRUE
50 # XXX: Do we want -Wl,-z,relro on by default? Differs for ld.bfd and lg.gold.
51 CFLAGS+= -DDEFAULT_LD_Z_RELRO=0
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)
59 ldemul.c: ldemul-list.h
61 CLEANDIRS+= ldscripts tmpdir
62 CLEANFILES+= ldemul-list.h stringify.sed
67 EMXFR+= extern ld_emulation_xfer_type ld_${_e}_emulation;
68 EMLST+= &ld_${_e}_emulation,
72 echo "${EMXFR}" > ${.TARGET}
73 echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET}
76 ${LN} -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET}
78 ${MFILE}: ${SRCDIR}/ld/ld.1
79 cp ${.ALLSRC} ${.TARGET}
81 install-ldscripts: ${LDSCRIPTS:S|^|ldscripts/|}
82 ${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
83 ${.ALLSRC} ${DESTDIR}${SCRIPTDIR}
85 .if defined(IS_PRIMARY)
86 MLINKS+= ${MFILE} ld.1
89 afterinstall: install-ldscripts
91 CLEANDIRS+= ldscripts tmpdir
92 CLEANFILES+= ${MFILE} ldemul-list.h stringify.sed
94 .include <bsd.prog.mk>