Wed Nov 29 18:15:53 2017 UTC ()
switch everyone to gdb-8.0.1


(christos)
diff -r1.1021 -r1.1022 src/share/mk/bsd.own.mk

cvs diff -r1.1021 -r1.1022 src/share/mk/bsd.own.mk (switch to unified diff)

--- src/share/mk/bsd.own.mk 2017/11/29 04:25:01 1.1021
+++ src/share/mk/bsd.own.mk 2017/11/29 18:15:53 1.1022
@@ -1,1137 +1,1133 @@ @@ -1,1137 +1,1133 @@
1# $NetBSD: bsd.own.mk,v 1.1021 2017/11/29 04:25:01 christos Exp $ 1# $NetBSD: bsd.own.mk,v 1.1022 2017/11/29 18:15:53 christos Exp $
2 2
3# This needs to be before bsd.init.mk 3# This needs to be before bsd.init.mk
4.if defined(BSD_MK_COMPAT_FILE) 4.if defined(BSD_MK_COMPAT_FILE)
5.include <${BSD_MK_COMPAT_FILE}> 5.include <${BSD_MK_COMPAT_FILE}>
6.endif 6.endif
7 7
8.if !defined(_BSD_OWN_MK_) 8.if !defined(_BSD_OWN_MK_)
9_BSD_OWN_MK_=1 9_BSD_OWN_MK_=1
10 10
11MAKECONF?= /etc/mk.conf 11MAKECONF?= /etc/mk.conf
12.-include "${MAKECONF}" 12.-include "${MAKECONF}"
13 13
14# 14#
15# CPU model, derived from MACHINE_ARCH 15# CPU model, derived from MACHINE_ARCH
16# 16#
17MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:C/mips64e[bl]/mips/:C/sh3e[bl]/sh3/:S/coldfire/m68k/:S/m68000/m68k/:C/arm.*/arm/:C/earm.*/arm/:S/earm/arm/:S/powerpc64/powerpc/:S/aarch64eb/aarch64/:S/or1knd/or1k/:C/riscv../riscv/} 17MACHINE_CPU= ${MACHINE_ARCH:C/mipse[bl]/mips/:C/mips64e[bl]/mips/:C/sh3e[bl]/sh3/:S/coldfire/m68k/:S/m68000/m68k/:C/arm.*/arm/:C/earm.*/arm/:S/earm/arm/:S/powerpc64/powerpc/:S/aarch64eb/aarch64/:S/or1knd/or1k/:C/riscv../riscv/}
18 18
19# 19#
20# Subdirectory used below ${RELEASEDIR} when building a release 20# Subdirectory used below ${RELEASEDIR} when building a release
21# 21#
22RELEASEMACHINEDIR?= ${MACHINE} 22RELEASEMACHINEDIR?= ${MACHINE}
23 23
24# 24#
25# Subdirectory or path component used for the following paths: 25# Subdirectory or path component used for the following paths:
26# distrib/${RELEASEMACHINE} 26# distrib/${RELEASEMACHINE}
27# distrib/notes/${RELEASEMACHINE} 27# distrib/notes/${RELEASEMACHINE}
28# etc/etc.${RELEASEMACHINE} 28# etc/etc.${RELEASEMACHINE}
29# Used when building a release. 29# Used when building a release.
30# 30#
31RELEASEMACHINE?= ${MACHINE} 31RELEASEMACHINE?= ${MACHINE}
32 32
33# 33#
34# NEED_OWN_INSTALL_TARGET is set to "no" by pkgsrc/mk/bsd.pkg.mk to 34# NEED_OWN_INSTALL_TARGET is set to "no" by pkgsrc/mk/bsd.pkg.mk to
35# ensure that things defined by <bsd.own.mk> (default targets, 35# ensure that things defined by <bsd.own.mk> (default targets,
36# INSTALL_FILE, etc.) are not conflicting with bsd.pkg.mk. 36# INSTALL_FILE, etc.) are not conflicting with bsd.pkg.mk.
37# 37#
38NEED_OWN_INSTALL_TARGET?= yes 38NEED_OWN_INSTALL_TARGET?= yes
39 39
40# 40#
41# This lists the platforms which do not have working in-tree toolchains. For 41# This lists the platforms which do not have working in-tree toolchains. For
42# the in-tree gcc toolchain, this list is empty. 42# the in-tree gcc toolchain, this list is empty.
43# 43#
44# If some future port is not supported by the in-tree toolchain, this should 44# If some future port is not supported by the in-tree toolchain, this should
45# be set to "yes" for that port only. 45# be set to "yes" for that port only.
46# 46#
47# .if ${MACHINE} == "playstation2" 47# .if ${MACHINE} == "playstation2"
48# TOOLCHAIN_MISSING?= yes 48# TOOLCHAIN_MISSING?= yes
49# .endif 49# .endif
50 50
51TOOLCHAIN_MISSING?= no 51TOOLCHAIN_MISSING?= no
52 52
53.if ${MACHINE_CPU} == "aarch64" && !defined(EXTERNAL_TOOLCHAIN) && ${MKLLVM:Uyes} != "no" 53.if ${MACHINE_CPU} == "aarch64" && !defined(EXTERNAL_TOOLCHAIN) && ${MKLLVM:Uyes} != "no"
54MKLLVM?= yes 54MKLLVM?= yes
55HAVE_LLVM?= yes 55HAVE_LLVM?= yes
56MKGCC?= no 56MKGCC?= no
57.endif 57.endif
58 58
59# 59#
60# GCC Using platforms. 60# GCC Using platforms.
61# 61#
62.if ${MKGCC:Uyes} != "no" 62.if ${MKGCC:Uyes} != "no"
63 63
64# 64#
65# What GCC is used? 65# What GCC is used?
66# 66#
67.if ${MACHINE_CPU} == "aarch64" 67.if ${MACHINE_CPU} == "aarch64"
68HAVE_GCC?= 0 68HAVE_GCC?= 0
69.else 69.else
70HAVE_GCC?= 53 70HAVE_GCC?= 53
71.endif 71.endif
72 72
73# 73#
74# Platforms that can't run a modern GCC natively 74# Platforms that can't run a modern GCC natively
75.if ${MACHINE_ARCH} == "m68000" 75.if ${MACHINE_ARCH} == "m68000"
76MKGCCCMDS?= no 76MKGCCCMDS?= no
77.endif 77.endif
78 78
79# 79#
80# We import the old gcc as "gcc.old" when upgrading. EXTERNAL_GCC_SUBDIR is 80# We import the old gcc as "gcc.old" when upgrading. EXTERNAL_GCC_SUBDIR is
81# set to the relevant subdirectory in src/external/gpl3 for his HAVE_GCC. 81# set to the relevant subdirectory in src/external/gpl3 for his HAVE_GCC.
82# 82#
83.if ${HAVE_GCC} == 53 83.if ${HAVE_GCC} == 53
84EXTERNAL_GCC_SUBDIR= gcc.old 84EXTERNAL_GCC_SUBDIR= gcc.old
85.else 85.else
86EXTERNAL_GCC_SUBDIR= /does/not/exist 86EXTERNAL_GCC_SUBDIR= /does/not/exist
87.endif 87.endif
88.else 88.else
89MKGCCCMDS?= no 89MKGCCCMDS?= no
90.endif 90.endif
91 91
92.if !empty(MACHINE_ARCH:Mearm*) 92.if !empty(MACHINE_ARCH:Mearm*)
93_LIBC_COMPILER_RT.${MACHINE_ARCH}= yes 93_LIBC_COMPILER_RT.${MACHINE_ARCH}= yes
94.endif 94.endif
95 95
96_LIBC_COMPILER_RT.aarch64= yes 96_LIBC_COMPILER_RT.aarch64= yes
97_LIBC_COMPILER_RT.aarch64eb= yes 97_LIBC_COMPILER_RT.aarch64eb= yes
98_LIBC_COMPILER_RT.i386= yes 98_LIBC_COMPILER_RT.i386= yes
99_LIBC_COMPILER_RT.powerpc= yes 99_LIBC_COMPILER_RT.powerpc= yes
100_LIBC_COMPILER_RT.powerpc64= yes 100_LIBC_COMPILER_RT.powerpc64= yes
101_LIBC_COMPILER_RT.sparc= yes 101_LIBC_COMPILER_RT.sparc= yes
102_LIBC_COMPILER_RT.sparc64= yes 102_LIBC_COMPILER_RT.sparc64= yes
103_LIBC_COMPILER_RT.x86_64= yes 103_LIBC_COMPILER_RT.x86_64= yes
104 104
105.if ${HAVE_LLVM:Uno} == "yes" && ${_LIBC_COMPILER_RT.${MACHINE_ARCH}:Uno} == "yes" 105.if ${HAVE_LLVM:Uno} == "yes" && ${_LIBC_COMPILER_RT.${MACHINE_ARCH}:Uno} == "yes"
106HAVE_LIBGCC?= no 106HAVE_LIBGCC?= no
107.else 107.else
108HAVE_LIBGCC?= yes 108HAVE_LIBGCC?= yes
109.endif 109.endif
110 110
111 111
112# ia64 is not support 112# ia64 is not support
113.if ${HAVE_LLVM:Uno} == "yes" || !empty(MACHINE_ARCH:Mearm*) 113.if ${HAVE_LLVM:Uno} == "yes" || !empty(MACHINE_ARCH:Mearm*)
114HAVE_LIBGCC_EH?= no 114HAVE_LIBGCC_EH?= no
115.else 115.else
116HAVE_LIBGCC_EH?= yes 116HAVE_LIBGCC_EH?= yes
117.endif 117.endif
118 118
119.if ${MACHINE} == "alpha" || \ 119.if ${MACHINE} == "alpha" || \
120 ${MACHINE} == "hppa" || \ 120 ${MACHINE} == "hppa" || \
121 ${MACHINE} == "ia64" || \ 121 ${MACHINE} == "ia64" || \
122 ${MACHINE_CPU} == "mips" 122 ${MACHINE_CPU} == "mips"
123HAVE_SSP?= no 123HAVE_SSP?= no
124.else 124.else
125HAVE_SSP?= yes 125HAVE_SSP?= yes
126.if !defined(NOFORT) && ${USE_FORT:Uno} != "no" 126.if !defined(NOFORT) && ${USE_FORT:Uno} != "no"
127USE_SSP?= yes 127USE_SSP?= yes
128.endif 128.endif
129.endif 129.endif
130 130
131# 131#
132# What GDB is used? 132# What GDB is used?
133# 133#
134.if ${MACHINE} == "amd64" 
135HAVE_GDB?= 801 134HAVE_GDB?= 801
136.else 
137HAVE_GDB?= 712 
138.endif 
139 135
140.if ${HAVE_GDB} == 801 136.if ${HAVE_GDB} == 801
141EXTERNAL_GDB_SUBDIR= gdb 137EXTERNAL_GDB_SUBDIR= gdb
142.elif ${HAVE_GDB} == 712 138.elif ${HAVE_GDB} == 712
143EXTERNAL_GDB_SUBDIR= gdb.old 139EXTERNAL_GDB_SUBDIR= gdb.old
144.else 140.else
145EXTERNAL_GDB_SUBDIR= /does/not/exist 141EXTERNAL_GDB_SUBDIR= /does/not/exist
146.endif 142.endif
147 143
148# 144#
149# What binutils is used? 145# What binutils is used?
150# 146#
151HAVE_BINUTILS?= 227 147HAVE_BINUTILS?= 227
152 148
153.if ${HAVE_BINUTILS} == 227 149.if ${HAVE_BINUTILS} == 227
154EXTERNAL_BINUTILS_SUBDIR= binutils 150EXTERNAL_BINUTILS_SUBDIR= binutils
155.else 151.else
156EXTERNAL_BINUTILS_SUBDIR= /does/not/exist 152EXTERNAL_BINUTILS_SUBDIR= /does/not/exist
157.endif 153.endif
158 154
159.if empty(.MAKEFLAGS:tW:M*-V .OBJDIR*) 155.if empty(.MAKEFLAGS:tW:M*-V .OBJDIR*)
160.if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR) 156.if defined(MAKEOBJDIRPREFIX) || defined(MAKEOBJDIR)
161PRINTOBJDIR= ${MAKE} -r -V .OBJDIR -f /dev/null xxx 157PRINTOBJDIR= ${MAKE} -r -V .OBJDIR -f /dev/null xxx
162.else 158.else
163PRINTOBJDIR= ${MAKE} -V .OBJDIR 159PRINTOBJDIR= ${MAKE} -V .OBJDIR
164.endif 160.endif
165.else 161.else
166PRINTOBJDIR= echo /error/bsd.own.mk/PRINTOBJDIR # avoid infinite recursion 162PRINTOBJDIR= echo /error/bsd.own.mk/PRINTOBJDIR # avoid infinite recursion
167.endif 163.endif
168 164
169# 165#
170# Determine if running in the NetBSD source tree by checking for the 166# Determine if running in the NetBSD source tree by checking for the
171# existence of build.sh and tools/ in the current or a parent directory, 167# existence of build.sh and tools/ in the current or a parent directory,
172# and setting _SRC_TOP_ to the result. 168# and setting _SRC_TOP_ to the result.
173# 169#
174.if !defined(_SRC_TOP_) # { 170.if !defined(_SRC_TOP_) # {
175_SRC_TOP_!= cd "${.CURDIR}"; while :; do \ 171_SRC_TOP_!= cd "${.CURDIR}"; while :; do \
176 here=`pwd`; \ 172 here=`pwd`; \
177 [ -f build.sh ] && [ -d tools ] && { echo $$here; break; }; \ 173 [ -f build.sh ] && [ -d tools ] && { echo $$here; break; }; \
178 case $$here in /) echo ""; break;; esac; \ 174 case $$here in /) echo ""; break;; esac; \
179 cd ..; done 175 cd ..; done
180 176
181.MAKEOVERRIDES+= _SRC_TOP_ 177.MAKEOVERRIDES+= _SRC_TOP_
182 178
183.endif # } 179.endif # }
184 180
185# 181#
186# If _SRC_TOP_ != "", we're within the NetBSD source tree. 182# If _SRC_TOP_ != "", we're within the NetBSD source tree.
187# * Set defaults for NETBSDSRCDIR and _SRC_TOP_OBJ_. 183# * Set defaults for NETBSDSRCDIR and _SRC_TOP_OBJ_.
188# * Define _NETBSD_VERSION_DEPENDS. Targets that depend on the 184# * Define _NETBSD_VERSION_DEPENDS. Targets that depend on the
189# NetBSD version, or on variables defined at build time, can 185# NetBSD version, or on variables defined at build time, can
190# declare a dependency on ${_NETBSD_VERSION_DEPENDS}. 186# declare a dependency on ${_NETBSD_VERSION_DEPENDS}.
191# 187#
192.if (${_SRC_TOP_} != "") # { 188.if (${_SRC_TOP_} != "") # {
193 189
194NETBSDSRCDIR?= ${_SRC_TOP_} 190NETBSDSRCDIR?= ${_SRC_TOP_}
195 191
196.if !defined(_SRC_TOP_OBJ_) 192.if !defined(_SRC_TOP_OBJ_)
197_SRC_TOP_OBJ_!= cd "${_SRC_TOP_}" && ${PRINTOBJDIR} 193_SRC_TOP_OBJ_!= cd "${_SRC_TOP_}" && ${PRINTOBJDIR}
198.MAKEOVERRIDES+= _SRC_TOP_OBJ_ 194.MAKEOVERRIDES+= _SRC_TOP_OBJ_
199.endif 195.endif
200 196
201_NETBSD_VERSION_DEPENDS= ${_SRC_TOP_OBJ_}/params 197_NETBSD_VERSION_DEPENDS= ${_SRC_TOP_OBJ_}/params
202_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/sys/param.h 198_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/sys/param.h
203_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/conf/newvers.sh 199_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/conf/newvers.sh
204_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/conf/osrelease.sh 200_NETBSD_VERSION_DEPENDS+= ${NETBSDSRCDIR}/sys/conf/osrelease.sh
205${_SRC_TOP_OBJ_}/params: .NOTMAIN .OPTIONAL # created by top level "make build" 201${_SRC_TOP_OBJ_}/params: .NOTMAIN .OPTIONAL # created by top level "make build"
206 202
207.endif # _SRC_TOP_ != "" # } 203.endif # _SRC_TOP_ != "" # }
208 204
209 205
210.if (${_SRC_TOP_} != "") && \ 206.if (${_SRC_TOP_} != "") && \
211 (${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN)) 207 (${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN))
212USETOOLS?= yes 208USETOOLS?= yes
213.endif 209.endif
214USETOOLS?= no 210USETOOLS?= no
215 211
216 212
217.if ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "mips64" || \ 213.if ${MACHINE_ARCH} == "mips" || ${MACHINE_ARCH} == "mips64" || \
218 ${MACHINE_ARCH} == "sh3" 214 ${MACHINE_ARCH} == "sh3"
219.BEGIN: 215.BEGIN:
220 @echo "Must set MACHINE_ARCH to one of ${MACHINE_ARCH}eb or ${MACHINE_ARCH}el" 216 @echo "Must set MACHINE_ARCH to one of ${MACHINE_ARCH}eb or ${MACHINE_ARCH}el"
221 @false 217 @false
222.elif defined(REQUIRETOOLS) && \ 218.elif defined(REQUIRETOOLS) && \
223 (${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN)) && \ 219 (${TOOLCHAIN_MISSING} == "no" || defined(EXTERNAL_TOOLCHAIN)) && \
224 ${USETOOLS} == "no" 220 ${USETOOLS} == "no"
225.BEGIN: 221.BEGIN:
226 @echo "USETOOLS=no, but this component requires a version-specific host toolchain" 222 @echo "USETOOLS=no, but this component requires a version-specific host toolchain"
227 @false 223 @false
228.endif 224.endif
229 225
230# 226#
231# Host platform information; may be overridden 227# Host platform information; may be overridden
232# 228#
233.include <bsd.host.mk> 229.include <bsd.host.mk>
234 230
235.if ${USETOOLS} == "yes" # { 231.if ${USETOOLS} == "yes" # {
236 232
237# 233#
238# Provide a default for TOOLDIR. 234# Provide a default for TOOLDIR.
239# 235#
240.if !defined(TOOLDIR) 236.if !defined(TOOLDIR)
241TOOLDIR:= ${_SRC_TOP_OBJ_}/tooldir.${HOST_OSTYPE} 237TOOLDIR:= ${_SRC_TOP_OBJ_}/tooldir.${HOST_OSTYPE}
242.MAKEOVERRIDES+= TOOLDIR 238.MAKEOVERRIDES+= TOOLDIR
243.endif 239.endif
244 240
245# 241#
246# This is the prefix used for the NetBSD-sourced tools. 242# This is the prefix used for the NetBSD-sourced tools.
247# 243#
248_TOOL_PREFIX?= nb 244_TOOL_PREFIX?= nb
249 245
250# 246#
251# If an external toolchain base is specified, use it. 247# If an external toolchain base is specified, use it.
252# 248#
253.if defined(EXTERNAL_TOOLCHAIN) # { 249.if defined(EXTERNAL_TOOLCHAIN) # {
254AR= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ar 250AR= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ar
255AS= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-as 251AS= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-as
256LD= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ld 252LD= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ld
257NM= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-nm 253NM= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-nm
258OBJCOPY= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-objcopy 254OBJCOPY= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-objcopy
259OBJDUMP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-objdump 255OBJDUMP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-objdump
260RANLIB= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ranlib 256RANLIB= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-ranlib
261READELF= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-readelf 257READELF= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-readelf
262SIZE= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-size 258SIZE= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-size
263STRINGS= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-strings 259STRINGS= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-strings
264STRIP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-strip 260STRIP= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-strip
265 261
266TOOL_CC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc 262TOOL_CC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc
267TOOL_CPP.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-cpp 263TOOL_CPP.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-cpp
268TOOL_CXX.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-c++ 264TOOL_CXX.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-c++
269TOOL_FC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-g77 265TOOL_FC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-g77
270TOOL_OBJC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc 266TOOL_OBJC.gcc= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-gcc
271 267
272TOOL_CC.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang 268TOOL_CC.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang
273TOOL_CPP.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang-cpp 269TOOL_CPP.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang-cpp
274TOOL_CXX.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang++ 270TOOL_CXX.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang++
275TOOL_OBJC.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang 271TOOL_OBJC.clang= ${EXTERNAL_TOOLCHAIN}/bin/${MACHINE_GNU_PLATFORM}-clang
276.else # } { 272.else # } {
277# Define default locations for common tools. 273# Define default locations for common tools.
278.if ${USETOOLS_BINUTILS:Uyes} == "yes" # { 274.if ${USETOOLS_BINUTILS:Uyes} == "yes" # {
279AR= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ar 275AR= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ar
280AS= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-as 276AS= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-as
281LD= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ld 277LD= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ld
282NM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-nm 278NM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-nm
283OBJCOPY= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-objcopy 279OBJCOPY= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-objcopy
284OBJDUMP= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-objdump 280OBJDUMP= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-objdump
285RANLIB= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ranlib 281RANLIB= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-ranlib
286READELF= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-readelf 282READELF= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-readelf
287SIZE= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-size 283SIZE= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-size
288STRINGS= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-strings 284STRINGS= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-strings
289STRIP= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-strip 285STRIP= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-strip
290 286
291# GCC supports C, C++, Fortran and Objective C 287# GCC supports C, C++, Fortran and Objective C
292TOOL_CC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-gcc 288TOOL_CC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-gcc
293TOOL_CPP.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-cpp 289TOOL_CPP.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-cpp
294TOOL_CXX.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-c++ 290TOOL_CXX.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-c++
295TOOL_FC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-g77 291TOOL_FC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-g77
296TOOL_OBJC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-gcc 292TOOL_OBJC.gcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-gcc
297.endif # } 293.endif # }
298 294
299# Clang supports C, C++ and Objective C 295# Clang supports C, C++ and Objective C
300TOOL_CC.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang 296TOOL_CC.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang
301TOOL_CPP.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang-cpp 297TOOL_CPP.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang-cpp
302TOOL_CXX.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang++ 298TOOL_CXX.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang++
303TOOL_OBJC.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang 299TOOL_OBJC.clang= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-clang
304 300
305# PCC supports C and Fortran 301# PCC supports C and Fortran
306TOOL_CC.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-pcc 302TOOL_CC.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-pcc
307TOOL_CPP.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-pcpp 303TOOL_CPP.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-pcpp
308TOOL_CXX.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-p++ 304TOOL_CXX.pcc= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-p++
309 305
310# 306#
311# Make sure DESTDIR is set, so that builds with these tools always 307# Make sure DESTDIR is set, so that builds with these tools always
312# get appropriate -nostdinc, -nostdlib, etc. handling. The default is 308# get appropriate -nostdinc, -nostdlib, etc. handling. The default is
313# <empty string>, meaning start from /, the root directory. 309# <empty string>, meaning start from /, the root directory.
314# 310#
315DESTDIR?= 311DESTDIR?=
316 312
317.if !defined(HOSTPROG) && !defined(HOSTLIB) 313.if !defined(HOSTPROG) && !defined(HOSTLIB)
318. if ${DESTDIR} != "" 314. if ${DESTDIR} != ""
319CPPFLAGS+= --sysroot=${DESTDIR} 315CPPFLAGS+= --sysroot=${DESTDIR}
320LDFLAGS+= --sysroot=${DESTDIR} 316LDFLAGS+= --sysroot=${DESTDIR}
321. else 317. else
322CPPFLAGS+= --sysroot=/ 318CPPFLAGS+= --sysroot=/
323LDFLAGS+= --sysroot=/ 319LDFLAGS+= --sysroot=/
324. endif 320. endif
325.endif 321.endif
326.endif # EXTERNAL_TOOLCHAIN # } 322.endif # EXTERNAL_TOOLCHAIN # }
327 323
328DBSYM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-dbsym 324DBSYM= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-dbsym
329ELF2AOUT= ${TOOLDIR}/bin/${_TOOL_PREFIX}m68k-elf2aout 325ELF2AOUT= ${TOOLDIR}/bin/${_TOOL_PREFIX}m68k-elf2aout
330ELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff 326ELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff
331INSTALL= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-install 327INSTALL= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-install
332LEX= ${TOOLDIR}/bin/${_TOOL_PREFIX}lex 328LEX= ${TOOLDIR}/bin/${_TOOL_PREFIX}lex
333LINT= CC=${CC:Q} ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-lint 329LINT= CC=${CC:Q} ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-lint
334LORDER= NM=${NM:Q} MKTEMP=${TOOL_MKTEMP:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}lorder 330LORDER= NM=${NM:Q} MKTEMP=${TOOL_MKTEMP:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}lorder
335MKDEP= CC=${CC:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}mkdep 331MKDEP= CC=${CC:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}mkdep
336MKDEPCXX= CC=${CXX:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}mkdep 332MKDEPCXX= CC=${CXX:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}mkdep
337PAXCTL= ${TOOLDIR}/bin/${_TOOL_PREFIX}paxctl 333PAXCTL= ${TOOLDIR}/bin/${_TOOL_PREFIX}paxctl
338TSORT= ${TOOLDIR}/bin/${_TOOL_PREFIX}tsort -q 334TSORT= ${TOOLDIR}/bin/${_TOOL_PREFIX}tsort -q
339YACC= ${TOOLDIR}/bin/${_TOOL_PREFIX}yacc 335YACC= ${TOOLDIR}/bin/${_TOOL_PREFIX}yacc
340 336
341TOOL_AMIGAAOUT2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-aout2bb 337TOOL_AMIGAAOUT2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-aout2bb
342TOOL_AMIGAELF2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-elf2bb 338TOOL_AMIGAELF2BB= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-elf2bb
343TOOL_AMIGATXLT= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-txlt 339TOOL_AMIGATXLT= ${TOOLDIR}/bin/${_TOOL_PREFIX}amiga-txlt
344TOOL_ASN1_COMPILE= ${TOOLDIR}/bin/${_TOOL_PREFIX}asn1_compile 340TOOL_ASN1_COMPILE= ${TOOLDIR}/bin/${_TOOL_PREFIX}asn1_compile
345TOOL_AWK= ${TOOLDIR}/bin/${_TOOL_PREFIX}awk 341TOOL_AWK= ${TOOLDIR}/bin/${_TOOL_PREFIX}awk
346TOOL_CAP_MKDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}cap_mkdb 342TOOL_CAP_MKDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}cap_mkdb
347TOOL_CAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}cat 343TOOL_CAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}cat
348TOOL_CKSUM= ${TOOLDIR}/bin/${_TOOL_PREFIX}cksum 344TOOL_CKSUM= ${TOOLDIR}/bin/${_TOOL_PREFIX}cksum
349TOOL_CLANG_TBLGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}clang-tblgen 345TOOL_CLANG_TBLGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}clang-tblgen
350TOOL_COMPILE_ET= ${TOOLDIR}/bin/${_TOOL_PREFIX}compile_et 346TOOL_COMPILE_ET= ${TOOLDIR}/bin/${_TOOL_PREFIX}compile_et
351TOOL_CONFIG= ${TOOLDIR}/bin/${_TOOL_PREFIX}config 347TOOL_CONFIG= ${TOOLDIR}/bin/${_TOOL_PREFIX}config
352TOOL_CRUNCHGEN= MAKE=${.MAKE:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}crunchgen 348TOOL_CRUNCHGEN= MAKE=${.MAKE:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}crunchgen
353TOOL_CTAGS= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctags 349TOOL_CTAGS= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctags
354TOOL_CTFCONVERT= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctfconvert 350TOOL_CTFCONVERT= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctfconvert
355TOOL_CTFMERGE= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctfmerge 351TOOL_CTFMERGE= ${TOOLDIR}/bin/${_TOOL_PREFIX}ctfmerge
356TOOL_CVSLATEST= ${TOOLDIR}/bin/${_TOOL_PREFIX}cvslatest 352TOOL_CVSLATEST= ${TOOLDIR}/bin/${_TOOL_PREFIX}cvslatest
357TOOL_DB= ${TOOLDIR}/bin/${_TOOL_PREFIX}db 353TOOL_DB= ${TOOLDIR}/bin/${_TOOL_PREFIX}db
358TOOL_DISKLABEL= ${TOOLDIR}/bin/nbdisklabel 354TOOL_DISKLABEL= ${TOOLDIR}/bin/nbdisklabel
359TOOL_DTC= ${TOOLDIR}/bin/${_TOOL_PREFIX}dtc 355TOOL_DTC= ${TOOLDIR}/bin/${_TOOL_PREFIX}dtc
360TOOL_EQN= ${TOOLDIR}/bin/${_TOOL_PREFIX}eqn 356TOOL_EQN= ${TOOLDIR}/bin/${_TOOL_PREFIX}eqn
361TOOL_FDISK= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk 357TOOL_FDISK= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-fdisk
362TOOL_FGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}fgen 358TOOL_FGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}fgen
363TOOL_GENASSYM= ${TOOLDIR}/bin/${_TOOL_PREFIX}genassym 359TOOL_GENASSYM= ${TOOLDIR}/bin/${_TOOL_PREFIX}genassym
364TOOL_GENCAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}gencat 360TOOL_GENCAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}gencat
365TOOL_GMAKE= ${TOOLDIR}/bin/${_TOOL_PREFIX}gmake 361TOOL_GMAKE= ${TOOLDIR}/bin/${_TOOL_PREFIX}gmake
366TOOL_GPT= ${TOOLDIR}/bin/${_TOOL_PREFIX}gpt 362TOOL_GPT= ${TOOLDIR}/bin/${_TOOL_PREFIX}gpt
367# grep exists in src/tools, but is not hooked up into the build. 363# grep exists in src/tools, but is not hooked up into the build.
368#TOOL_GREP= ${TOOLDIR}/bin/${_TOOL_PREFIX}grep 364#TOOL_GREP= ${TOOLDIR}/bin/${_TOOL_PREFIX}grep
369TOOL_GREP= grep 365TOOL_GREP= grep
370TOOL_GROFF= PATH=${TOOLDIR}/lib/groff:$${PATH} ${TOOLDIR}/bin/${_TOOL_PREFIX}groff 366TOOL_GROFF= PATH=${TOOLDIR}/lib/groff:$${PATH} ${TOOLDIR}/bin/${_TOOL_PREFIX}groff
371TOOL_HEXDUMP= ${TOOLDIR}/bin/${_TOOL_PREFIX}hexdump 367TOOL_HEXDUMP= ${TOOLDIR}/bin/${_TOOL_PREFIX}hexdump
372TOOL_HP300MKBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}hp300-mkboot 368TOOL_HP300MKBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}hp300-mkboot
373TOOL_HPPAMKBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}hppa-mkboot 369TOOL_HPPAMKBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}hppa-mkboot
374TOOL_INDXBIB= ${TOOLDIR}/bin/${_TOOL_PREFIX}indxbib 370TOOL_INDXBIB= ${TOOLDIR}/bin/${_TOOL_PREFIX}indxbib
375TOOL_INSTALLBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}installboot 371TOOL_INSTALLBOOT= ${TOOLDIR}/bin/${_TOOL_PREFIX}installboot
376TOOL_INSTALL_INFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}install-info 372TOOL_INSTALL_INFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}install-info
377TOOL_JOIN= ${TOOLDIR}/bin/${_TOOL_PREFIX}join 373TOOL_JOIN= ${TOOLDIR}/bin/${_TOOL_PREFIX}join
378TOOL_LLVM_TBLGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}llvm-tblgen 374TOOL_LLVM_TBLGEN= ${TOOLDIR}/bin/${_TOOL_PREFIX}llvm-tblgen
379TOOL_M4= ${TOOLDIR}/bin/${_TOOL_PREFIX}m4 375TOOL_M4= ${TOOLDIR}/bin/${_TOOL_PREFIX}m4
380TOOL_MACPPCFIXCOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}macppc-fixcoff 376TOOL_MACPPCFIXCOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}macppc-fixcoff
381TOOL_MAKEFS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makefs 377TOOL_MAKEFS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makefs
382TOOL_MAKEINFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}makeinfo 378TOOL_MAKEINFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}makeinfo
383TOOL_MAKEKEYS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makekeys 379TOOL_MAKEKEYS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makekeys
384TOOL_MAKESTRS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makestrs 380TOOL_MAKESTRS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makestrs
385TOOL_MAKEWHATIS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makewhatis 381TOOL_MAKEWHATIS= ${TOOLDIR}/bin/${_TOOL_PREFIX}makewhatis
386TOOL_MANDOC_ASCII= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Tascii 382TOOL_MANDOC_ASCII= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Tascii
387TOOL_MANDOC_HTML= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Thtml 383TOOL_MANDOC_HTML= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Thtml
388TOOL_MANDOC_LINT= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Tlint 384TOOL_MANDOC_LINT= ${TOOLDIR}/bin/${_TOOL_PREFIX}mandoc -Tlint
389TOOL_MDSETIMAGE= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-mdsetimage 385TOOL_MDSETIMAGE= ${TOOLDIR}/bin/${MACHINE_GNU_PLATFORM}-mdsetimage
390TOOL_MENUC= MENUDEF=${TOOLDIR}/share/misc ${TOOLDIR}/bin/${_TOOL_PREFIX}menuc 386TOOL_MENUC= MENUDEF=${TOOLDIR}/share/misc ${TOOLDIR}/bin/${_TOOL_PREFIX}menuc
391TOOL_M68KELF2AOUT= ${TOOLDIR}/bin/${_TOOL_PREFIX}m68k-elf2aout 387TOOL_M68KELF2AOUT= ${TOOLDIR}/bin/${_TOOL_PREFIX}m68k-elf2aout
392TOOL_MIPSELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff 388TOOL_MIPSELF2ECOFF= ${TOOLDIR}/bin/${_TOOL_PREFIX}mips-elf2ecoff
393TOOL_MKCSMAPPER= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkcsmapper 389TOOL_MKCSMAPPER= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkcsmapper
394TOOL_MKESDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkesdb 390TOOL_MKESDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkesdb
395TOOL_MKLOCALE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mklocale 391TOOL_MKLOCALE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mklocale
396TOOL_MKMAGIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}file 392TOOL_MKMAGIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}file
397TOOL_MKNOD= ${TOOLDIR}/bin/${_TOOL_PREFIX}mknod 393TOOL_MKNOD= ${TOOLDIR}/bin/${_TOOL_PREFIX}mknod
398TOOL_MKTEMP= ${TOOLDIR}/bin/${_TOOL_PREFIX}mktemp 394TOOL_MKTEMP= ${TOOLDIR}/bin/${_TOOL_PREFIX}mktemp
399TOOL_MKUBOOTIMAGE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkubootimage 395TOOL_MKUBOOTIMAGE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mkubootimage
400TOOL_ELFTOSB= ${TOOLDIR}/bin/${_TOOL_PREFIX}elftosb 396TOOL_ELFTOSB= ${TOOLDIR}/bin/${_TOOL_PREFIX}elftosb
401TOOL_MSGC= MSGDEF=${TOOLDIR}/share/misc ${TOOLDIR}/bin/${_TOOL_PREFIX}msgc 397TOOL_MSGC= MSGDEF=${TOOLDIR}/share/misc ${TOOLDIR}/bin/${_TOOL_PREFIX}msgc
402TOOL_MTREE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mtree 398TOOL_MTREE= ${TOOLDIR}/bin/${_TOOL_PREFIX}mtree
403TOOL_NBPERF= ${TOOLDIR}/bin/${_TOOL_PREFIX}perf 399TOOL_NBPERF= ${TOOLDIR}/bin/${_TOOL_PREFIX}perf
404TOOL_NCDCS= ${TOOLDIR}/bin/${_TOOL_PREFIX}ibmnws-ncdcs 400TOOL_NCDCS= ${TOOLDIR}/bin/${_TOOL_PREFIX}ibmnws-ncdcs
405TOOL_PAX= ${TOOLDIR}/bin/${_TOOL_PREFIX}pax 401TOOL_PAX= ${TOOLDIR}/bin/${_TOOL_PREFIX}pax
406TOOL_PIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}pic 402TOOL_PIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}pic
407TOOL_PIGZ= ${TOOLDIR}/bin/${_TOOL_PREFIX}pigz 403TOOL_PIGZ= ${TOOLDIR}/bin/${_TOOL_PREFIX}pigz
408TOOL_PKG_CREATE= ${TOOLDIR}/bin/${_TOOL_PREFIX}pkg_create 404TOOL_PKG_CREATE= ${TOOLDIR}/bin/${_TOOL_PREFIX}pkg_create
409TOOL_POWERPCMKBOOTIMAGE=${TOOLDIR}/bin/${_TOOL_PREFIX}powerpc-mkbootimage 405TOOL_POWERPCMKBOOTIMAGE=${TOOLDIR}/bin/${_TOOL_PREFIX}powerpc-mkbootimage
410TOOL_PWD_MKDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}pwd_mkdb 406TOOL_PWD_MKDB= ${TOOLDIR}/bin/${_TOOL_PREFIX}pwd_mkdb
411TOOL_REFER= ${TOOLDIR}/bin/${_TOOL_PREFIX}refer 407TOOL_REFER= ${TOOLDIR}/bin/${_TOOL_PREFIX}refer
412TOOL_ROFF_ASCII= PATH=${TOOLDIR}/lib/groff:$${PATH} ${TOOLDIR}/bin/${_TOOL_PREFIX}nroff 408TOOL_ROFF_ASCII= PATH=${TOOLDIR}/lib/groff:$${PATH} ${TOOLDIR}/bin/${_TOOL_PREFIX}nroff
413TOOL_ROFF_DOCASCII= ${TOOL_GROFF} -Tascii 409TOOL_ROFF_DOCASCII= ${TOOL_GROFF} -Tascii
414TOOL_ROFF_DOCHTML= ${TOOL_GROFF} -Thtml 410TOOL_ROFF_DOCHTML= ${TOOL_GROFF} -Thtml
415TOOL_ROFF_DVI= ${TOOL_GROFF} -Tdvi 411TOOL_ROFF_DVI= ${TOOL_GROFF} -Tdvi
416TOOL_ROFF_HTML= ${TOOL_GROFF} -Tlatin1 -mdoc2html 412TOOL_ROFF_HTML= ${TOOL_GROFF} -Tlatin1 -mdoc2html
417TOOL_ROFF_PS= ${TOOL_GROFF} -Tps 413TOOL_ROFF_PS= ${TOOL_GROFF} -Tps
418TOOL_ROFF_RAW= ${TOOL_GROFF} -Z 414TOOL_ROFF_RAW= ${TOOL_GROFF} -Z
419TOOL_RPCGEN= RPCGEN_CPP=${CPP:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}rpcgen 415TOOL_RPCGEN= RPCGEN_CPP=${CPP:Q} ${TOOLDIR}/bin/${_TOOL_PREFIX}rpcgen
420TOOL_SED= ${TOOLDIR}/bin/${_TOOL_PREFIX}sed 416TOOL_SED= ${TOOLDIR}/bin/${_TOOL_PREFIX}sed
421TOOL_SLC= ${TOOLDIR}/bin/${_TOOL_PREFIX}slc 417TOOL_SLC= ${TOOLDIR}/bin/${_TOOL_PREFIX}slc
422TOOL_SOELIM= ${TOOLDIR}/bin/${_TOOL_PREFIX}soelim 418TOOL_SOELIM= ${TOOLDIR}/bin/${_TOOL_PREFIX}soelim
423TOOL_SORTINFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}sortinfo 419TOOL_SORTINFO= ${TOOLDIR}/bin/${_TOOL_PREFIX}sortinfo
424TOOL_SPARKCRC= ${TOOLDIR}/bin/${_TOOL_PREFIX}sparkcrc 420TOOL_SPARKCRC= ${TOOLDIR}/bin/${_TOOL_PREFIX}sparkcrc
425TOOL_STAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}stat 421TOOL_STAT= ${TOOLDIR}/bin/${_TOOL_PREFIX}stat
426TOOL_STRFILE= ${TOOLDIR}/bin/${_TOOL_PREFIX}strfile 422TOOL_STRFILE= ${TOOLDIR}/bin/${_TOOL_PREFIX}strfile
427TOOL_SUNLABEL= ${TOOLDIR}/bin/${_TOOL_PREFIX}sunlabel 423TOOL_SUNLABEL= ${TOOLDIR}/bin/${_TOOL_PREFIX}sunlabel
428TOOL_TBL= ${TOOLDIR}/bin/${_TOOL_PREFIX}tbl 424TOOL_TBL= ${TOOLDIR}/bin/${_TOOL_PREFIX}tbl
429TOOL_TIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}tic 425TOOL_TIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}tic
430TOOL_UUDECODE= ${TOOLDIR}/bin/${_TOOL_PREFIX}uudecode 426TOOL_UUDECODE= ${TOOLDIR}/bin/${_TOOL_PREFIX}uudecode
431TOOL_VGRIND= ${TOOLDIR}/bin/${_TOOL_PREFIX}vgrind -f 427TOOL_VGRIND= ${TOOLDIR}/bin/${_TOOL_PREFIX}vgrind -f
432TOOL_VFONTEDPR= ${TOOLDIR}/libexec/${_TOOL_PREFIX}vfontedpr 428TOOL_VFONTEDPR= ${TOOLDIR}/libexec/${_TOOL_PREFIX}vfontedpr
433TOOL_ZIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}zic 429TOOL_ZIC= ${TOOLDIR}/bin/${_TOOL_PREFIX}zic
434 430
435.else # USETOOLS != yes # } { 431.else # USETOOLS != yes # } {
436 432
437# Clang supports C, C++ and Objective C 433# Clang supports C, C++ and Objective C
438TOOL_CC.clang= clang 434TOOL_CC.clang= clang
439TOOL_CPP.clang= clang-cpp 435TOOL_CPP.clang= clang-cpp
440TOOL_CXX.clang= clang++ 436TOOL_CXX.clang= clang++
441TOOL_OBJC.clang= clang 437TOOL_OBJC.clang= clang
442 438
443# GCC supports C, C++, Fortran and Objective C 439# GCC supports C, C++, Fortran and Objective C
444TOOL_CC.gcc= gcc 440TOOL_CC.gcc= gcc
445TOOL_CPP.gcc= cpp 441TOOL_CPP.gcc= cpp
446TOOL_CXX.gcc= c++ 442TOOL_CXX.gcc= c++
447TOOL_FC.gcc= g77 443TOOL_FC.gcc= g77
448TOOL_OBJC.gcc= gcc 444TOOL_OBJC.gcc= gcc
449 445
450# PCC supports C and Fortran 446# PCC supports C and Fortran
451TOOL_CC.pcc= pcc 447TOOL_CC.pcc= pcc
452TOOL_CPP.pcc= pcpp 448TOOL_CPP.pcc= pcpp
453TOOL_CXX.pcc= p++ 449TOOL_CXX.pcc= p++
454 450
455TOOL_AMIGAAOUT2BB= amiga-aout2bb 451TOOL_AMIGAAOUT2BB= amiga-aout2bb
456TOOL_AMIGAELF2BB= amiga-elf2bb 452TOOL_AMIGAELF2BB= amiga-elf2bb
457TOOL_AMIGATXLT= amiga-txlt 453TOOL_AMIGATXLT= amiga-txlt
458TOOL_ASN1_COMPILE= asn1_compile 454TOOL_ASN1_COMPILE= asn1_compile
459TOOL_AWK= awk 455TOOL_AWK= awk
460TOOL_CAP_MKDB= cap_mkdb 456TOOL_CAP_MKDB= cap_mkdb
461TOOL_CAT= cat 457TOOL_CAT= cat
462TOOL_CKSUM= cksum 458TOOL_CKSUM= cksum
463TOOL_CLANG_TBLGEN= clang-tblgen 459TOOL_CLANG_TBLGEN= clang-tblgen
464TOOL_COMPILE_ET= compile_et 460TOOL_COMPILE_ET= compile_et
465TOOL_CONFIG= config 461TOOL_CONFIG= config
466TOOL_CRUNCHGEN= crunchgen 462TOOL_CRUNCHGEN= crunchgen
467TOOL_CTAGS= ctags 463TOOL_CTAGS= ctags
468TOOL_CTFCONVERT= ctfconvert 464TOOL_CTFCONVERT= ctfconvert
469TOOL_CTFMERGE= ctfmerge 465TOOL_CTFMERGE= ctfmerge
470TOOL_CVSLATEST= cvslatest 466TOOL_CVSLATEST= cvslatest
471TOOL_DB= db 467TOOL_DB= db
472TOOL_DISKLABEL= disklabel 468TOOL_DISKLABEL= disklabel
473TOOL_EQN= eqn 469TOOL_EQN= eqn
474TOOL_FDISK= fdisk 470TOOL_FDISK= fdisk
475TOOL_FGEN= fgen 471TOOL_FGEN= fgen
476TOOL_GENASSYM= genassym 472TOOL_GENASSYM= genassym
477TOOL_GENCAT= gencat 473TOOL_GENCAT= gencat
478TOOL_GMAKE= gmake 474TOOL_GMAKE= gmake
479TOOL_GPT= gpt 475TOOL_GPT= gpt
480TOOL_GREP= grep 476TOOL_GREP= grep
481TOOL_GROFF= groff 477TOOL_GROFF= groff
482TOOL_HEXDUMP= hexdump 478TOOL_HEXDUMP= hexdump
483TOOL_HP300MKBOOT= hp300-mkboot 479TOOL_HP300MKBOOT= hp300-mkboot
484TOOL_HPPAMKBOOT= hppa-mkboot 480TOOL_HPPAMKBOOT= hppa-mkboot
485TOOL_INDXBIB= indxbib 481TOOL_INDXBIB= indxbib
486TOOL_INSTALLBOOT= installboot 482TOOL_INSTALLBOOT= installboot
487TOOL_INSTALL_INFO= install-info 483TOOL_INSTALL_INFO= install-info
488TOOL_JOIN= join 484TOOL_JOIN= join
489TOOL_LLVM_TBLGEN= llvm-tblgen 485TOOL_LLVM_TBLGEN= llvm-tblgen
490TOOL_M4= m4 486TOOL_M4= m4
491TOOL_MACPPCFIXCOFF= macppc-fixcoff 487TOOL_MACPPCFIXCOFF= macppc-fixcoff
492TOOL_MAKEFS= makefs 488TOOL_MAKEFS= makefs
493TOOL_MAKEINFO= makeinfo 489TOOL_MAKEINFO= makeinfo
494TOOL_MAKEKEYS= makekeys 490TOOL_MAKEKEYS= makekeys
495TOOL_MAKESTRS= makestrs 491TOOL_MAKESTRS= makestrs
496TOOL_MAKEWHATIS= /usr/libexec/makewhatis 492TOOL_MAKEWHATIS= /usr/libexec/makewhatis
497TOOL_MANDOC_ASCII= mandoc -Tascii 493TOOL_MANDOC_ASCII= mandoc -Tascii
498TOOL_MANDOC_HTML= mandoc -Thtml 494TOOL_MANDOC_HTML= mandoc -Thtml
499TOOL_MANDOC_LINT= mandoc -Tlint 495TOOL_MANDOC_LINT= mandoc -Tlint
500TOOL_MDSETIMAGE= mdsetimage 496TOOL_MDSETIMAGE= mdsetimage
501TOOL_MENUC= menuc 497TOOL_MENUC= menuc
502TOOL_M68KELF2AOUT= m68k-elf2aout 498TOOL_M68KELF2AOUT= m68k-elf2aout
503TOOL_MIPSELF2ECOFF= mips-elf2ecoff 499TOOL_MIPSELF2ECOFF= mips-elf2ecoff
504TOOL_MKCSMAPPER= mkcsmapper 500TOOL_MKCSMAPPER= mkcsmapper
505TOOL_MKESDB= mkesdb 501TOOL_MKESDB= mkesdb
506TOOL_MKLOCALE= mklocale 502TOOL_MKLOCALE= mklocale
507TOOL_MKMAGIC= file 503TOOL_MKMAGIC= file
508TOOL_MKNOD= mknod 504TOOL_MKNOD= mknod
509TOOL_MKTEMP= mktemp 505TOOL_MKTEMP= mktemp
510TOOL_MKUBOOTIMAGE= mkubootimage 506TOOL_MKUBOOTIMAGE= mkubootimage
511TOOL_ELFTOSB= elftosb 507TOOL_ELFTOSB= elftosb
512TOOL_MSGC= msgc 508TOOL_MSGC= msgc
513TOOL_MTREE= mtree 509TOOL_MTREE= mtree
514TOOL_NBPERF= nbperf 510TOOL_NBPERF= nbperf
515TOOL_NCDCS= ncdcs 511TOOL_NCDCS= ncdcs
516TOOL_PAX= pax 512TOOL_PAX= pax
517TOOL_PIC= pic 513TOOL_PIC= pic
518TOOL_PIGZ= pigz 514TOOL_PIGZ= pigz
519TOOL_PKG_CREATE= pkg_create 515TOOL_PKG_CREATE= pkg_create
520TOOL_POWERPCMKBOOTIMAGE= powerpc-mkbootimage 516TOOL_POWERPCMKBOOTIMAGE= powerpc-mkbootimage
521TOOL_PWD_MKDB= pwd_mkdb 517TOOL_PWD_MKDB= pwd_mkdb
522TOOL_REFER= refer 518TOOL_REFER= refer
523TOOL_ROFF_ASCII= nroff 519TOOL_ROFF_ASCII= nroff
524TOOL_ROFF_DOCASCII= ${TOOL_GROFF} -Tascii 520TOOL_ROFF_DOCASCII= ${TOOL_GROFF} -Tascii
525TOOL_ROFF_DOCHTML= ${TOOL_GROFF} -Thtml 521TOOL_ROFF_DOCHTML= ${TOOL_GROFF} -Thtml
526TOOL_ROFF_DVI= ${TOOL_GROFF} -Tdvi 522TOOL_ROFF_DVI= ${TOOL_GROFF} -Tdvi
527TOOL_ROFF_HTML= ${TOOL_GROFF} -Tlatin1 -mdoc2html 523TOOL_ROFF_HTML= ${TOOL_GROFF} -Tlatin1 -mdoc2html
528TOOL_ROFF_PS= ${TOOL_GROFF} -Tps 524TOOL_ROFF_PS= ${TOOL_GROFF} -Tps
529TOOL_ROFF_RAW= ${TOOL_GROFF} -Z 525TOOL_ROFF_RAW= ${TOOL_GROFF} -Z
530TOOL_RPCGEN= rpcgen 526TOOL_RPCGEN= rpcgen
531TOOL_SED= sed 527TOOL_SED= sed
532TOOL_SOELIM= soelim 528TOOL_SOELIM= soelim
533TOOL_SORTINFO= sortinfo 529TOOL_SORTINFO= sortinfo
534TOOL_SPARKCRC= sparkcrc 530TOOL_SPARKCRC= sparkcrc
535TOOL_STAT= stat 531TOOL_STAT= stat
536TOOL_STRFILE= strfile 532TOOL_STRFILE= strfile
537TOOL_SUNLABEL= sunlabel 533TOOL_SUNLABEL= sunlabel
538TOOL_TBL= tbl 534TOOL_TBL= tbl
539TOOL_TIC= tic 535TOOL_TIC= tic
540TOOL_UUDECODE= uudecode 536TOOL_UUDECODE= uudecode
541TOOL_VGRIND= vgrind -f 537TOOL_VGRIND= vgrind -f
542TOOL_VFONTEDPR= /usr/libexec/vfontedpr 538TOOL_VFONTEDPR= /usr/libexec/vfontedpr
543TOOL_ZIC= zic 539TOOL_ZIC= zic
544 540
545.endif # USETOOLS != yes # } 541.endif # USETOOLS != yes # }
546 542
547# Standalone code should not be compiled with PIE or CTF 543# Standalone code should not be compiled with PIE or CTF
548# Should create a better test 544# Should create a better test
549.if defined(BINDIR) && ${BINDIR} == "/usr/mdec" 545.if defined(BINDIR) && ${BINDIR} == "/usr/mdec"
550NOPIE= # defined 546NOPIE= # defined
551NOCTF= # defined 547NOCTF= # defined
552.elif ${MACHINE} == "sun2" 548.elif ${MACHINE} == "sun2"
553NOPIE= # we don't have PIC, so no PIE 549NOPIE= # we don't have PIC, so no PIE
554.endif 550.endif
555 551
556# Fallback to ensure that all variables are defined to something 552# Fallback to ensure that all variables are defined to something
557TOOL_CC.false= false 553TOOL_CC.false= false
558TOOL_CPP.false= false 554TOOL_CPP.false= false
559TOOL_CXX.false= false 555TOOL_CXX.false= false
560TOOL_FC.false= false 556TOOL_FC.false= false
561TOOL_OBJC.false= false 557TOOL_OBJC.false= false
562 558
563AVAILABLE_COMPILER?= ${HAVE_PCC:Dpcc} ${HAVE_LLVM:Dclang} ${HAVE_GCC:Dgcc} ${EXTERNAL_TOOLCHAIN:Dgcc} false 559AVAILABLE_COMPILER?= ${HAVE_PCC:Dpcc} ${HAVE_LLVM:Dclang} ${HAVE_GCC:Dgcc} ${EXTERNAL_TOOLCHAIN:Dgcc} false
564 560
565.for _t in CC CPP CXX FC OBJC 561.for _t in CC CPP CXX FC OBJC
566ACTIVE_${_t}= ${AVAILABLE_COMPILER:@.c.@ ${ !defined(UNSUPPORTED_COMPILER.${.c.}) && defined(TOOL_${_t}.${.c.}) :? ${.c.} : }@:[1]} 562ACTIVE_${_t}= ${AVAILABLE_COMPILER:@.c.@ ${ !defined(UNSUPPORTED_COMPILER.${.c.}) && defined(TOOL_${_t}.${.c.}) :? ${.c.} : }@:[1]}
567SUPPORTED_${_t}=${AVAILABLE_COMPILER:Nfalse:@.c.@ ${ !defined(UNSUPPORTED_COMPILER.${.c.}) && defined(TOOL_${_t}.${.c.}) :? ${.c.} : }@} 563SUPPORTED_${_t}=${AVAILABLE_COMPILER:Nfalse:@.c.@ ${ !defined(UNSUPPORTED_COMPILER.${.c.}) && defined(TOOL_${_t}.${.c.}) :? ${.c.} : }@}
568.endfor 564.endfor
569# make bugs prevent moving this into the .for loop 565# make bugs prevent moving this into the .for loop
570CC= ${TOOL_CC.${ACTIVE_CC}} 566CC= ${TOOL_CC.${ACTIVE_CC}}
571CPP= ${TOOL_CPP.${ACTIVE_CPP}} 567CPP= ${TOOL_CPP.${ACTIVE_CPP}}
572CXX= ${TOOL_CXX.${ACTIVE_CXX}} 568CXX= ${TOOL_CXX.${ACTIVE_CXX}}
573FC= ${TOOL_FC.${ACTIVE_FC}} 569FC= ${TOOL_FC.${ACTIVE_FC}}
574OBJC= ${TOOL_OBJC.${ACTIVE_OBJC}} 570OBJC= ${TOOL_OBJC.${ACTIVE_OBJC}}
575 571
576# For each ${MACHINE_CPU}, list the ports that use it. 572# For each ${MACHINE_CPU}, list the ports that use it.
577MACHINES.aarch64= evbarm64 573MACHINES.aarch64= evbarm64
578MACHINES.alpha= alpha 574MACHINES.alpha= alpha
579MACHINES.arm= acorn26 acorn32 cats epoc32 evbarm hpcarm \ 575MACHINES.arm= acorn26 acorn32 cats epoc32 evbarm hpcarm \
580 iyonix netwinder shark zaurus 576 iyonix netwinder shark zaurus
581MACHINES.coldfire= evbcf 577MACHINES.coldfire= evbcf
582MACHINES.i386= i386 578MACHINES.i386= i386
583MACHINES.ia64= ia64 579MACHINES.ia64= ia64
584MACHINES.hppa= hppa 580MACHINES.hppa= hppa
585MACHINES.m68000= sun2 581MACHINES.m68000= sun2
586MACHINES.m68k= amiga atari cesfic hp300 luna68k mac68k \ 582MACHINES.m68k= amiga atari cesfic hp300 luna68k mac68k \
587 news68k next68k sun3 x68k 583 news68k next68k sun3 x68k
588MACHINES.mips= arc cobalt algor cobalt emips evbmips ews4800mips \ 584MACHINES.mips= arc cobalt algor cobalt emips evbmips ews4800mips \
589 hpcmips mipsco newsmips pmax sbmips sgimips 585 hpcmips mipsco newsmips pmax sbmips sgimips
590MACHINES.or1k= or1k 586MACHINES.or1k= or1k
591MACHINES.powerpc= amigappc bebox evbppc ibmnws macppc mvmeppc \ 587MACHINES.powerpc= amigappc bebox evbppc ibmnws macppc mvmeppc \
592 ofppc prep rs6000 sandpoint 588 ofppc prep rs6000 sandpoint
593MACHINES.riscv= riscv 589MACHINES.riscv= riscv
594MACHINES.sh3= dreamcast evbsh3 hpcsh landisk mmeye 590MACHINES.sh3= dreamcast evbsh3 hpcsh landisk mmeye
595MACHINES.sparc= sparc sparc64 591MACHINES.sparc= sparc sparc64
596MACHINES.sparc64= sparc64 592MACHINES.sparc64= sparc64
597MACHINES.vax= vax 593MACHINES.vax= vax
598MACHINES.x86_64= amd64 594MACHINES.x86_64= amd64
599 595
600# for crunchide & ldd, define the OBJECT_FMTS used by a MACHINE_ARCH 596# for crunchide & ldd, define the OBJECT_FMTS used by a MACHINE_ARCH
601# 597#
602OBJECT_FMTS= 598OBJECT_FMTS=
603.if ${MACHINE_ARCH} != "alpha" && ${MACHINE_ARCH} != "ia64" 599.if ${MACHINE_ARCH} != "alpha" && ${MACHINE_ARCH} != "ia64"
604OBJECT_FMTS+= elf32 600OBJECT_FMTS+= elf32
605.endif 601.endif
606.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH:M*64*} != "" 602.if ${MACHINE_ARCH} == "alpha" || ${MACHINE_ARCH:M*64*} != ""
607OBJECT_FMTS+= elf64 603OBJECT_FMTS+= elf64
608.endif 604.endif
609 605
610# OBJCOPY flags to create a.out binaries for old firmware 606# OBJCOPY flags to create a.out binaries for old firmware
611# shared among src/distrib and ${MACHINE}/conf/Makefile.${MACHINE}.inc 607# shared among src/distrib and ${MACHINE}/conf/Makefile.${MACHINE}.inc
612.if ${MACHINE_CPU} == "arm" 608.if ${MACHINE_CPU} == "arm"
613OBJCOPY_ELF2AOUT_FLAGS?= \ 609OBJCOPY_ELF2AOUT_FLAGS?= \
614 -O a.out-arm-netbsd \ 610 -O a.out-arm-netbsd \
615 -R .ident \ 611 -R .ident \
616 -R .ARM.attributes \ 612 -R .ARM.attributes \
617 -R .ARM.exidx \ 613 -R .ARM.exidx \
618 -R .ARM.extab \ 614 -R .ARM.extab \
619 -R .SUNW_ctf \ 615 -R .SUNW_ctf \
620 -R .arm.atpcs \ 616 -R .arm.atpcs \
621 -R .comment \ 617 -R .comment \
622 -R .debug_abbrev \ 618 -R .debug_abbrev \
623 -R .debug_aranges \ 619 -R .debug_aranges \
624 -R .debug_info \ 620 -R .debug_info \
625 -R .debug_line \ 621 -R .debug_line \
626 -R .debug_frame \ 622 -R .debug_frame \
627 -R .debug_loc \ 623 -R .debug_loc \
628 -R .debug_pubnames \ 624 -R .debug_pubnames \
629 -R .debug_pubtypes \ 625 -R .debug_pubtypes \
630 -R .debug_ranges \ 626 -R .debug_ranges \
631 -R .debug_str \ 627 -R .debug_str \
632 -R .debug_macinfo \ 628 -R .debug_macinfo \
633 -R .eh_frame \ 629 -R .eh_frame \
634 -R .note.netbsd.ident 630 -R .note.netbsd.ident
635.endif 631.endif
636 632
637# 633#
638# Targets to check if DESTDIR or RELEASEDIR is provided 634# Targets to check if DESTDIR or RELEASEDIR is provided
639# 635#
640.if !target(check_DESTDIR) 636.if !target(check_DESTDIR)
641check_DESTDIR: .PHONY .NOTMAIN 637check_DESTDIR: .PHONY .NOTMAIN
642.if !defined(DESTDIR) 638.if !defined(DESTDIR)
643 @echo "setenv DESTDIR before doing that!" 639 @echo "setenv DESTDIR before doing that!"
644 @false 640 @false
645.else 641.else
646 @true 642 @true
647.endif 643.endif
648.endif 644.endif
649 645
650.if !target(check_RELEASEDIR) 646.if !target(check_RELEASEDIR)
651check_RELEASEDIR: .PHONY .NOTMAIN 647check_RELEASEDIR: .PHONY .NOTMAIN
652.if !defined(RELEASEDIR) 648.if !defined(RELEASEDIR)
653 @echo "setenv RELEASEDIR before doing that!" 649 @echo "setenv RELEASEDIR before doing that!"
654 @false 650 @false
655.else 651.else
656 @true 652 @true
657.endif 653.endif
658.endif 654.endif
659 655
660# 656#
661# Where the system object and source trees are kept; can be configurable 657# Where the system object and source trees are kept; can be configurable
662# by the user in case they want them in ~/foosrc and ~/fooobj (for example). 658# by the user in case they want them in ~/foosrc and ~/fooobj (for example).
663# 659#
664BSDSRCDIR?= /usr/src 660BSDSRCDIR?= /usr/src
665BSDOBJDIR?= /usr/obj 661BSDOBJDIR?= /usr/obj
666NETBSDSRCDIR?= ${BSDSRCDIR} 662NETBSDSRCDIR?= ${BSDSRCDIR}
667 663
668BINGRP?= wheel 664BINGRP?= wheel
669BINOWN?= root 665BINOWN?= root
670BINMODE?= 555 666BINMODE?= 555
671NONBINMODE?= 444 667NONBINMODE?= 444
672 668
673# These are here mainly because we don't want suid root in case 669# These are here mainly because we don't want suid root in case
674# a Makefile defines BINMODE. 670# a Makefile defines BINMODE.
675RUMPBINGRP?= wheel 671RUMPBINGRP?= wheel
676RUMPBINOWN?= root 672RUMPBINOWN?= root
677RUMPBINMODE?= 555 673RUMPBINMODE?= 555
678RUMPNONBINMODE?=444 674RUMPNONBINMODE?=444
679 675
680MANDIR?= /usr/share/man 676MANDIR?= /usr/share/man
681MANGRP?= wheel 677MANGRP?= wheel
682MANOWN?= root 678MANOWN?= root
683MANMODE?= ${NONBINMODE} 679MANMODE?= ${NONBINMODE}
684MANINSTALL?= ${_MANINSTALL} 680MANINSTALL?= ${_MANINSTALL}
685 681
686INFODIR?= /usr/share/info 682INFODIR?= /usr/share/info
687INFOGRP?= wheel 683INFOGRP?= wheel
688INFOOWN?= root 684INFOOWN?= root
689INFOMODE?= ${NONBINMODE} 685INFOMODE?= ${NONBINMODE}
690 686
691LIBDIR?= /usr/lib 687LIBDIR?= /usr/lib
692 688
693LINTLIBDIR?= /usr/libdata/lint 689LINTLIBDIR?= /usr/libdata/lint
694LIBGRP?= ${BINGRP} 690LIBGRP?= ${BINGRP}
695LIBOWN?= ${BINOWN} 691LIBOWN?= ${BINOWN}
696LIBMODE?= ${NONBINMODE} 692LIBMODE?= ${NONBINMODE}
697 693
698DOCDIR?= /usr/share/doc 694DOCDIR?= /usr/share/doc
699DOCGRP?= wheel 695DOCGRP?= wheel
700DOCOWN?= root 696DOCOWN?= root
701DOCMODE?= ${NONBINMODE} 697DOCMODE?= ${NONBINMODE}
702 698
703NLSDIR?= /usr/share/nls 699NLSDIR?= /usr/share/nls
704NLSGRP?= wheel 700NLSGRP?= wheel
705NLSOWN?= root 701NLSOWN?= root
706NLSMODE?= ${NONBINMODE} 702NLSMODE?= ${NONBINMODE}
707 703
708KMODULEGRP?= wheel 704KMODULEGRP?= wheel
709KMODULEOWN?= root 705KMODULEOWN?= root
710KMODULEMODE?= ${NONBINMODE} 706KMODULEMODE?= ${NONBINMODE}
711 707
712LOCALEDIR?= /usr/share/locale 708LOCALEDIR?= /usr/share/locale
713LOCALEGRP?= wheel 709LOCALEGRP?= wheel
714LOCALEOWN?= root 710LOCALEOWN?= root
715LOCALEMODE?= ${NONBINMODE} 711LOCALEMODE?= ${NONBINMODE}
716 712
717FIRMWAREDIR?= /libdata/firmware 713FIRMWAREDIR?= /libdata/firmware
718FIRMWAREGRP?= wheel 714FIRMWAREGRP?= wheel
719FIRMWAREOWN?= root 715FIRMWAREOWN?= root
720FIRMWAREMODE?= ${NONBINMODE} 716FIRMWAREMODE?= ${NONBINMODE}
721 717
722DEBUGDIR?= /usr/libdata/debug 718DEBUGDIR?= /usr/libdata/debug
723DEBUGGRP?= wheel 719DEBUGGRP?= wheel
724DEBUGOWN?= root 720DEBUGOWN?= root
725DEBUGMODE?= ${NONBINMODE} 721DEBUGMODE?= ${NONBINMODE}
726 722
727MKDIRMODE?= 0755 723MKDIRMODE?= 0755
728MKDIRPERM?= -m ${MKDIRMODE} 724MKDIRPERM?= -m ${MKDIRMODE}
729 725
730# 726#
731# Data-driven table using make variables to control how 727# Data-driven table using make variables to control how
732# toolchain-dependent targets and shared libraries are built 728# toolchain-dependent targets and shared libraries are built
733# for different platforms and object formats. 729# for different platforms and object formats.
734# 730#
735# OBJECT_FMT: currently either "ELF" or "a.out". 731# OBJECT_FMT: currently either "ELF" or "a.out".
736# 732#
737# All platforms are ELF. 733# All platforms are ELF.
738# 734#
739OBJECT_FMT= ELF 735OBJECT_FMT= ELF
740 736
741# 737#
742# If this platform's toolchain is missing, we obviously cannot build it. 738# If this platform's toolchain is missing, we obviously cannot build it.
743# 739#
744.if ${TOOLCHAIN_MISSING} != "no" 740.if ${TOOLCHAIN_MISSING} != "no"
745MKBINUTILS:= no 741MKBINUTILS:= no
746MKGDB:= no 742MKGDB:= no
747MKGCC:= no 743MKGCC:= no
748.endif 744.endif
749 745
750# 746#
751# If we are using an external toolchain, we can still build the target's 747# If we are using an external toolchain, we can still build the target's
752# binutils, but we cannot build GCC's support libraries, since those are 748# binutils, but we cannot build GCC's support libraries, since those are
753# tightly-coupled to the version of GCC being used. 749# tightly-coupled to the version of GCC being used.
754# 750#
755.if defined(EXTERNAL_TOOLCHAIN) 751.if defined(EXTERNAL_TOOLCHAIN)
756MKGCC:= no 752MKGCC:= no
757.endif 753.endif
758 754
759# No GDB support for aarch64 755# No GDB support for aarch64
760MKGDB.aarch64= no 756MKGDB.aarch64= no
761MKGDB.aarch64eb=no 757MKGDB.aarch64eb=no
762MKGDB.or1k= no 758MKGDB.or1k= no
763MKGDB.riscv32= no 759MKGDB.riscv32= no
764MKGDB.riscv64= no 760MKGDB.riscv64= no
765 761
766# No kernel modules for or1k (yet) 762# No kernel modules for or1k (yet)
767MKKMOD.or1k= no 763MKKMOD.or1k= no
768MKKMOD.riscv32= no 764MKKMOD.riscv32= no
769MKKMOD.riscv64= no 765MKKMOD.riscv64= no
770 766
771# No profiling for or1k (yet) 767# No profiling for or1k (yet)
772MKPROFILE.or1k= no 768MKPROFILE.or1k= no
773MKPROFILE.riscv32=no 769MKPROFILE.riscv32=no
774MKPROFILE.riscv64=no 770MKPROFILE.riscv64=no
775 771
776# 772#
777# The m68000 port is incomplete. 773# The m68000 port is incomplete.
778# 774#
779.if ${MACHINE_ARCH} == "m68000" 775.if ${MACHINE_ARCH} == "m68000"
780NOPIC= # defined 776NOPIC= # defined
781MKISCSI= no 777MKISCSI= no
782# XXX GCC 4 outputs mcount() calling sequences that try to load values 778# XXX GCC 4 outputs mcount() calling sequences that try to load values
783# from over 64KB away and this fails to assemble. 779# from over 64KB away and this fails to assemble.
784.if defined(HAVE_GCC) 780.if defined(HAVE_GCC)
785NOPROFILE= # defined 781NOPROFILE= # defined
786.endif 782.endif
787.endif 783.endif
788 784
789# 785#
790# The ia64 port is incomplete. 786# The ia64 port is incomplete.
791# 787#
792MKLINT.ia64= no 788MKLINT.ia64= no
793MKGDB.ia64= no 789MKGDB.ia64= no
794 790
795# 791#
796# On VAX using ELF, all objects are PIC, not just shared libraries, 792# On VAX using ELF, all objects are PIC, not just shared libraries,
797# so don't build the _pic version. VAX has no native TLS support either, 793# so don't build the _pic version. VAX has no native TLS support either,
798# so differences between TLS models are not relevant. 794# so differences between TLS models are not relevant.
799# 795#
800MKPICLIB.vax= no 796MKPICLIB.vax= no
801 797
802# 798#
803# Location of the file that contains the major and minor numbers of the 799# Location of the file that contains the major and minor numbers of the
804# version of a shared library. If this file exists a shared library 800# version of a shared library. If this file exists a shared library
805# will be built by <bsd.lib.mk>. 801# will be built by <bsd.lib.mk>.
806# 802#
807SHLIB_VERSION_FILE?= ${.CURDIR}/shlib_version 803SHLIB_VERSION_FILE?= ${.CURDIR}/shlib_version
808 804
809# 805#
810# GNU sources and packages sometimes see architecture names differently. 806# GNU sources and packages sometimes see architecture names differently.
811# 807#
812GNU_ARCH.aarch64eb=aarch64_be 808GNU_ARCH.aarch64eb=aarch64_be
813GNU_ARCH.coldfire=m5407 809GNU_ARCH.coldfire=m5407
814GNU_ARCH.earm=arm 810GNU_ARCH.earm=arm
815GNU_ARCH.earmhf=arm 811GNU_ARCH.earmhf=arm
816GNU_ARCH.earmeb=armeb 812GNU_ARCH.earmeb=armeb
817GNU_ARCH.earmhfeb=armeb 813GNU_ARCH.earmhfeb=armeb
818GNU_ARCH.earmv4=armv4 814GNU_ARCH.earmv4=armv4
819GNU_ARCH.earmv4eb=armv4eb 815GNU_ARCH.earmv4eb=armv4eb
820GNU_ARCH.earmv5=arm 816GNU_ARCH.earmv5=arm
821GNU_ARCH.earmv5eb=armeb 817GNU_ARCH.earmv5eb=armeb
822GNU_ARCH.earmv6=armv6 818GNU_ARCH.earmv6=armv6
823GNU_ARCH.earmv6hf=armv6 819GNU_ARCH.earmv6hf=armv6
824GNU_ARCH.earmv6eb=armv6eb 820GNU_ARCH.earmv6eb=armv6eb
825GNU_ARCH.earmv6hfeb=armv6eb 821GNU_ARCH.earmv6hfeb=armv6eb
826GNU_ARCH.earmv7=armv7 822GNU_ARCH.earmv7=armv7
827GNU_ARCH.earmv7hf=armv7 823GNU_ARCH.earmv7hf=armv7
828GNU_ARCH.earmv7eb=armv7eb 824GNU_ARCH.earmv7eb=armv7eb
829GNU_ARCH.earmv7hfeb=armv7eb 825GNU_ARCH.earmv7hfeb=armv7eb
830GNU_ARCH.i386=i486 826GNU_ARCH.i386=i486
831GCC_CONFIG_ARCH.i386=i486 827GCC_CONFIG_ARCH.i386=i486
832GCC_CONFIG_TUNE.i386=nocona 828GCC_CONFIG_TUNE.i386=nocona
833GCC_CONFIG_TUNE.x86_64=nocona 829GCC_CONFIG_TUNE.x86_64=nocona
834GNU_ARCH.m68000=m68010 830GNU_ARCH.m68000=m68010
835GNU_ARCH.sh3eb=sh 831GNU_ARCH.sh3eb=sh
836GNU_ARCH.sh3el=shle 832GNU_ARCH.sh3el=shle
837GNU_ARCH.mips64eb=mips64 833GNU_ARCH.mips64eb=mips64
838MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}:U${MACHINE_ARCH}} 834MACHINE_GNU_ARCH=${GNU_ARCH.${MACHINE_ARCH}:U${MACHINE_ARCH}}
839 835
840# 836#
841# In order to identify NetBSD to GNU packages, we sometimes need 837# In order to identify NetBSD to GNU packages, we sometimes need
842# an "elf" tag for historically a.out platforms. 838# an "elf" tag for historically a.out platforms.
843# 839#
844.if (!empty(MACHINE_ARCH:Mearm*)) 840.if (!empty(MACHINE_ARCH:Mearm*))
845MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsdelf-${MACHINE_ARCH:C/eb//:C/v[4-7]//:S/earm/eabi/} 841MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsdelf-${MACHINE_ARCH:C/eb//:C/v[4-7]//:S/earm/eabi/}
846.elif (${MACHINE_GNU_ARCH} == "arm" || \ 842.elif (${MACHINE_GNU_ARCH} == "arm" || \
847 ${MACHINE_GNU_ARCH} == "armeb" || \ 843 ${MACHINE_GNU_ARCH} == "armeb" || \
848 ${MACHINE_ARCH} == "i386" || \ 844 ${MACHINE_ARCH} == "i386" || \
849 ${MACHINE_CPU} == "m68k" || \ 845 ${MACHINE_CPU} == "m68k" || \
850 ${MACHINE_GNU_ARCH} == "sh" || \ 846 ${MACHINE_GNU_ARCH} == "sh" || \
851 ${MACHINE_GNU_ARCH} == "shle" || \ 847 ${MACHINE_GNU_ARCH} == "shle" || \
852 ${MACHINE_ARCH} == "sparc" || \ 848 ${MACHINE_ARCH} == "sparc" || \
853 ${MACHINE_ARCH} == "vax") 849 ${MACHINE_ARCH} == "vax")
854MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsdelf 850MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsdelf
855.else 851.else
856MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsd 852MACHINE_GNU_PLATFORM?=${MACHINE_GNU_ARCH}--netbsd
857.endif 853.endif
858 854
859.if !empty(MACHINE_ARCH:M*arm*) 855.if !empty(MACHINE_ARCH:M*arm*)
860# Flags to pass to CC for using the old APCS ABI on ARM for compat or stand. 856# Flags to pass to CC for using the old APCS ABI on ARM for compat or stand.
861ARM_APCS_FLAGS= -mabi=apcs-gnu -mfloat-abi=soft 857ARM_APCS_FLAGS= -mabi=apcs-gnu -mfloat-abi=soft
862ARM_APCS_FLAGS+=${${ACTIVE_CC} == "gcc":? -marm :} 858ARM_APCS_FLAGS+=${${ACTIVE_CC} == "gcc":? -marm :}
863ARM_APCS_FLAGS+=${${ACTIVE_CC} == "clang":? -target ${MACHINE_GNU_ARCH}--netbsdelf -B ${TOOLDIR}/${MACHINE_GNU_PLATFORM}/bin :} 859ARM_APCS_FLAGS+=${${ACTIVE_CC} == "clang":? -target ${MACHINE_GNU_ARCH}--netbsdelf -B ${TOOLDIR}/${MACHINE_GNU_PLATFORM}/bin :}
864.endif 860.endif
865 861
866GENASSYM_CPPFLAGS+= ${${ACTIVE_CC} == "clang":? -no-integrated-as :} 862GENASSYM_CPPFLAGS+= ${${ACTIVE_CC} == "clang":? -no-integrated-as :}
867 863
868TARGETS+= all clean cleandir depend dependall includes \ 864TARGETS+= all clean cleandir depend dependall includes \
869 install lint obj regress tags html analyze describe \ 865 install lint obj regress tags html analyze describe \
870 rumpdescribe 866 rumpdescribe
871PHONY_NOTMAIN = all clean cleandir depend dependall distclean includes \ 867PHONY_NOTMAIN = all clean cleandir depend dependall distclean includes \
872 install lint obj regress beforedepend afterdepend \ 868 install lint obj regress beforedepend afterdepend \
873 beforeinstall afterinstall realinstall realdepend realall \ 869 beforeinstall afterinstall realinstall realdepend realall \
874 html subdir-all subdir-install subdir-depend analyze describe \ 870 html subdir-all subdir-install subdir-depend analyze describe \
875 rumpdescribe 871 rumpdescribe
876.PHONY: ${PHONY_NOTMAIN} 872.PHONY: ${PHONY_NOTMAIN}
877.NOTMAIN: ${PHONY_NOTMAIN} 873.NOTMAIN: ${PHONY_NOTMAIN}
878 874
879.if ${NEED_OWN_INSTALL_TARGET} != "no" 875.if ${NEED_OWN_INSTALL_TARGET} != "no"
880.if !target(install) 876.if !target(install)
881install: beforeinstall .WAIT subdir-install realinstall .WAIT afterinstall 877install: beforeinstall .WAIT subdir-install realinstall .WAIT afterinstall
882beforeinstall: 878beforeinstall:
883subdir-install: 879subdir-install:
884realinstall: 880realinstall:
885afterinstall: 881afterinstall:
886.endif 882.endif
887all: realall subdir-all 883all: realall subdir-all
888subdir-all: 884subdir-all:
889realall: 885realall:
890depend: realdepend subdir-depend 886depend: realdepend subdir-depend
891subdir-depend: 887subdir-depend:
892realdepend: 888realdepend:
893distclean: cleandir 889distclean: cleandir
894cleandir: clean 890cleandir: clean
895 891
896dependall: .NOTMAIN realdepend .MAKE 892dependall: .NOTMAIN realdepend .MAKE
897 @cd "${.CURDIR}"; ${MAKE} realall 893 @cd "${.CURDIR}"; ${MAKE} realall
898.endif 894.endif
899 895
900# 896#
901# Define MKxxx variables (which are either yes or no) for users 897# Define MKxxx variables (which are either yes or no) for users
902# to set in /etc/mk.conf and override in the make environment. 898# to set in /etc/mk.conf and override in the make environment.
903# These should be tested with `== "no"' or `!= "no"'. 899# These should be tested with `== "no"' or `!= "no"'.
904# The NOxxx variables should only be set by Makefiles. 900# The NOxxx variables should only be set by Makefiles.
905# 901#
906# Please keep etc/Makefile and share/man/man5/mk.conf.5 in sync 902# Please keep etc/Makefile and share/man/man5/mk.conf.5 in sync
907# with changes to the MK* variables here. 903# with changes to the MK* variables here.
908# 904#
909 905
910# 906#
911# Supported NO* options (if defined, MK* will be forced to "no", 907# Supported NO* options (if defined, MK* will be forced to "no",
912# regardless of user's mk.conf setting). 908# regardless of user's mk.conf setting).
913# 909#
914# Source makefiles should set NO*, and not MK*, and must do so before 910# Source makefiles should set NO*, and not MK*, and must do so before
915# including bsd.own.mk. 911# including bsd.own.mk.
916# 912#
917.for var in \ 913.for var in \
918 NOCRYPTO NODOC NOHTML NOINFO NOLINKLIB NOLINT NOMAN NONLS NOOBJ NOPIC \ 914 NOCRYPTO NODOC NOHTML NOINFO NOLINKLIB NOLINT NOMAN NONLS NOOBJ NOPIC \
919 NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB NODEBUGLIB 915 NOPICINSTALL NOPROFILE NOSHARE NOSTATICLIB NODEBUGLIB
920.if defined(${var}) 916.if defined(${var})
921MK${var:S/^NO//}:= no 917MK${var:S/^NO//}:= no
922.endif 918.endif
923.endfor 919.endfor
924 920
925# 921#
926# Older-style variables that enabled behaviour when set. 922# Older-style variables that enabled behaviour when set.
927# 923#
928.for var in MANZ UNPRIVED UPDATE 924.for var in MANZ UNPRIVED UPDATE
929.if defined(${var}) 925.if defined(${var})
930MK${var}:= yes 926MK${var}:= yes
931.endif 927.endif
932.endfor 928.endfor
933 929
934# 930#
935# MK* options which have variable defaults. 931# MK* options which have variable defaults.
936# 932#
937# aarch64eb is not yet supported. 933# aarch64eb is not yet supported.
938# 934#
939.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64" \ 935.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "sparc64" \
940 || ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el" \ 936 || ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el" \
941 || ${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "aarch64" \ 937 || ${MACHINE_ARCH} == "powerpc64" || ${MACHINE_ARCH} == "aarch64" \
942 || ${MACHINE_ARCH} == "riscv64" || !empty(MACHINE_ARCH:Mearm*) 938 || ${MACHINE_ARCH} == "riscv64" || !empty(MACHINE_ARCH:Mearm*)
943MKCOMPAT?= yes 939MKCOMPAT?= yes
944.else 940.else
945# Don't let this build where it really isn't supported. 941# Don't let this build where it really isn't supported.
946MKCOMPAT:= no 942MKCOMPAT:= no
947.endif 943.endif
948 944
949.if ${MKCOMPAT} == "no" 945.if ${MKCOMPAT} == "no"
950MKCOMPATTESTS:= no 946MKCOMPATTESTS:= no
951MKCOMPATX11:= no 947MKCOMPATX11:= no
952.endif 948.endif
953 949
954.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386" \ 950.if ${MACHINE_ARCH} == "x86_64" || ${MACHINE_ARCH} == "i386" \
955 || ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el" \ 951 || ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el" \
956 || (${MACHINE} == "evbppc" && ${MACHINE_ARCH} == "powerpc") 952 || (${MACHINE} == "evbppc" && ${MACHINE_ARCH} == "powerpc")
957MKCOMPATMODULES?= yes 953MKCOMPATMODULES?= yes
958.else 954.else
959MKCOMPATMODULES:= no 955MKCOMPATMODULES:= no
960.endif 956.endif
961 957
962# 958#
963# These platforms use softfloat by default. 959# These platforms use softfloat by default.
964# 960#
965.if ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el" 961.if ${MACHINE_ARCH} == "mips64eb" || ${MACHINE_ARCH} == "mips64el"
966MKSOFTFLOAT?= yes 962MKSOFTFLOAT?= yes
967.endif 963.endif
968 964
969# 965#
970# These platforms always use softfloat. 966# These platforms always use softfloat.
971# 967#
972.if (${MACHINE_CPU} == "arm" && ${MACHINE_ARCH:M*hf*} == "") || \ 968.if (${MACHINE_CPU} == "arm" && ${MACHINE_ARCH:M*hf*} == "") || \
973 ${MACHINE_ARCH} == "coldfire" || ${MACHINE_CPU} == "or1k" || \ 969 ${MACHINE_ARCH} == "coldfire" || ${MACHINE_CPU} == "or1k" || \
974 ${MACHINE} == "emips" || ${MACHINE_CPU} == "sh3" 970 ${MACHINE} == "emips" || ${MACHINE_CPU} == "sh3"
975MKSOFTFLOAT= yes 971MKSOFTFLOAT= yes
976.endif 972.endif
977 973
978.if ${MACHINE} == "emips" 974.if ${MACHINE} == "emips"
979SOFTFLOAT_BITS= 32 975SOFTFLOAT_BITS= 32
980.endif 976.endif
981 977
982# 978#
983# We want to build zfs only for amd64 by default for now. 979# We want to build zfs only for amd64 by default for now.
984# 980#
985.if ${MACHINE} == "amd64" 981.if ${MACHINE} == "amd64"
986MKZFS?= yes 982MKZFS?= yes
987.endif 983.endif
988 984
989# 985#
990# DTrace works on amd64, i386 and earm* 986# DTrace works on amd64, i386 and earm*
991# 987#
992.if ${MACHINE_ARCH} == "i386" || \ 988.if ${MACHINE_ARCH} == "i386" || \
993 ${MACHINE_ARCH} == "x86_64" || \ 989 ${MACHINE_ARCH} == "x86_64" || \
994 !empty(MACHINE_ARCH:Mearm*) 990 !empty(MACHINE_ARCH:Mearm*)
995MKDTRACE?= yes 991MKDTRACE?= yes
996MKCTF?= yes 992MKCTF?= yes
997.endif 993.endif
998 994
999# 995#
1000# PIE is enabled on many platforms by default. 996# PIE is enabled on many platforms by default.
1001# 997#
1002.if ${MACHINE_ARCH} == "i386" || \ 998.if ${MACHINE_ARCH} == "i386" || \
1003 ${MACHINE_ARCH} == "x86_64" || \ 999 ${MACHINE_ARCH} == "x86_64" || \
1004 ${MACHINE_CPU} == "arm" || \ 1000 ${MACHINE_CPU} == "arm" || \
1005 ${MACHINE_CPU} == "m68k" || \ 1001 ${MACHINE_CPU} == "m68k" || \
1006 ${MACHINE_CPU} == "mips" || \ 1002 ${MACHINE_CPU} == "mips" || \
1007 ${MACHINE_CPU} == "sh3" || \ 1003 ${MACHINE_CPU} == "sh3" || \
1008 ${MACHINE} == "sparc64" 1004 ${MACHINE} == "sparc64"
1009MKPIE?= yes 1005MKPIE?= yes
1010.else 1006.else
1011MKPIE?= no 1007MKPIE?= no
1012.endif 1008.endif
1013 1009
1014# 1010#
1015# RELRO is enabled on i386 and amd64 by default 1011# RELRO is enabled on i386 and amd64 by default
1016# 1012#
1017.if ${MACHINE_ARCH} == "i386" || \ 1013.if ${MACHINE_ARCH} == "i386" || \
1018 ${MACHINE_ARCH} == "x86_64" 1014 ${MACHINE_ARCH} == "x86_64"
1019MKRELRO?= partial 1015MKRELRO?= partial
1020.else 1016.else
1021MKRELRO?= no 1017MKRELRO?= no
1022.endif 1018.endif
1023 1019
1024.if ${MACHINE_ARCH} == "x86_64" 1020.if ${MACHINE_ARCH} == "x86_64"
1025MKSTATICPIE?= no 1021MKSTATICPIE?= no
1026.else 1022.else
1027MKSTATICPIE?= no 1023MKSTATICPIE?= no
1028.endif 1024.endif
1029 1025
1030# 1026#
1031# MK* options which default to "yes". 1027# MK* options which default to "yes".
1032# 1028#
1033_MKVARS.yes= \ 1029_MKVARS.yes= \
1034 MKATF \ 1030 MKATF \
1035 MKBINUTILS \ 1031 MKBINUTILS \
1036 MKCOMPLEX MKCVS MKCXX \ 1032 MKCOMPLEX MKCVS MKCXX \
1037 MKDOC MKDTC \ 1033 MKDOC MKDTC \
1038 MKDYNAMICROOT \ 1034 MKDYNAMICROOT \
1039 MKGCC MKGDB MKGROFF \ 1035 MKGCC MKGDB MKGROFF \
1040 MKHESIOD MKHTML \ 1036 MKHESIOD MKHTML \
1041 MKIEEEFP MKINET6 MKINFO MKIPFILTER MKISCSI \ 1037 MKIEEEFP MKINET6 MKINFO MKIPFILTER MKISCSI \
1042 MKKERBEROS \ 1038 MKKERBEROS \
1043 MKKMOD \ 1039 MKKMOD \
1044 MKLDAP MKLIBSTDCXX MKLINKLIB MKLVM \ 1040 MKLDAP MKLIBSTDCXX MKLINKLIB MKLVM \
1045 MKMAN MKMANDOC \ 1041 MKMAN MKMANDOC \
1046 MKMDNS \ 1042 MKMDNS \
1047 MKMAKEMANDB \ 1043 MKMAKEMANDB \
1048 MKNLS \ 1044 MKNLS \
1049 MKNPF \ 1045 MKNPF \
1050 MKOBJ \ 1046 MKOBJ \
1051 MKPAM MKPERFUSE \ 1047 MKPAM MKPERFUSE \
1052 MKPF MKPIC MKPICINSTALL MKPICLIB MKPOSTFIX MKPROFILE \ 1048 MKPF MKPIC MKPICINSTALL MKPICLIB MKPOSTFIX MKPROFILE \
1053 MKRUMP \ 1049 MKRUMP \
1054 MKSHARE MKSKEY MKSTATICLIB \ 1050 MKSHARE MKSKEY MKSTATICLIB \
1055 MKUNBOUND \ 1051 MKUNBOUND \
1056 MKX11FONTS \ 1052 MKX11FONTS \
1057 MKYP 1053 MKYP
1058.for var in ${_MKVARS.yes} 1054.for var in ${_MKVARS.yes}
1059${var}?= ${${var}.${MACHINE_ARCH}:Uyes} 1055${var}?= ${${var}.${MACHINE_ARCH}:Uyes}
1060.endfor 1056.endfor
1061 1057
1062# 1058#
1063# MKGCCCMDS is only valid if we are building GCC so make it dependent on that. 1059# MKGCCCMDS is only valid if we are building GCC so make it dependent on that.
1064# 1060#
1065_MKVARS.yes += MKGCCCMDS 1061_MKVARS.yes += MKGCCCMDS
1066MKGCCCMDS?= ${MKGCC} 1062MKGCCCMDS?= ${MKGCC}
1067 1063
1068# 1064#
1069# Exceptions to the above: 1065# Exceptions to the above:
1070# 1066#
1071.if ${MACHINE} == "acorn26" # page size is prohibitive 1067.if ${MACHINE} == "acorn26" # page size is prohibitive
1072MKKMOD= no 1068MKKMOD= no
1073.endif 1069.endif
1074 1070
1075# Rump doesn't work yet on ia64 1071# Rump doesn't work yet on ia64
1076.if ${MACHINE} == "ia64" 1072.if ${MACHINE} == "ia64"
1077MKRUMP= no 1073MKRUMP= no
1078.endif 1074.endif
1079 1075
1080# 1076#
1081# Build a dynamically linked /bin and /sbin, with the necessary shared 1077# Build a dynamically linked /bin and /sbin, with the necessary shared
1082# libraries moved from /usr/lib to /lib and the shared linker moved 1078# libraries moved from /usr/lib to /lib and the shared linker moved
1083# from /usr/libexec to /lib 1079# from /usr/libexec to /lib
1084# 1080#
1085# Note that if the BINDIR is not /bin or /sbin, then we always use the 1081# Note that if the BINDIR is not /bin or /sbin, then we always use the
1086# non-DYNAMICROOT behavior (i.e. it is only enabled for programs in /bin 1082# non-DYNAMICROOT behavior (i.e. it is only enabled for programs in /bin
1087# and /sbin). See <bsd.shlib.mk>. 1083# and /sbin). See <bsd.shlib.mk>.
1088# 1084#
1089# For ia64, ld.elf_so not yet implemented 1085# For ia64, ld.elf_so not yet implemented
1090.if ${MACHINE_ARCH} == "ia64" 1086.if ${MACHINE_ARCH} == "ia64"
1091MKDYNAMICROOT= no 1087MKDYNAMICROOT= no
1092.endif 1088.endif
1093 1089
1094.if defined(MKREPRO) 1090.if defined(MKREPRO)
1095MKARZERO ?= ${MKREPRO} 1091MKARZERO ?= ${MKREPRO}
1096.endif 1092.endif
1097 1093
1098# 1094#
1099# MK* options which default to "no". Note that MKZFS has a different 1095# MK* options which default to "no". Note that MKZFS has a different
1100# default for some platforms, see above. Please keep alphabetically 1096# default for some platforms, see above. Please keep alphabetically
1101# sorted with at most one letter per line. 1097# sorted with at most one letter per line.
1102# 1098#
1103_MKVARS.no= \ 1099_MKVARS.no= \
1104 MKARZERO \ 1100 MKARZERO \
1105 MKBSDGREP MKBSDTAR \ 1101 MKBSDGREP MKBSDTAR \
1106 MKCATPAGES MKCOMPATTESTS MKCOMPATX11 MKCTF \ 1102 MKCATPAGES MKCOMPATTESTS MKCOMPATX11 MKCTF \
1107 MKDEBUG MKDEBUGLIB MKDTRACE \ 1103 MKDEBUG MKDEBUGLIB MKDTRACE \
1108 MKEXTSRC \ 1104 MKEXTSRC \
1109 MKGROFFHTMLDOC \ 1105 MKGROFFHTMLDOC \
1110 MKKYUA \ 1106 MKKYUA \
1111 MKLIBCXX MKLLD MKLLDB MKLLVM MKLINT \ 1107 MKLIBCXX MKLLD MKLLDB MKLLVM MKLINT \
1112 MKMANZ MKMCLINKER \ 1108 MKMANZ MKMCLINKER \
1113 MKNSD \ 1109 MKNSD \
1114 MKOBJDIRS \ 1110 MKOBJDIRS \
1115 MKPCC MKPIGZGZIP \ 1111 MKPCC MKPIGZGZIP \
1116 MKRADEONFIRMWARE MKREPRO \ 1112 MKRADEONFIRMWARE MKREPRO \
1117 MKSLJIT MKSOFTFLOAT MKSTRIPIDENT \ 1113 MKSLJIT MKSOFTFLOAT MKSTRIPIDENT \
1118 MKTPM \ 1114 MKTPM \
1119 MKUNPRIVED MKUPDATE \ 1115 MKUNPRIVED MKUPDATE \
1120 MKX11 MKX11MOTIF MKXORG_SERVER \ 1116 MKX11 MKX11MOTIF MKXORG_SERVER \
1121 MKZFS 1117 MKZFS
1122.for var in ${_MKVARS.no} 1118.for var in ${_MKVARS.no}
1123${var}?= ${${var}.${MACHINE_ARCH}:Uno} 1119${var}?= ${${var}.${MACHINE_ARCH}:Uno}
1124.endfor 1120.endfor
1125 1121
1126.if ${MACHINE_ARCH} == "i386" || \ 1122.if ${MACHINE_ARCH} == "i386" || \
1127 ${MACHINE_ARCH} == "x86_64" || \ 1123 ${MACHINE_ARCH} == "x86_64" || \
1128 ${MACHINE_ARCH} == "sparc"  1124 ${MACHINE_ARCH} == "sparc"
1129MKSLJIT= yes 1125MKSLJIT= yes
1130.endif 1126.endif
1131 1127
1132# 1128#
1133# Which platforms build the xorg-server drivers (as opposed 1129# Which platforms build the xorg-server drivers (as opposed
1134# to just Xnest and Xvfb.) 1130# to just Xnest and Xvfb.)
1135# 1131#
1136.if ${MACHINE} == "alpha" || \ 1132.if ${MACHINE} == "alpha" || \
1137 ${MACHINE} == "amd64" || \ 1133 ${MACHINE} == "amd64" || \