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