bsd.own.mk revision 256915
1283425Sdchagin# $FreeBSD: head/share/mk/bsd.own.mk 256915 2013-10-22 15:53:29Z brooks $
2283425Sdchagin#
3283425Sdchagin# The include file <bsd.own.mk> set common variables for owner,
4283425Sdchagin# group, mode, and directories. Defaults are in brackets.
5283425Sdchagin#
6314107Sdchagin#
7283425Sdchagin# +++ variables +++
8283425Sdchagin#
9283425Sdchagin# DESTDIR	Change the tree where the file gets installed. [not set]
10283425Sdchagin#
11283425Sdchagin# DISTDIR	Change the tree where the file for a distribution
12283425Sdchagin# 		gets installed (see /usr/src/release/Makefile). [not set]
13283425Sdchagin#
14283425Sdchagin# COMPRESS_CMD	Program to compress documents.
15283425Sdchagin#		Output is to stdout. [gzip -cn]
16283425Sdchagin#
17283425Sdchagin# COMPRESS_EXT	File name extension of ${COMPRESS_CMD} command. [.gz]
18283425Sdchagin#
19283425Sdchagin# BINOWN	Binary owner. [root]
20283425Sdchagin#
21283425Sdchagin# BINGRP	Binary group. [wheel]
22283425Sdchagin#
23283425Sdchagin# BINMODE	Binary mode. [555]
24283425Sdchagin#
25283425Sdchagin# NOBINMODE	Mode for non-executable files. [444]
26283425Sdchagin#
27283425Sdchagin# LIBDIR	Base path for libraries. [/usr/lib]
28283425Sdchagin#
29283425Sdchagin# LIBCOMPATDIR	Base path for compat libraries. [/usr/lib/compat]
30283425Sdchagin#
31283425Sdchagin# LIBPRIVATEDIR	Base path for private libraries. [/usr/lib/private]
32283425Sdchagin#
33283425Sdchagin# LIBDATADIR	Base path for misc. utility data files. [/usr/libdata]
34283425Sdchagin#
35283425Sdchagin# LIBEXECDIR	Base path for system daemons and utilities. [/usr/libexec]
36283425Sdchagin#
37283425Sdchagin# LINTLIBDIR	Base path for lint libraries. [/usr/libdata/lint]
38283425Sdchagin#
39283425Sdchagin# SHLIBDIR	Base path for shared libraries. [${LIBDIR}]
40283425Sdchagin#
41283425Sdchagin# LIBOWN	Library owner. [${BINOWN}]
42283425Sdchagin#
43283425Sdchagin# LIBGRP	Library group. [${BINGRP}]
44283425Sdchagin#
45283425Sdchagin# LIBMODE	Library mode. [${NOBINMODE}]
46283425Sdchagin#
47283425Sdchagin#
48283425Sdchagin# DEBUGDIR	Base path for standalone debug files. [/usr/lib/debug]
49283425Sdchagin#
50283425Sdchagin# DEBUGMODE	Mode for debug files. [${NOBINMODE}]
51283425Sdchagin#
52283425Sdchagin#
53283425Sdchagin# KMODDIR	Base path for loadable kernel modules
54283425Sdchagin#		(see kld(4)). [/boot/kernel]
55283425Sdchagin#
56283425Sdchagin# KMODOWN	Kernel and KLD owner. [${BINOWN}]
57283425Sdchagin#
58283425Sdchagin# KMODGRP	Kernel and KLD group. [${BINGRP}]
59283425Sdchagin#
60283425Sdchagin# KMODMODE	KLD mode. [${BINMODE}]
61283425Sdchagin#
62283425Sdchagin#
63283425Sdchagin# SHAREDIR	Base path for architecture-independent ascii
64283425Sdchagin#		text files. [/usr/share]
65283425Sdchagin#
66283425Sdchagin# SHAREOWN	ASCII text file owner. [root]
67283425Sdchagin#
68283425Sdchagin# SHAREGRP	ASCII text file group. [wheel]
69283425Sdchagin#
70283425Sdchagin# SHAREMODE	ASCII text file mode. [${NOBINMODE}]
71283425Sdchagin#
72283425Sdchagin#
73283425Sdchagin# CONFDIR	Base path for configuration files. [/etc]
74283425Sdchagin#
75283425Sdchagin# CONFOWN	Configuration file owner. [root]
76283425Sdchagin#
77283425Sdchagin# CONFGRP	Configuration file group. [wheel]
78283425Sdchagin#
79283425Sdchagin# CONFMODE	Configuration file mode. [644]
80283425Sdchagin#
81283425Sdchagin#
82283425Sdchagin# DOCDIR	Base path for system documentation (e.g. PSD, USD,
83283425Sdchagin#		handbook, FAQ etc.). [${SHAREDIR}/doc]
84283425Sdchagin#
85283425Sdchagin# DOCOWN	Documentation owner. [${SHAREOWN}]
86283425Sdchagin#
87283425Sdchagin# DOCGRP	Documentation group. [${SHAREGRP}]
88283425Sdchagin#
89283425Sdchagin# DOCMODE	Documentation mode. [${NOBINMODE}]
90283425Sdchagin#
91283425Sdchagin#
92283425Sdchagin# INFODIR	Base path for GNU's hypertext system
93283425Sdchagin#		called Info (see info(1)). [${SHAREDIR}/info]
94283425Sdchagin#
95283425Sdchagin# INFOOWN	Info owner. [${SHAREOWN}]
96283425Sdchagin#
97283425Sdchagin# INFOGRP	Info group. [${SHAREGRP}]
98283425Sdchagin#
99283425Sdchagin# INFOMODE	Info mode. [${NOBINMODE}]
100283425Sdchagin#
101283425Sdchagin#
102283425Sdchagin# MANDIR	Base path for manual installation. [${SHAREDIR}/man/man]
103283425Sdchagin#
104283425Sdchagin# MANOWN	Manual owner. [${SHAREOWN}]
105283425Sdchagin#
106283425Sdchagin# MANGRP	Manual group. [${SHAREGRP}]
107283425Sdchagin#
108283425Sdchagin# MANMODE	Manual mode. [${NOBINMODE}]
109283425Sdchagin#
110283425Sdchagin#
111283425Sdchagin# NLSDIR	Base path for National Language Support files
112283425Sdchagin#		installation. [${SHAREDIR}/nls]
113283425Sdchagin#
114283425Sdchagin# NLSOWN	National Language Support files owner. [${SHAREOWN}]
115283425Sdchagin#
116283425Sdchagin# NLSGRP	National Language Support files group. [${SHAREGRP}]
117283425Sdchagin#
118283425Sdchagin# NLSMODE	National Language Support files mode. [${NOBINMODE}]
119283425Sdchagin#
120283425Sdchagin# INCLUDEDIR	Base path for standard C include files [/usr/include]
121283425Sdchagin
122283425Sdchagin.if !target(__<bsd.own.mk>__)
123283425Sdchagin__<bsd.own.mk>__:
124283425Sdchagin
125283425Sdchagin.if !defined(_WITHOUT_SRCCONF)
126283425SdchaginSRCCONF?=	/etc/src.conf
127283425Sdchagin.if exists(${SRCCONF}) || ${SRCCONF} != "/etc/src.conf"
128283425Sdchagin.include "${SRCCONF}"
129283425Sdchagin.endif
130283425Sdchagin.endif
131283425Sdchagin
132283425Sdchagin# Binaries
133283425SdchaginBINOWN?=	root
134283425SdchaginBINGRP?=	wheel
135283425SdchaginBINMODE?=	555
136283425SdchaginNOBINMODE?=	444
137283425Sdchagin
138283425Sdchagin.if defined(MODULES_WITH_WORLD)
139283425SdchaginKMODDIR?=	/boot/modules
140283425Sdchagin.else
141283425SdchaginKMODDIR?=	/boot/kernel
142283425Sdchagin.endif
143283425SdchaginKMODOWN?=	${BINOWN}
144283425SdchaginKMODGRP?=	${BINGRP}
145283425SdchaginKMODMODE?=	${BINMODE}
146283425Sdchagin
147283425SdchaginLIBDIR?=	/usr/lib
148283425SdchaginLIBCOMPATDIR?=	/usr/lib/compat
149283425SdchaginLIBPRIVATEDIR?=	/usr/lib/private
150283425SdchaginLIBDATADIR?=	/usr/libdata
151283425SdchaginLIBEXECDIR?=	/usr/libexec
152283425SdchaginLINTLIBDIR?=	/usr/libdata/lint
153283425SdchaginSHLIBDIR?=	${LIBDIR}
154283425SdchaginLIBOWN?=	${BINOWN}
155283425SdchaginLIBGRP?=	${BINGRP}
156283425SdchaginLIBMODE?=	${NOBINMODE}
157283425Sdchagin
158283425SdchaginDEBUGDIR?=	/usr/lib/debug
159283425SdchaginDEBUGMODE?=	${NOBINMODE}
160283425Sdchagin
161283425Sdchagin
162283425Sdchagin# Share files
163283425SdchaginSHAREDIR?=	/usr/share
164283425SdchaginSHAREOWN?=	root
165283425SdchaginSHAREGRP?=	wheel
166283425SdchaginSHAREMODE?=	${NOBINMODE}
167283425Sdchagin
168283425SdchaginCONFDIR?=	/etc
169283425SdchaginCONFOWN?=	root
170283425SdchaginCONFGRP?=	wheel
171283425SdchaginCONFMODE?=	644
172283425Sdchagin
173283425SdchaginMANDIR?=	${SHAREDIR}/man/man
174283425SdchaginMANOWN?=	${SHAREOWN}
175283425SdchaginMANGRP?=	${SHAREGRP}
176283425SdchaginMANMODE?=	${NOBINMODE}
177283425Sdchagin
178283425SdchaginDOCDIR?=	${SHAREDIR}/doc
179283425SdchaginDOCOWN?=	${SHAREOWN}
180283425SdchaginDOCGRP?=	${SHAREGRP}
181283425SdchaginDOCMODE?=	${NOBINMODE}
182283425Sdchagin
183283425SdchaginINFODIR?=	${SHAREDIR}/info
184283425SdchaginINFOOWN?=	${SHAREOWN}
185283425SdchaginINFOGRP?=	${SHAREGRP}
186283425SdchaginINFOMODE?=	${NOBINMODE}
187283425Sdchagin
188283425SdchaginNLSDIR?=	${SHAREDIR}/nls
189283425SdchaginNLSOWN?=	${SHAREOWN}
190283425SdchaginNLSGRP?=	${SHAREGRP}
191283425SdchaginNLSMODE?=	${NOBINMODE}
192283425Sdchagin
193283425SdchaginINCLUDEDIR?=	/usr/include
194283425Sdchagin
195283425Sdchagin#
196283425Sdchagin# install(1) parameters.
197283425Sdchagin#
198283425SdchaginHRDLINK?=	-l h
199283425SdchaginSYMLINK?=	-l s
200283425Sdchagin
201283425SdchaginINSTALL_LINK?=		${INSTALL} ${HRDLINK}
202283425SdchaginINSTALL_SYMLINK?=	${INSTALL} ${SYMLINK}
203283425Sdchagin
204283425Sdchagin# Common variables
205283425Sdchagin.if !defined(DEBUG_FLAGS)
206283425SdchaginSTRIP?=		-s
207283425Sdchagin.endif
208283425Sdchagin
209283425SdchaginCOMPRESS_CMD?=	gzip -cn
210283425SdchaginCOMPRESS_EXT?=	.gz
211283425Sdchagin
212283425Sdchagin.if !defined(_WITHOUT_SRCCONF)
213283425Sdchagin#
214283425Sdchagin# Define MK_* variables (which are either "yes" or "no") for users
215283425Sdchagin# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
216283425Sdchagin# make(1) environment.
217283425Sdchagin# These should be tested with `== "no"' or `!= "no"' in makefiles.
218283425Sdchagin# The NO_* variables should only be set by makefiles.
219283425Sdchagin#
220283425Sdchagin
221283425Sdchagin#
222283425Sdchagin# Supported NO_* options (if defined, MK_* will be forced to "no",
223283425Sdchagin# regardless of user's setting).
224283425Sdchagin#
225283425Sdchagin.for var in \
226283425Sdchagin    CTF \
227283425Sdchagin    DEBUG_FILES \
228283425Sdchagin    INSTALLLIB \
229283425Sdchagin    MAN \
230314107Sdchagin    PROFILE
231283425Sdchagin.if defined(NO_${var})
232283425Sdchagin.if defined(WITH_${var})
233283425Sdchagin.undef WITH_${var}
234283442Sdchagin.endif
235283425SdchaginWITHOUT_${var}=
236283425Sdchagin.endif
237283425Sdchagin.endfor
238283425Sdchagin
239283425Sdchagin#
240283425Sdchagin# Older-style variables that enabled behaviour when set.
241283425Sdchagin#
242283425Sdchagin.if defined(YES_HESIOD)
243283425SdchaginWITH_HESIOD=
244283425Sdchagin.endif
245283425Sdchagin
246283425Sdchagin__DEFAULT_YES_OPTIONS = \
247283425Sdchagin    ACCT \
248283425Sdchagin    ACPI \
249283425Sdchagin    AMD \
250283425Sdchagin    APM \
251283425Sdchagin    ARM_EABI \
252283425Sdchagin    ASSERT_DEBUG \
253283442Sdchagin    AT \
254283442Sdchagin    ATF \
255283425Sdchagin    ATM \
256283425Sdchagin    AUDIT \
257283425Sdchagin    AUTHPF \
258283425Sdchagin    BINUTILS \
259283425Sdchagin    BLUETOOTH \
260283425Sdchagin    BMAKE \
261283425Sdchagin    BOOT \
262283425Sdchagin    BSD_CPIO \
263283425Sdchagin    BSNMP \
264283425Sdchagin    BZIP2 \
265283425Sdchagin    CALENDAR \
266283425Sdchagin    CAPSICUM \
267283425Sdchagin    CDDL \
268283425Sdchagin    CPP \
269283425Sdchagin    CROSS_COMPILER \
270283425Sdchagin    CRYPT \
271283425Sdchagin    CTM \
272283425Sdchagin    CXX \
273283425Sdchagin    DICT \
274283425Sdchagin    DYNAMICROOT \
275283425Sdchagin    ED_CRYPTO \
276283425Sdchagin    EXAMPLES \
277283425Sdchagin    FLOPPY \
278283425Sdchagin    FORMAT_EXTENSIONS \
279283425Sdchagin    FORTH \
280283425Sdchagin    FP_LIBC \
281283425Sdchagin    FREEBSD_UPDATE \
282283425Sdchagin    GAMES \
283283425Sdchagin    GCOV \
284283425Sdchagin    GDB \
285283425Sdchagin    GNU \
286283425Sdchagin    GPIB \
287283425Sdchagin    GPIO \
288283425Sdchagin    GROFF \
289283425Sdchagin    HTML \
290283425Sdchagin    ICONV \
291283425Sdchagin    INET \
292283452Sdchagin    INET6 \
293283425Sdchagin    INFO \
294283425Sdchagin    INSTALLLIB \
295283425Sdchagin    IPFILTER \
296283425Sdchagin    IPFW \
297283425Sdchagin    IPX \
298283425Sdchagin    JAIL \
299283425Sdchagin    KDUMP \
300283425Sdchagin    KERBEROS \
301283482Sdchagin    KERNEL_SYMBOLS \
302283442Sdchagin    KVM \
303283425Sdchagin    LDNS \
304314107Sdchagin    LDNS_UTILS \
305283445Sdchagin    LEGACY_CONSOLE \
306283466Sdchagin    LIB32 \
307283425Sdchagin    LIBPTHREAD \
308283425Sdchagin    LIBTHR \
309283425Sdchagin    LOCALES \
310283425Sdchagin    LOCATE \
311283445Sdchagin    LPR \
312283442Sdchagin    LS_COLORS \
313283425Sdchagin    MAIL \
314283425Sdchagin    MAILWRAPPER \
315314107Sdchagin    MAKE \
316314107Sdchagin    MAN \
317314107Sdchagin    NDIS \
318314107Sdchagin    NETCAT \
319283425Sdchagin    NETGRAPH \
320283489Sdchagin    NIS \
321283425Sdchagin    NLS \
322283425Sdchagin    NLS_CATALOGS \
323283425Sdchagin    NS_CACHING \
324283425Sdchagin    NTP \
325283425Sdchagin    OPENSSH \
326283425Sdchagin    OPENSSL \
327283493Sdchagin    PAM \
328283489Sdchagin    PC_SYSINSTALL \
329314107Sdchagin    PF \
330314107Sdchagin    PKGBOOTSTRAP \
331314107Sdchagin    PMC \
332314107Sdchagin    PORTSNAP \
333314107Sdchagin    PPP \
334314107Sdchagin    PROFILE \
335314107Sdchagin    QUOTAS \
336314107Sdchagin    RCMDS \
337314107Sdchagin    RCS \
338314107Sdchagin    RESCUE \
339314107Sdchagin    ROUTED \
340314107Sdchagin    SENDMAIL \
341314107Sdchagin    SETUID_LOGIN \
342314107Sdchagin    SHAREDOCS \
343314107Sdchagin    SOURCELESS \
344314107Sdchagin    SOURCELESS_HOST \
345314107Sdchagin    SOURCELESS_UCODE \
346314107Sdchagin    SSP \
347314107Sdchagin    SVNLITE \
348314107Sdchagin    SYMVER \
349314107Sdchagin    SYSCONS \
350314107Sdchagin    SYSINSTALL \
351314107Sdchagin    TCSH \
352314107Sdchagin    TELNET \
353314107Sdchagin    TEXTPROC \
354283425Sdchagin    TOOLCHAIN \
355    UNBOUND \
356    USB \
357    UTMPX \
358    WIRELESS \
359    WPA_SUPPLICANT_EAPOL \
360    ZFS \
361    ZONEINFO
362
363__DEFAULT_NO_OPTIONS = \
364    BSD_GREP \
365    CLANG_EXTRAS \
366    CTF \
367    DEBUG_FILES \
368    GPL_DTC \
369    HESIOD \
370    LIBICONV_COMPAT \
371    INSTALL_AS_USER \
372    LLDB \
373    NMTREE \
374    NAND \
375    OFED \
376    OPENSSH_NONE_CIPHER \
377    PKGTOOLS \
378    SHARED_TOOLCHAIN \
379    SVN \
380    USB_GADGET_EXAMPLES
381
382#
383# Default behaviour of some options depends on the architecture.  Unfortunately
384# this means that we have to test TARGET_ARCH (the buildworld case) as well
385# as MACHINE_ARCH (the non-buildworld case).  Normally TARGET_ARCH is not
386# used at all in bsd.*.mk, but we have to make an exception here if we want
387# to allow defaults for some things like clang and fdt to vary by target
388# architecture.
389#
390.if defined(TARGET_ARCH)
391__T=${TARGET_ARCH}
392.else
393__T=${MACHINE_ARCH}
394.endif
395.if defined(TARGET)
396__TT=${TARGET}
397.else
398__TT=${MACHINE}
399.endif
400# Clang is only for x86, powerpc and little-endian arm right now, by default.
401.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*}
402__DEFAULT_YES_OPTIONS+=CLANG CLANG_FULL
403.elif ${__T} == "arm" || ${__T} == "armv6"
404__DEFAULT_YES_OPTIONS+=CLANG
405# GCC is unable to build the full clang on arm, disable it by default.
406__DEFAULT_NO_OPTIONS+=CLANG_FULL
407.else
408__DEFAULT_NO_OPTIONS+=CLANG CLANG_FULL
409.endif
410# Clang the default system compiler only on little-endian arm and x86.
411.if ${__T} == "amd64" || ${__T} == "arm" || ${__T} == "armv6" || \
412    ${__T} == "i386"
413__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
414# The pc98 bootloader requires gcc to build and so we must leave gcc enabled
415# for pc98 for now.
416.if ${__TT} == "pc98"
417__DEFAULT_NO_OPTIONS+=GNUCXX
418__DEFAULT_YES_OPTIONS+=GCC
419.else
420__DEFAULT_NO_OPTIONS+=GCC GNUCXX
421.endif
422# The libc++ headers use c++11 extensions.  These are normally silenced because
423# they are treated as system headers, but we explicitly disable that warning
424# suppression when building the base system to catch bugs in our headers.
425# Eventually we'll want to start building the base system C++ code as C++11,
426# but not yet.
427_COMPVERSION!= ${CC} --version
428.if ${_COMPVERSION:Mclang}
429CXXFLAGS+=	-Wno-c++11-extensions
430.endif
431.else
432# If clang is not cc, then build gcc by default
433__DEFAULT_NO_OPTIONS+=CLANG_IS_CC
434__DEFAULT_YES_OPTIONS+=GCC
435# And if g++ is c++, build the rest of the GNU C++ stack
436.if defined(WITHOUT_CXX)
437__DEFAULT_NO_OPTIONS+=GNUCXX
438.else
439__DEFAULT_YES_OPTIONS+=GNUCXX
440.endif
441.endif
442# FDT is needed only for arm, mips and powerpc
443.if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*}
444__DEFAULT_YES_OPTIONS+=FDT
445.else
446__DEFAULT_NO_OPTIONS+=FDT
447.endif
448.undef __T
449
450#
451# MK_* options which default to "yes".
452#
453.for var in ${__DEFAULT_YES_OPTIONS}
454.if defined(WITH_${var}) && defined(WITHOUT_${var})
455.error WITH_${var} and WITHOUT_${var} can't both be set.
456.endif
457.if defined(MK_${var})
458.error MK_${var} can't be set by a user.
459.endif
460.if defined(WITHOUT_${var})
461MK_${var}:=	no
462.else
463MK_${var}:=	yes
464.endif
465.endfor
466.undef __DEFAULT_YES_OPTIONS
467
468#
469# MK_* options which default to "no".
470#
471.for var in ${__DEFAULT_NO_OPTIONS}
472.if defined(WITH_${var}) && defined(WITHOUT_${var})
473.error WITH_${var} and WITHOUT_${var} can't both be set.
474.endif
475.if defined(MK_${var})
476.error MK_${var} can't be set by a user.
477.endif
478.if defined(WITH_${var})
479MK_${var}:=	yes
480.else
481MK_${var}:=	no
482.endif
483.endfor
484.undef __DEFAULT_NO_OPTIONS
485
486#
487# Force some options off if their dependencies are off.
488# Order is somewhat important.
489#
490.if ${MK_LIBPTHREAD} == "no"
491MK_LIBTHR:=	no
492.endif
493
494.if ${MK_ICONV} == "no"
495MK_LIBICONV_COMPAT:=	no
496.endif
497
498.if ${MK_LDNS} == "no"
499MK_LDNS_UTILS:=	no
500MK_UNBOUND:= no
501.endif
502
503.if ${MK_SOURCELESS} == "no"
504MK_SOURCELESS_HOST:=	no
505MK_SOURCELESS_UCODE:= no
506.endif
507
508.if ${MK_CDDL} == "no"
509MK_ZFS:=	no
510MK_CTF:=	no
511.endif
512
513.if ${MK_CRYPT} == "no"
514MK_OPENSSL:=	no
515MK_OPENSSH:=	no
516MK_KERBEROS:=	no
517.endif
518
519.if ${MK_CXX} == "no"
520MK_CLANG:=	no
521MK_GROFF:=	no
522.endif
523
524.if ${MK_MAIL} == "no"
525MK_MAILWRAPPER:= no
526MK_SENDMAIL:=	no
527.endif
528
529.if ${MK_NETGRAPH} == "no"
530MK_ATM:=	no
531MK_BLUETOOTH:=	no
532.endif
533
534.if ${MK_OPENSSL} == "no"
535MK_OPENSSH:=	no
536MK_KERBEROS:=	no
537.endif
538
539.if ${MK_PF} == "no"
540MK_AUTHPF:=	no
541.endif
542
543.if ${MK_TEXTPROC} == "no"
544MK_GROFF:=	no
545.endif
546
547.if ${MK_TOOLCHAIN} == "no"
548MK_BINUTILS:=	no
549MK_CLANG:=	no
550MK_GCC:=	no
551MK_GDB:=	no
552.endif
553
554.if ${MK_CLANG} == "no"
555MK_CLANG_EXTRAS:= no
556MK_CLANG_FULL:= no
557.endif
558
559.if ${MK_CLANG_IS_CC} == "no"
560MK_LLDB:= no
561.endif
562
563#
564# Set defaults for the MK_*_SUPPORT variables.
565#
566
567#
568# MK_*_SUPPORT options which default to "yes" unless their corresponding
569# MK_* variable is set to "no".
570#
571.for var in \
572    BZIP2 \
573    GNU \
574    INET \
575    INET6 \
576    IPX \
577    KERBEROS \
578    KVM \
579    NETGRAPH \
580    PAM \
581    WIRELESS
582.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
583.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
584.endif
585.if defined(MK_${var}_SUPPORT)
586.error MK_${var}_SUPPORT can't be set by a user.
587.endif
588.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
589MK_${var}_SUPPORT:= no
590.else
591MK_${var}_SUPPORT:= yes
592.endif
593.endfor
594
595#
596# MK_* options whose default value depends on another option.
597#
598.for vv in \
599    GSSAPI/KERBEROS \
600    MAN_UTILS/MAN
601.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H})
602.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set.
603.endif
604.if defined(MK_${vv:H})
605.error MK_${vv:H} can't be set by a user.
606.endif
607.if defined(WITH_${vv:H})
608MK_${vv:H}:=	yes
609.elif defined(WITHOUT_${vv:H})
610MK_${vv:H}:=	no
611.else
612MK_${vv:H}:=	${MK_${vv:T}}
613.endif
614.endfor
615
616#
617# MK_* options that default to "yes" if the compiler is a C++11 compiler.
618#
619.include <bsd.compiler.mk>
620.for var in \
621    LIBCPLUSPLUS
622.if defined(WITH_${var}) && defined(WITHOUT_${var})
623.error WITH_${var} and WITHOUT_${var} can't both be set.
624.endif
625.if defined(MK_${var})
626.error MK_${var} can't be set by a user.
627.endif
628.if ${COMPILER_FEATURES:Mc++11}
629.if defined(WITHOUT_${var})
630MK_${var}:=	no
631.else
632MK_${var}:=	yes
633.endif
634.else
635.if defined(WITH_${var})
636MK_${var}:=	yes
637.else
638MK_${var}:=	no
639.endif
640.endif
641.endfor
642
643.if ${MK_CTF} != "no"
644CTFCONVERT_CMD=	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
645.elif defined(.PARSEDIR) || (defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300)
646CTFCONVERT_CMD=
647.else
648CTFCONVERT_CMD=	@:
649.endif 
650
651.if ${MK_INSTALL_AS_USER} != "no"
652_uid!=	id -u
653.if ${_uid} != 0
654.if !defined(USER)
655USER!=	id -un
656.endif
657_gid!=	id -gn
658.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE
659$xOWN=	${USER}
660$xGRP=	${_gid}
661.endfor
662.endif
663.endif
664
665.endif # !_WITHOUT_SRCCONF
666
667.endif	# !target(__<bsd.own.mk>__)
668