xref: /freebsd-12.1/gnu/usr.bin/binutils/ld/Makefile (revision e7d939bd)
1# $FreeBSD$
2
3.include "../Makefile.inc0"
4.include <src.opts.mk>
5
6.PATH: ${SRCDIR}/ld
7
8PROG=	ld
9SCRIPTDIR= /usr/libdata/ldscripts
10SRCS+=	ldcref.c \
11	ldctor.c \
12	ldemul-list.h \
13	ldemul.c \
14	ldexp.c \
15	ldfile.c \
16	ldgram.y \
17	ldlang.c \
18	ldlex.l \
19	ldmain.c \
20	ldmisc.c \
21	ldver.c \
22	ldwrite.c \
23	lexsup.c \
24	mri.c
25
26CFLAGS+= -DTARGET=\"${TARGET_TUPLE}\"
27CFLAGS+= -DDEFAULT_EMULATION=\"${NATIVE_EMULATION}\"
28CFLAGS+= -DSCRIPTDIR=\"${TOOLS_PREFIX}/usr/libdata\"
29CFLAGS+= -DBFD_VERSION_STRING=\"${VERSION}\"
30CFLAGS+= -DBINDIR=\"${BINDIR}\"
31.if defined(TOOLS_PREFIX)
32CFLAGS+= -DTARGET_SYSTEM_ROOT=\"${TOOLS_PREFIX}\"
33.else
34CFLAGS+= -DTARGET_SYSTEM_ROOT=\"/\"
35.endif
36CFLAGS+= -DTOOLBINDIR=\"${TOOLS_PREFIX}/${BINDIR}/libexec\"
37CFLAGS+= -D_GNU_SOURCE
38CFLAGS+= -I${SRCDIR}/ld -I${SRCDIR}/bfd
39.if ${MK_SHARED_TOOLCHAIN} == "no"
40NO_SHARED?= yes
41.endif
42DPADD=	${RELTOP}/libbfd/libbfd.a
43DPADD+=	${RELTOP}/libiberty/libiberty.a
44LDADD=	${DPADD}
45CLEANDIRS+=	ldscripts
46CLEANFILES+=	ldemul-list.h stringify.sed
47
48HOST=		${TARGET_TUPLE}
49LIBSEARCHPATH=	\"${TOOLS_PREFIX}/lib\":\"${TOOLS_PREFIX}/usr/lib\"
50ELF_SCR_EXT=	x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw
51.for ext in ${ELF_SCR_EXT}
52LDSCRIPTS+=	${NATIVE_EMULATION}.${ext}
53.endfor
54
55EMXFR=
56EMLST=
57.for _e in ${NATIVE_EMULATION} ${EMS}
58EMXFR+=	extern ld_emulation_xfer_type ld_${_e}_emulation;
59EMLST+=	&ld_${_e}_emulation,
60.endfor
61
62ldemul-list.h:
63	echo "${EMXFR}" > ${.TARGET}
64	echo "#define EMULATION_LIST ${EMLST} 0" >> ${.TARGET}
65
66stringify.sed:
67	ln -sf ${SRCDIR}/ld/emultempl/astring.sed ${.TARGET}
68
69afterinstall:
70	${INSTALL} -o ${LIBOWN} -g ${LIBGRP} -m ${LIBMODE} \
71	    ${LDSCRIPTS:S|^|ldscripts/|} ${DESTDIR}${SCRIPTDIR}
72
73.include <bsd.prog.mk>
74