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