Makefile revision 1.30
1# $NetBSD: Makefile,v 1.30 2019/02/25 19:55:35 joerg Exp $ 2 3CPPFLAGS+= -I${.CURDIR}/arch/${BINUTILS_MACHINE_ARCH} \ 4 -I${DIST}/ld \ 5 -DDEFAULT_EMULATION=\"${G_EMUL}\" \ 6 -DSCRIPTDIR=\"${SCRIPTSDIR}\" \ 7 -DTARGET=\"${G_target_alias}\" \ 8 -DBINDIR=\"/usr/bin\" \ 9 -DTOOLBINDIR=\"/usr/bin\" \ 10 -DENABLE_PLUGINS \ 11 -DELF_LIST_OPTIONS=TRUE \ 12 -DELF_SHLIB_LIST_OPTIONS=TRUE \ 13 -DELF_PLT_UNWIND_LIST_OPTIONS=TRUE 14 15.include "${.CURDIR}/../common/Makefile.inc" 16.include "${.CURDIR}/arch/${BINUTILS_MACHINE_ARCH}/defs.mk" 17 18SCRIPTSDIR= /usr/libdata 19 20PROG= ld 21SRCS= ${G_OFILES:.o=.c} 22 23COPTS.ldgram.c = -Wno-stack-protector 24 25PROGDPLIBS+= bfd ${TOP}/${BFDSUBDIR}/libbfd 26PROGDPLIBS+= iberty ${TOP}/${BFDSUBDIR}/libiberty 27 28TEXINFO= ${G_TEXINFOS} 29COMMONOBJDIR!= cd ${TOP}/usr.bin/common && ${PRINTOBJDIR} 30INFOFLAGS= -I${COMMONOBJDIR} -I${DIST}/ld -I${DIST}/bfd/doc -I${DIST}/libiberty 31 32FILESDIR= ${SCRIPTSDIR}/ldscripts 33 34.PATH: ${COMMONOBJDIR} ${DIST}/ld ${DIST}/ld/emulparams \ 35 ${DIST}/ld/emultempl ${DIST}/ld/scripttempl ldscripts 36 37BUILDSYMLINKS+= ${G_STRINGIFY} stringify.sed 38BUILDSYMLINKS+= gen-doc.texi configdoc.texi 39 40${PROG}.info: configdoc.texi bfdver.texi 41 42.for f in ${G_EMULATION_OFILES:S/^e//:R} 43.if exists(.depend.${f}) && !(make(clean) || make(cleandir)) 44.include ".depend.${f}" 45.endif 46 47.depend.${f}: ${f}.sh 48 ${_MKTARGET_CREATE} 49 (srcdir=${DIST}/ld EMULATION_NAME=$f . ${>:M*.sh} && \ 50 if [ x"$$TEMPLATE_NAME" != x ]; then \ 51 temp_name=$$TEMPLATE_NAME.em; \ 52 else \ 53 temp_name=; \ 54 fi; \ 55 if [ x"$$SCRIPT_NAME" != x ]; then \ 56 script=$$SCRIPT_NAME.sc; \ 57 else \ 58 script=; \ 59 fi; \ 60 echo "e${f}.c: $$temp_name $$script" \ 61 ) >$@ 62 63DPSRCS+= .depend.${f} e${f}.c 64CLEANFILES+= .depend.${f} e${f}.c 65 66e${f}.c: ${DIST}/ld/genscripts.sh ${.CURDIR}/Makefile stringify.sed 67 ${_MKTARGET_CREATE} 68 unset MACHINE || true; \ 69 NATIVE=yes ${HOST_SH} ${DIST}/ld/genscripts.sh ${DIST}/ld \ 70 ${LIBDIR} "/usr" "/usr/bin" \ 71 ${G_target_alias} ${G_target_alias} ${G_target_alias} \ 72 ${G_EMUL} ${LIBDIR} yes ${G_enable_initfini_array} \ 73 ${f} "${G_target_alias}" 74 75. if ${BINUTILS_MACHINE_ARCH} == "x86_64" || \ 76 ${BINUTILS_MACHINE_ARCH} == "sparc64" || \ 77 !empty(BINUTILS_MACHINE_ARCH:Maarch64*) || \ 78 !empty(BINUTILS_MACHINE_ARCH:Mearm*) || \ 79 !empty(BINUTILS_MACHINE_ARCH:Marm*) || \ 80 !empty(BINUTILS_MACHINE_ARCH:Mmips64*) 81. for e in x xbn xc xd xdc xdw xn xr xs xsc xsw xu xw 82. if exists(ldscripts/${f}.${e}) 83FILES+= ${f}.${e} 84. endif 85. endfor 86. endif 87.endfor 88 89.include <bsd.prog.mk> 90.include <bsd.info.mk> 91.include <bsd.subdir.mk> 92 93# Make sure we use the pre-generated C files 94.l.c .y.c .y.h: 95 @true 96 97cleandir: __cleanldscripts 98__cleanldscripts: 99 -rm -rf ldscripts tmpdir 100 101LDADD+= -lintl -lz 102DPADD+= ${LIBINTL} ${LIBZ} 103