Lines 1-476
Link Here
|
1 |
# $FreeBSD$ |
1 |
# $FreeBSD$ |
2 |
# |
2 |
# |
3 |
# Option file for FreeBSD /usr/src builds. |
3 |
# Option file for FreeBSD /usr/src builds. |
4 |
# |
4 |
# |
5 |
# Users define WITH_FOO and WITHOUT_FOO on the command line or in /etc/src.conf |
5 |
# Users define WITH_FOO and WITHOUT_FOO on the command line or in /etc/src.conf |
6 |
# and /etc/make.conf files. These translate in the build system to MK_FOO={yes,no} |
6 |
# and /etc/make.conf files. These translate in the build system to MK_FOO={yes,no} |
7 |
# with sensible (usually) defaults. |
7 |
# with sensible (usually) defaults. |
8 |
# |
8 |
# |
9 |
# Makefiles must include bsd.opts.mk after defining specific MK_FOO options that |
9 |
# Makefiles must include bsd.opts.mk after defining specific MK_FOO options that |
10 |
# are applicable for that Makefile (typically there are none, but sometimes there |
10 |
# are applicable for that Makefile (typically there are none, but sometimes there |
11 |
# are exceptions). Recursive makes usually add MK_FOO=no for options that they wish |
11 |
# are exceptions). Recursive makes usually add MK_FOO=no for options that they wish |
12 |
# to omit from that make. |
12 |
# to omit from that make. |
13 |
# |
13 |
# |
14 |
# Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO |
14 |
# Makefiles must include bsd.mkopt.mk before they test the value of any MK_FOO |
15 |
# variable. |
15 |
# variable. |
16 |
# |
16 |
# |
17 |
# Makefiles may also assume that this file is included by src.opts.mk should it |
17 |
# Makefiles may also assume that this file is included by src.opts.mk should it |
18 |
# need variables defined there prior to the end of the Makefile where |
18 |
# need variables defined there prior to the end of the Makefile where |
19 |
# bsd.{subdir,lib.bin}.mk is traditionally included. |
19 |
# bsd.{subdir,lib.bin}.mk is traditionally included. |
20 |
# |
20 |
# |
21 |
# The old-style YES_FOO and NO_FOO are being phased out. No new instances of them |
21 |
# The old-style YES_FOO and NO_FOO are being phased out. No new instances of them |
22 |
# should be added. Old instances should be removed since they were just to |
22 |
# should be added. Old instances should be removed since they were just to |
23 |
# bridge the gap between FreeBSD 4 and FreeBSD 5. |
23 |
# bridge the gap between FreeBSD 4 and FreeBSD 5. |
24 |
# |
24 |
# |
25 |
# Makefiles should never test WITH_FOO or WITHOUT_FOO directly (although an |
25 |
# Makefiles should never test WITH_FOO or WITHOUT_FOO directly (although an |
26 |
# exception is made for _WITHOUT_SRCONF which turns off this mechanism |
26 |
# exception is made for _WITHOUT_SRCONF which turns off this mechanism |
27 |
# completely inside bsd.*.mk files). |
27 |
# completely inside bsd.*.mk files). |
28 |
# |
28 |
# |
29 |
|
29 |
|
30 |
.if !target(__<src.opts.mk>__) |
30 |
.if !target(__<src.opts.mk>__) |
31 |
__<src.opts.mk>__: |
31 |
__<src.opts.mk>__: |
32 |
|
32 |
|
33 |
.include <bsd.own.mk> |
33 |
.include <bsd.own.mk> |
34 |
|
34 |
|
35 |
# |
35 |
# |
36 |
# Define MK_* variables (which are either "yes" or "no") for users |
36 |
# Define MK_* variables (which are either "yes" or "no") for users |
37 |
# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the |
37 |
# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the |
38 |
# make(1) environment. |
38 |
# make(1) environment. |
39 |
# These should be tested with `== "no"' or `!= "no"' in makefiles. |
39 |
# These should be tested with `== "no"' or `!= "no"' in makefiles. |
40 |
# The NO_* variables should only be set by makefiles for variables |
40 |
# The NO_* variables should only be set by makefiles for variables |
41 |
# that haven't been converted over. |
41 |
# that haven't been converted over. |
42 |
# |
42 |
# |
43 |
|
43 |
|
44 |
# These options are used by src the builds |
44 |
# These options are used by src the builds |
45 |
|
45 |
|
46 |
__DEFAULT_YES_OPTIONS = \ |
46 |
__DEFAULT_YES_OPTIONS = \ |
47 |
ACCT \ |
47 |
ACCT \ |
48 |
ACPI \ |
48 |
ACPI \ |
49 |
AMD \ |
49 |
AMD \ |
50 |
APM \ |
50 |
APM \ |
51 |
AT \ |
51 |
AT \ |
52 |
ATM \ |
52 |
ATM \ |
53 |
AUDIT \ |
53 |
AUDIT \ |
54 |
AUTHPF \ |
54 |
AUTHPF \ |
55 |
AUTOFS \ |
55 |
AUTOFS \ |
56 |
BHYVE \ |
56 |
BHYVE \ |
57 |
BINUTILS \ |
57 |
BINUTILS \ |
58 |
BINUTILS_BOOTSTRAP \ |
58 |
BINUTILS_BOOTSTRAP \ |
59 |
BLACKLIST \ |
59 |
BLACKLIST \ |
60 |
BLUETOOTH \ |
60 |
BLUETOOTH \ |
|
|
61 |
BSD_GREP \ |
61 |
BOOT \ |
62 |
BOOT \ |
62 |
BOOTPARAMD \ |
63 |
BOOTPARAMD \ |
63 |
BOOTPD \ |
64 |
BOOTPD \ |
64 |
BSD_CPIO \ |
65 |
BSD_CPIO \ |
65 |
BSDINSTALL \ |
66 |
BSDINSTALL \ |
66 |
BSNMP \ |
67 |
BSNMP \ |
67 |
BZIP2 \ |
68 |
BZIP2 \ |
68 |
CALENDAR \ |
69 |
CALENDAR \ |
69 |
CAPSICUM \ |
70 |
CAPSICUM \ |
70 |
CASPER \ |
71 |
CASPER \ |
71 |
CCD \ |
72 |
CCD \ |
72 |
CDDL \ |
73 |
CDDL \ |
73 |
CPP \ |
74 |
CPP \ |
74 |
CROSS_COMPILER \ |
75 |
CROSS_COMPILER \ |
75 |
CRYPT \ |
76 |
CRYPT \ |
76 |
CTM \ |
77 |
CTM \ |
77 |
CUSE \ |
78 |
CUSE \ |
78 |
CXX \ |
79 |
CXX \ |
79 |
DIALOG \ |
80 |
DIALOG \ |
80 |
DICT \ |
81 |
DICT \ |
81 |
DMAGENT \ |
82 |
DMAGENT \ |
82 |
DYNAMICROOT \ |
83 |
DYNAMICROOT \ |
83 |
ED_CRYPTO \ |
84 |
ED_CRYPTO \ |
84 |
EE \ |
85 |
EE \ |
85 |
EFI \ |
86 |
EFI \ |
86 |
ELFTOOLCHAIN_BOOTSTRAP \ |
87 |
ELFTOOLCHAIN_BOOTSTRAP \ |
87 |
EXAMPLES \ |
88 |
EXAMPLES \ |
88 |
FDT \ |
89 |
FDT \ |
89 |
FILE \ |
90 |
FILE \ |
90 |
FINGER \ |
91 |
FINGER \ |
91 |
FLOPPY \ |
92 |
FLOPPY \ |
92 |
FMTREE \ |
93 |
FMTREE \ |
93 |
FORTH \ |
94 |
FORTH \ |
94 |
FP_LIBC \ |
95 |
FP_LIBC \ |
95 |
FREEBSD_UPDATE \ |
96 |
FREEBSD_UPDATE \ |
96 |
FTP \ |
97 |
FTP \ |
97 |
GAMES \ |
98 |
GAMES \ |
98 |
GCOV \ |
99 |
GCOV \ |
99 |
GDB \ |
100 |
GDB \ |
100 |
GNU \ |
101 |
GNU \ |
101 |
GNU_DIFF \ |
102 |
GNU_DIFF \ |
102 |
GNU_GREP \ |
|
|
103 |
GNU_GREP_COMPAT \ |
104 |
GPIO \ |
103 |
GPIO \ |
105 |
GPL_DTC \ |
104 |
GPL_DTC \ |
106 |
GROFF \ |
105 |
GROFF \ |
107 |
HAST \ |
106 |
HAST \ |
108 |
HTML \ |
107 |
HTML \ |
109 |
HYPERV \ |
108 |
HYPERV \ |
110 |
ICONV \ |
109 |
ICONV \ |
111 |
INET \ |
110 |
INET \ |
112 |
INET6 \ |
111 |
INET6 \ |
113 |
INETD \ |
112 |
INETD \ |
114 |
IPFILTER \ |
113 |
IPFILTER \ |
115 |
IPFW \ |
114 |
IPFW \ |
116 |
ISCSI \ |
115 |
ISCSI \ |
117 |
JAIL \ |
116 |
JAIL \ |
118 |
KDUMP \ |
117 |
KDUMP \ |
119 |
KVM \ |
118 |
KVM \ |
120 |
LDNS \ |
119 |
LDNS \ |
121 |
LDNS_UTILS \ |
120 |
LDNS_UTILS \ |
122 |
LEGACY_CONSOLE \ |
121 |
LEGACY_CONSOLE \ |
123 |
LIB32 \ |
122 |
LIB32 \ |
124 |
LIBPTHREAD \ |
123 |
LIBPTHREAD \ |
125 |
LIBTHR \ |
124 |
LIBTHR \ |
126 |
LOCALES \ |
125 |
LOCALES \ |
127 |
LOCATE \ |
126 |
LOCATE \ |
128 |
LPR \ |
127 |
LPR \ |
129 |
LS_COLORS \ |
128 |
LS_COLORS \ |
130 |
LZMA_SUPPORT \ |
129 |
LZMA_SUPPORT \ |
131 |
MAIL \ |
130 |
MAIL \ |
132 |
MAILWRAPPER \ |
131 |
MAILWRAPPER \ |
133 |
MAKE \ |
132 |
MAKE \ |
134 |
NDIS \ |
133 |
NDIS \ |
135 |
NETCAT \ |
134 |
NETCAT \ |
136 |
NETGRAPH \ |
135 |
NETGRAPH \ |
137 |
NLS_CATALOGS \ |
136 |
NLS_CATALOGS \ |
138 |
NS_CACHING \ |
137 |
NS_CACHING \ |
139 |
NTP \ |
138 |
NTP \ |
140 |
OPENSSL \ |
139 |
OPENSSL \ |
141 |
PAM \ |
140 |
PAM \ |
142 |
PC_SYSINSTALL \ |
141 |
PC_SYSINSTALL \ |
143 |
PF \ |
142 |
PF \ |
144 |
PKGBOOTSTRAP \ |
143 |
PKGBOOTSTRAP \ |
145 |
PMC \ |
144 |
PMC \ |
146 |
PORTSNAP \ |
145 |
PORTSNAP \ |
147 |
PPP \ |
146 |
PPP \ |
148 |
QUOTAS \ |
147 |
QUOTAS \ |
149 |
RADIUS_SUPPORT \ |
148 |
RADIUS_SUPPORT \ |
150 |
RCMDS \ |
149 |
RCMDS \ |
151 |
RBOOTD \ |
150 |
RBOOTD \ |
152 |
RESCUE \ |
151 |
RESCUE \ |
153 |
ROUTED \ |
152 |
ROUTED \ |
154 |
SENDMAIL \ |
153 |
SENDMAIL \ |
155 |
SETUID_LOGIN \ |
154 |
SETUID_LOGIN \ |
156 |
SHAREDOCS \ |
155 |
SHAREDOCS \ |
157 |
SOURCELESS \ |
156 |
SOURCELESS \ |
158 |
SOURCELESS_HOST \ |
157 |
SOURCELESS_HOST \ |
159 |
SOURCELESS_UCODE \ |
158 |
SOURCELESS_UCODE \ |
160 |
SVNLITE \ |
159 |
SVNLITE \ |
161 |
SYSCONS \ |
160 |
SYSCONS \ |
162 |
SYSTEM_COMPILER \ |
161 |
SYSTEM_COMPILER \ |
163 |
TALK \ |
162 |
TALK \ |
164 |
TCP_WRAPPERS \ |
163 |
TCP_WRAPPERS \ |
165 |
TCSH \ |
164 |
TCSH \ |
166 |
TELNET \ |
165 |
TELNET \ |
167 |
TESTS \ |
166 |
TESTS \ |
168 |
TEXTPROC \ |
167 |
TEXTPROC \ |
169 |
TFTP \ |
168 |
TFTP \ |
170 |
TIMED \ |
169 |
TIMED \ |
171 |
UNBOUND \ |
170 |
UNBOUND \ |
172 |
USB \ |
171 |
USB \ |
173 |
UTMPX \ |
172 |
UTMPX \ |
174 |
VI \ |
173 |
VI \ |
175 |
VT \ |
174 |
VT \ |
176 |
WIRELESS \ |
175 |
WIRELESS \ |
177 |
WPA_SUPPLICANT_EAPOL \ |
176 |
WPA_SUPPLICANT_EAPOL \ |
178 |
ZFS \ |
177 |
ZFS \ |
179 |
ZONEINFO |
178 |
ZONEINFO |
180 |
|
179 |
|
181 |
__DEFAULT_NO_OPTIONS = \ |
180 |
__DEFAULT_NO_OPTIONS = \ |
182 |
BSD_GREP \ |
|
|
183 |
CLANG_EXTRAS \ |
181 |
CLANG_EXTRAS \ |
184 |
DTRACE_TESTS \ |
182 |
DTRACE_TESTS \ |
|
|
183 |
GNU_GREP \ |
184 |
GNU_GREP_COMPAT \ |
185 |
HESIOD \ |
185 |
HESIOD \ |
186 |
LIBSOFT \ |
186 |
LIBSOFT \ |
187 |
NAND \ |
187 |
NAND \ |
188 |
OFED \ |
188 |
OFED \ |
189 |
OPENLDAP \ |
189 |
OPENLDAP \ |
190 |
REPRODUCIBLE_BUILD \ |
190 |
REPRODUCIBLE_BUILD \ |
191 |
SHARED_TOOLCHAIN \ |
191 |
SHARED_TOOLCHAIN \ |
192 |
SORT_THREADS \ |
192 |
SORT_THREADS \ |
193 |
SVN \ |
193 |
SVN \ |
194 |
|
194 |
|
195 |
|
195 |
|
196 |
# |
196 |
# |
197 |
# Default behaviour of some options depends on the architecture. Unfortunately |
197 |
# Default behaviour of some options depends on the architecture. Unfortunately |
198 |
# this means that we have to test TARGET_ARCH (the buildworld case) as well |
198 |
# this means that we have to test TARGET_ARCH (the buildworld case) as well |
199 |
# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not |
199 |
# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not |
200 |
# used at all in bsd.*.mk, but we have to make an exception here if we want |
200 |
# used at all in bsd.*.mk, but we have to make an exception here if we want |
201 |
# to allow defaults for some things like clang to vary by target architecture. |
201 |
# to allow defaults for some things like clang to vary by target architecture. |
202 |
# Additional, per-target behavior should be rarely added only after much |
202 |
# Additional, per-target behavior should be rarely added only after much |
203 |
# gnashing of teeth and grinding of gears. |
203 |
# gnashing of teeth and grinding of gears. |
204 |
# |
204 |
# |
205 |
.if defined(TARGET_ARCH) |
205 |
.if defined(TARGET_ARCH) |
206 |
__T=${TARGET_ARCH} |
206 |
__T=${TARGET_ARCH} |
207 |
.else |
207 |
.else |
208 |
__T=${MACHINE_ARCH} |
208 |
__T=${MACHINE_ARCH} |
209 |
.endif |
209 |
.endif |
210 |
.if defined(TARGET) |
210 |
.if defined(TARGET) |
211 |
__TT=${TARGET} |
211 |
__TT=${TARGET} |
212 |
.else |
212 |
.else |
213 |
__TT=${MACHINE} |
213 |
__TT=${MACHINE} |
214 |
.endif |
214 |
.endif |
215 |
|
215 |
|
216 |
.include <bsd.compiler.mk> |
216 |
.include <bsd.compiler.mk> |
217 |
# If the compiler is not C++11 capable, disable Clang and use GCC instead. |
217 |
# If the compiler is not C++11 capable, disable Clang and use GCC instead. |
218 |
# This means that architectures that have GCC 4.2 as default can not |
218 |
# This means that architectures that have GCC 4.2 as default can not |
219 |
# build Clang without using an external compiler. |
219 |
# build Clang without using an external compiler. |
220 |
|
220 |
|
221 |
.if ${COMPILER_FEATURES:Mc++11} && (${__T} == "aarch64" || \ |
221 |
.if ${COMPILER_FEATURES:Mc++11} && (${__T} == "aarch64" || \ |
222 |
${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386") |
222 |
${__T} == "amd64" || ${__TT} == "arm" || ${__T} == "i386") |
223 |
# Clang is enabled, and will be installed as the default /usr/bin/cc. |
223 |
# Clang is enabled, and will be installed as the default /usr/bin/cc. |
224 |
__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD |
224 |
__DEFAULT_YES_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD |
225 |
__DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX |
225 |
__DEFAULT_NO_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX |
226 |
.elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "riscv64" && ${__T} != "sparc64" |
226 |
.elif ${COMPILER_FEATURES:Mc++11} && ${__T} != "riscv64" && ${__T} != "sparc64" |
227 |
# If an external compiler that supports C++11 is used as ${CC} and Clang |
227 |
# If an external compiler that supports C++11 is used as ${CC} and Clang |
228 |
# supports the target, then Clang is enabled but GCC is installed as the |
228 |
# supports the target, then Clang is enabled but GCC is installed as the |
229 |
# default /usr/bin/cc. |
229 |
# default /usr/bin/cc. |
230 |
__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX |
230 |
__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL GCC GCC_BOOTSTRAP GNUCXX |
231 |
__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC LLD |
231 |
__DEFAULT_NO_OPTIONS+=CLANG_BOOTSTRAP CLANG_IS_CC LLD |
232 |
.else |
232 |
.else |
233 |
# Everything else disables Clang, and uses GCC instead. |
233 |
# Everything else disables Clang, and uses GCC instead. |
234 |
__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX |
234 |
__DEFAULT_YES_OPTIONS+=GCC GCC_BOOTSTRAP GNUCXX |
235 |
__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD |
235 |
__DEFAULT_NO_OPTIONS+=CLANG CLANG_BOOTSTRAP CLANG_FULL CLANG_IS_CC LLD |
236 |
.endif |
236 |
.endif |
237 |
# In-tree binutils/gcc are older versions without modern architecture support. |
237 |
# In-tree binutils/gcc are older versions without modern architecture support. |
238 |
.if ${__T} == "aarch64" || ${__T:Mriscv*} != "" |
238 |
.if ${__T} == "aarch64" || ${__T:Mriscv*} != "" |
239 |
BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BOOTSTRAP GDB |
239 |
BROKEN_OPTIONS+=BINUTILS BINUTILS_BOOTSTRAP GCC GCC_BOOTSTRAP GDB |
240 |
.endif |
240 |
.endif |
241 |
.if ${__T:Mriscv*} != "" |
241 |
.if ${__T:Mriscv*} != "" |
242 |
BROKEN_OPTIONS+=PROFILE # "sorry, unimplemented: profiler support for RISC-V" |
242 |
BROKEN_OPTIONS+=PROFILE # "sorry, unimplemented: profiler support for RISC-V" |
243 |
BROKEN_OPTIONS+=TESTS # "undefined reference to `_Unwind_Resume'" |
243 |
BROKEN_OPTIONS+=TESTS # "undefined reference to `_Unwind_Resume'" |
244 |
BROKEN_OPTIONS+=CXX # "libcxxrt.so: undefined reference to `_Unwind_Resume_or_Rethrow'" |
244 |
BROKEN_OPTIONS+=CXX # "libcxxrt.so: undefined reference to `_Unwind_Resume_or_Rethrow'" |
245 |
.endif |
245 |
.endif |
246 |
.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ |
246 |
.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ |
247 |
${__T:Mriscv*} != "" |
247 |
${__T:Mriscv*} != "" |
248 |
__DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND |
248 |
__DEFAULT_YES_OPTIONS+=LLVM_LIBUNWIND |
249 |
.else |
249 |
.else |
250 |
__DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND |
250 |
__DEFAULT_NO_OPTIONS+=LLVM_LIBUNWIND |
251 |
.endif |
251 |
.endif |
252 |
.if ${__T} == "aarch64" |
252 |
.if ${__T} == "aarch64" |
253 |
__DEFAULT_YES_OPTIONS+=LLD_IS_LD |
253 |
__DEFAULT_YES_OPTIONS+=LLD_IS_LD |
254 |
.else |
254 |
.else |
255 |
__DEFAULT_NO_OPTIONS+=LLD_IS_LD |
255 |
__DEFAULT_NO_OPTIONS+=LLD_IS_LD |
256 |
.endif |
256 |
.endif |
257 |
.if ${__T} == "aarch64" || ${__T} == "amd64" |
257 |
.if ${__T} == "aarch64" || ${__T} == "amd64" |
258 |
__DEFAULT_YES_OPTIONS+=LLDB |
258 |
__DEFAULT_YES_OPTIONS+=LLDB |
259 |
.else |
259 |
.else |
260 |
__DEFAULT_NO_OPTIONS+=LLDB |
260 |
__DEFAULT_NO_OPTIONS+=LLDB |
261 |
.endif |
261 |
.endif |
262 |
# LLVM lacks support for FreeBSD 64-bit atomic operations for ARMv4/ARMv5 |
262 |
# LLVM lacks support for FreeBSD 64-bit atomic operations for ARMv4/ARMv5 |
263 |
.if ${__T} == "arm" || ${__T} == "armeb" |
263 |
.if ${__T} == "arm" || ${__T} == "armeb" |
264 |
BROKEN_OPTIONS+=LLDB |
264 |
BROKEN_OPTIONS+=LLDB |
265 |
.endif |
265 |
.endif |
266 |
# Only doing soft float API stuff on armv6 |
266 |
# Only doing soft float API stuff on armv6 |
267 |
.if ${__T} != "armv6" |
267 |
.if ${__T} != "armv6" |
268 |
BROKEN_OPTIONS+=LIBSOFT |
268 |
BROKEN_OPTIONS+=LIBSOFT |
269 |
.endif |
269 |
.endif |
270 |
.if ${__T:Mmips*} |
270 |
.if ${__T:Mmips*} |
271 |
BROKEN_OPTIONS+=SSP |
271 |
BROKEN_OPTIONS+=SSP |
272 |
.endif |
272 |
.endif |
273 |
.if ${__T:Mmips*} || ${__T:Mpowerpc*} || ${__T:Msparc64} || ${__T:Mriscv*} |
273 |
.if ${__T:Mmips*} || ${__T:Mpowerpc*} || ${__T:Msparc64} || ${__T:Mriscv*} |
274 |
BROKEN_OPTIONS+=EFI |
274 |
BROKEN_OPTIONS+=EFI |
275 |
.endif |
275 |
.endif |
276 |
|
276 |
|
277 |
.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ |
277 |
.if ${__T} == "aarch64" || ${__T} == "amd64" || ${__T} == "i386" || \ |
278 |
${__T} == "powerpc64" || ${__T} == "sparc64" |
278 |
${__T} == "powerpc64" || ${__T} == "sparc64" |
279 |
__DEFAULT_YES_OPTIONS+=CXGBETOOL |
279 |
__DEFAULT_YES_OPTIONS+=CXGBETOOL |
280 |
.else |
280 |
.else |
281 |
__DEFAULT_NO_OPTIONS+=CXGBETOOL |
281 |
__DEFAULT_NO_OPTIONS+=CXGBETOOL |
282 |
.endif |
282 |
.endif |
283 |
|
283 |
|
284 |
.include <bsd.mkopt.mk> |
284 |
.include <bsd.mkopt.mk> |
285 |
|
285 |
|
286 |
# |
286 |
# |
287 |
# MK_* options that default to "yes" if the compiler is a C++11 compiler. |
287 |
# MK_* options that default to "yes" if the compiler is a C++11 compiler. |
288 |
# |
288 |
# |
289 |
.for var in \ |
289 |
.for var in \ |
290 |
LIBCPLUSPLUS |
290 |
LIBCPLUSPLUS |
291 |
.if !defined(MK_${var}) |
291 |
.if !defined(MK_${var}) |
292 |
.if ${COMPILER_FEATURES:Mc++11} |
292 |
.if ${COMPILER_FEATURES:Mc++11} |
293 |
.if defined(WITHOUT_${var}) |
293 |
.if defined(WITHOUT_${var}) |
294 |
MK_${var}:= no |
294 |
MK_${var}:= no |
295 |
.else |
295 |
.else |
296 |
MK_${var}:= yes |
296 |
MK_${var}:= yes |
297 |
.endif |
297 |
.endif |
298 |
.else |
298 |
.else |
299 |
.if defined(WITH_${var}) |
299 |
.if defined(WITH_${var}) |
300 |
MK_${var}:= yes |
300 |
MK_${var}:= yes |
301 |
.else |
301 |
.else |
302 |
MK_${var}:= no |
302 |
MK_${var}:= no |
303 |
.endif |
303 |
.endif |
304 |
.endif |
304 |
.endif |
305 |
.endif |
305 |
.endif |
306 |
.endfor |
306 |
.endfor |
307 |
|
307 |
|
308 |
# |
308 |
# |
309 |
# Force some options off if their dependencies are off. |
309 |
# Force some options off if their dependencies are off. |
310 |
# Order is somewhat important. |
310 |
# Order is somewhat important. |
311 |
# |
311 |
# |
312 |
.if !${COMPILER_FEATURES:Mc++11} |
312 |
.if !${COMPILER_FEATURES:Mc++11} |
313 |
MK_LLVM_LIBUNWIND:= no |
313 |
MK_LLVM_LIBUNWIND:= no |
314 |
.endif |
314 |
.endif |
315 |
|
315 |
|
316 |
.if ${MK_BINUTILS} == "no" |
316 |
.if ${MK_BINUTILS} == "no" |
317 |
MK_GDB:= no |
317 |
MK_GDB:= no |
318 |
.endif |
318 |
.endif |
319 |
|
319 |
|
320 |
.if ${MK_CAPSICUM} == "no" |
320 |
.if ${MK_CAPSICUM} == "no" |
321 |
MK_CASPER:= no |
321 |
MK_CASPER:= no |
322 |
.endif |
322 |
.endif |
323 |
|
323 |
|
324 |
.if ${MK_LIBPTHREAD} == "no" |
324 |
.if ${MK_LIBPTHREAD} == "no" |
325 |
MK_LIBTHR:= no |
325 |
MK_LIBTHR:= no |
326 |
.endif |
326 |
.endif |
327 |
|
327 |
|
328 |
.if ${MK_LDNS} == "no" |
328 |
.if ${MK_LDNS} == "no" |
329 |
MK_LDNS_UTILS:= no |
329 |
MK_LDNS_UTILS:= no |
330 |
MK_UNBOUND:= no |
330 |
MK_UNBOUND:= no |
331 |
.endif |
331 |
.endif |
332 |
|
332 |
|
333 |
.if ${MK_LLD} == "no" |
333 |
.if ${MK_LLD} == "no" |
334 |
MK_LLD_IS_LD:= no |
334 |
MK_LLD_IS_LD:= no |
335 |
.endif |
335 |
.endif |
336 |
|
336 |
|
337 |
# LLD requires LLVM libraries, and we do not yet compare in-tree and host LLD |
337 |
# LLD requires LLVM libraries, and we do not yet compare in-tree and host LLD |
338 |
# versions to avoid building it if they are identical. |
338 |
# versions to avoid building it if they are identical. |
339 |
.if ${MK_LLD_IS_LD} != "no" |
339 |
.if ${MK_LLD_IS_LD} != "no" |
340 |
MK_SYSTEM_COMPILER:= no |
340 |
MK_SYSTEM_COMPILER:= no |
341 |
.endif |
341 |
.endif |
342 |
|
342 |
|
343 |
.if ${MK_SOURCELESS} == "no" |
343 |
.if ${MK_SOURCELESS} == "no" |
344 |
MK_SOURCELESS_HOST:= no |
344 |
MK_SOURCELESS_HOST:= no |
345 |
MK_SOURCELESS_UCODE:= no |
345 |
MK_SOURCELESS_UCODE:= no |
346 |
.endif |
346 |
.endif |
347 |
|
347 |
|
348 |
.if ${MK_CDDL} == "no" |
348 |
.if ${MK_CDDL} == "no" |
349 |
MK_ZFS:= no |
349 |
MK_ZFS:= no |
350 |
MK_CTF:= no |
350 |
MK_CTF:= no |
351 |
.endif |
351 |
.endif |
352 |
|
352 |
|
353 |
.if ${MK_CRYPT} == "no" |
353 |
.if ${MK_CRYPT} == "no" |
354 |
MK_OPENSSL:= no |
354 |
MK_OPENSSL:= no |
355 |
MK_OPENSSH:= no |
355 |
MK_OPENSSH:= no |
356 |
MK_KERBEROS:= no |
356 |
MK_KERBEROS:= no |
357 |
.endif |
357 |
.endif |
358 |
|
358 |
|
359 |
.if ${MK_CXX} == "no" |
359 |
.if ${MK_CXX} == "no" |
360 |
MK_CLANG:= no |
360 |
MK_CLANG:= no |
361 |
MK_GROFF:= no |
361 |
MK_GROFF:= no |
362 |
MK_GNUCXX:= no |
362 |
MK_GNUCXX:= no |
363 |
MK_TESTS:= no |
363 |
MK_TESTS:= no |
364 |
.endif |
364 |
.endif |
365 |
|
365 |
|
366 |
.if ${MK_DIALOG} == "no" |
366 |
.if ${MK_DIALOG} == "no" |
367 |
MK_BSDINSTALL:= no |
367 |
MK_BSDINSTALL:= no |
368 |
.endif |
368 |
.endif |
369 |
|
369 |
|
370 |
.if ${MK_MAIL} == "no" |
370 |
.if ${MK_MAIL} == "no" |
371 |
MK_MAILWRAPPER:= no |
371 |
MK_MAILWRAPPER:= no |
372 |
MK_SENDMAIL:= no |
372 |
MK_SENDMAIL:= no |
373 |
MK_DMAGENT:= no |
373 |
MK_DMAGENT:= no |
374 |
.endif |
374 |
.endif |
375 |
|
375 |
|
376 |
.if ${MK_NETGRAPH} == "no" |
376 |
.if ${MK_NETGRAPH} == "no" |
377 |
MK_ATM:= no |
377 |
MK_ATM:= no |
378 |
MK_BLUETOOTH:= no |
378 |
MK_BLUETOOTH:= no |
379 |
.endif |
379 |
.endif |
380 |
|
380 |
|
381 |
.if ${MK_OPENSSL} == "no" |
381 |
.if ${MK_OPENSSL} == "no" |
382 |
MK_OPENSSH:= no |
382 |
MK_OPENSSH:= no |
383 |
MK_KERBEROS:= no |
383 |
MK_KERBEROS:= no |
384 |
.endif |
384 |
.endif |
385 |
|
385 |
|
386 |
.if ${MK_PF} == "no" |
386 |
.if ${MK_PF} == "no" |
387 |
MK_AUTHPF:= no |
387 |
MK_AUTHPF:= no |
388 |
.endif |
388 |
.endif |
389 |
|
389 |
|
390 |
.if ${MK_TESTS} == "no" |
390 |
.if ${MK_TESTS} == "no" |
391 |
MK_DTRACE_TESTS:= no |
391 |
MK_DTRACE_TESTS:= no |
392 |
.endif |
392 |
.endif |
393 |
|
393 |
|
394 |
.if ${MK_TEXTPROC} == "no" |
394 |
.if ${MK_TEXTPROC} == "no" |
395 |
MK_GROFF:= no |
395 |
MK_GROFF:= no |
396 |
.endif |
396 |
.endif |
397 |
|
397 |
|
398 |
.if ${MK_CROSS_COMPILER} == "no" |
398 |
.if ${MK_CROSS_COMPILER} == "no" |
399 |
MK_BINUTILS_BOOTSTRAP:= no |
399 |
MK_BINUTILS_BOOTSTRAP:= no |
400 |
MK_CLANG_BOOTSTRAP:= no |
400 |
MK_CLANG_BOOTSTRAP:= no |
401 |
MK_ELFTOOLCHAIN_BOOTSTRAP:= no |
401 |
MK_ELFTOOLCHAIN_BOOTSTRAP:= no |
402 |
MK_GCC_BOOTSTRAP:= no |
402 |
MK_GCC_BOOTSTRAP:= no |
403 |
.endif |
403 |
.endif |
404 |
|
404 |
|
405 |
.if ${MK_TOOLCHAIN} == "no" |
405 |
.if ${MK_TOOLCHAIN} == "no" |
406 |
MK_BINUTILS:= no |
406 |
MK_BINUTILS:= no |
407 |
MK_CLANG:= no |
407 |
MK_CLANG:= no |
408 |
MK_GCC:= no |
408 |
MK_GCC:= no |
409 |
MK_GDB:= no |
409 |
MK_GDB:= no |
410 |
MK_INCLUDES:= no |
410 |
MK_INCLUDES:= no |
411 |
MK_LLDB:= no |
411 |
MK_LLDB:= no |
412 |
.endif |
412 |
.endif |
413 |
|
413 |
|
414 |
.if ${MK_CLANG} == "no" |
414 |
.if ${MK_CLANG} == "no" |
415 |
MK_CLANG_EXTRAS:= no |
415 |
MK_CLANG_EXTRAS:= no |
416 |
MK_CLANG_FULL:= no |
416 |
MK_CLANG_FULL:= no |
417 |
.endif |
417 |
.endif |
418 |
|
418 |
|
419 |
# |
419 |
# |
420 |
# MK_* options whose default value depends on another option. |
420 |
# MK_* options whose default value depends on another option. |
421 |
# |
421 |
# |
422 |
.for vv in \ |
422 |
.for vv in \ |
423 |
GSSAPI/KERBEROS \ |
423 |
GSSAPI/KERBEROS \ |
424 |
MAN_UTILS/MAN |
424 |
MAN_UTILS/MAN |
425 |
.if defined(WITH_${vv:H}) |
425 |
.if defined(WITH_${vv:H}) |
426 |
MK_${vv:H}:= yes |
426 |
MK_${vv:H}:= yes |
427 |
.elif defined(WITHOUT_${vv:H}) |
427 |
.elif defined(WITHOUT_${vv:H}) |
428 |
MK_${vv:H}:= no |
428 |
MK_${vv:H}:= no |
429 |
.else |
429 |
.else |
430 |
MK_${vv:H}:= ${MK_${vv:T}} |
430 |
MK_${vv:H}:= ${MK_${vv:T}} |
431 |
.endif |
431 |
.endif |
432 |
.endfor |
432 |
.endfor |
433 |
|
433 |
|
434 |
# |
434 |
# |
435 |
# Set defaults for the MK_*_SUPPORT variables. |
435 |
# Set defaults for the MK_*_SUPPORT variables. |
436 |
# |
436 |
# |
437 |
|
437 |
|
438 |
# |
438 |
# |
439 |
# MK_*_SUPPORT options which default to "yes" unless their corresponding |
439 |
# MK_*_SUPPORT options which default to "yes" unless their corresponding |
440 |
# MK_* variable is set to "no". |
440 |
# MK_* variable is set to "no". |
441 |
# |
441 |
# |
442 |
.for var in \ |
442 |
.for var in \ |
443 |
BLACKLIST \ |
443 |
BLACKLIST \ |
444 |
BZIP2 \ |
444 |
BZIP2 \ |
445 |
GNU \ |
445 |
GNU \ |
446 |
INET \ |
446 |
INET \ |
447 |
INET6 \ |
447 |
INET6 \ |
448 |
KERBEROS \ |
448 |
KERBEROS \ |
449 |
KVM \ |
449 |
KVM \ |
450 |
NETGRAPH \ |
450 |
NETGRAPH \ |
451 |
PAM \ |
451 |
PAM \ |
452 |
TESTS \ |
452 |
TESTS \ |
453 |
WIRELESS |
453 |
WIRELESS |
454 |
.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" |
454 |
.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" |
455 |
MK_${var}_SUPPORT:= no |
455 |
MK_${var}_SUPPORT:= no |
456 |
.else |
456 |
.else |
457 |
MK_${var}_SUPPORT:= yes |
457 |
MK_${var}_SUPPORT:= yes |
458 |
.endif |
458 |
.endif |
459 |
.endfor |
459 |
.endfor |
460 |
|
460 |
|
461 |
.if !${COMPILER_FEATURES:Mc++11} |
461 |
.if !${COMPILER_FEATURES:Mc++11} |
462 |
MK_LLDB:= no |
462 |
MK_LLDB:= no |
463 |
.endif |
463 |
.endif |
464 |
|
464 |
|
465 |
# gcc 4.8 and newer supports libc++, so suppress gnuc++ in that case. |
465 |
# gcc 4.8 and newer supports libc++, so suppress gnuc++ in that case. |
466 |
# while in theory we could build it with that, we don't want to do |
466 |
# while in theory we could build it with that, we don't want to do |
467 |
# that since it creates too much confusion for too little gain. |
467 |
# that since it creates too much confusion for too little gain. |
468 |
# XXX: This is incomplete and needs X_COMPILER_TYPE/VERSION checks too |
468 |
# XXX: This is incomplete and needs X_COMPILER_TYPE/VERSION checks too |
469 |
# to prevent Makefile.inc1 from bootstrapping unneeded dependencies |
469 |
# to prevent Makefile.inc1 from bootstrapping unneeded dependencies |
470 |
# and to support 'make delete-old' when supplying an external toolchain. |
470 |
# and to support 'make delete-old' when supplying an external toolchain. |
471 |
.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40800 |
471 |
.if ${COMPILER_TYPE} == "gcc" && ${COMPILER_VERSION} >= 40800 |
472 |
MK_GNUCXX:=no |
472 |
MK_GNUCXX:=no |
473 |
MK_GCC:=no |
473 |
MK_GCC:=no |
474 |
.endif |
474 |
.endif |
475 |
|
475 |
|
476 |
.endif # !target(__<src.opts.mk>__) |
476 |
.endif # !target(__<src.opts.mk>__) |