xref: /freebsd-12.1/gnu/usr.bin/binutils/ld/Makefile (revision 349a1e57)
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