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