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