xref: /dragonfly/gnu/usr.bin/binutils234/block2/ld/Makefile (revision 99d38c703099701955c5b1808096ed712af780e9)
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