bsd.own.mk revision 243392
1135446Strhodes# $FreeBSD: head/share/mk/bsd.own.mk 243392 2012-11-22 04:50:42Z sjg $
2218384Sdougb#
3135446Strhodes# The include file <bsd.own.mk> set common variables for owner,
4135446Strhodes# group, mode, and directories. Defaults are in brackets.
5193149Sdougb#
6135446Strhodes#
7135446Strhodes# +++ variables +++
8135446Strhodes#
9135446Strhodes# DESTDIR	Change the tree where the file gets installed. [not set]
10135446Strhodes#
11135446Strhodes# DISTDIR	Change the tree where the file for a distribution
12135446Strhodes# 		gets installed (see /usr/src/release/Makefile). [not set]
13135446Strhodes#
14135446Strhodes# COMPRESS_CMD	Program to compress documents.
15135446Strhodes#		Output is to stdout. [gzip -cn]
16135446Strhodes#
17135446Strhodes# COMPRESS_EXT	File name extension of ${COMPRESS_CMD} command. [.gz]
18234010Sdougb#
19135446Strhodes# BINOWN	Binary owner. [root]
20170222Sdougb#
21170222Sdougb# BINGRP	Binary group. [wheel]
22135446Strhodes#
23135446Strhodes# BINMODE	Binary mode. [555]
24170222Sdougb#
25170222Sdougb# NOBINMODE	Mode for non-executable files. [444]
26170222Sdougb#
27170222Sdougb# LIBDIR	Base path for libraries. [/usr/lib]
28135446Strhodes#
29135446Strhodes# LIBCOMPATDIR	Base path for compat libraries. [/usr/lib/compat]
30135446Strhodes#
31135446Strhodes# LIBDATADIR	Base path for misc. utility data files. [/usr/libdata]
32135446Strhodes#
33135446Strhodes# LIBEXECDIR	Base path for system daemons and utilities. [/usr/libexec]
34135446Strhodes#
35135446Strhodes# LINTLIBDIR	Base path for lint libraries. [/usr/libdata/lint]
36135446Strhodes#
37135446Strhodes# SHLIBDIR	Base path for shared libraries. [${LIBDIR}]
38135446Strhodes#
39135446Strhodes# LIBOWN	Library owner. [${BINOWN}]
40135446Strhodes#
41135446Strhodes# LIBGRP	Library group. [${BINGRP}]
42135446Strhodes#
43135446Strhodes# LIBMODE	Library mode. [${NOBINMODE}]
44135446Strhodes#
45135446Strhodes#
46135446Strhodes# KMODDIR	Base path for loadable kernel modules
47135446Strhodes#		(see kld(4)). [/boot/kernel]
48135446Strhodes#
49135446Strhodes# KMODOWN	Kernel and KLD owner. [${BINOWN}]
50135446Strhodes#
51135446Strhodes# KMODGRP	Kernel and KLD group. [${BINGRP}]
52135446Strhodes#
53135446Strhodes# KMODMODE	KLD mode. [${BINMODE}]
54135446Strhodes#
55135446Strhodes#
56135446Strhodes# SHAREDIR	Base path for architecture-independent ascii
57135446Strhodes#		text files. [/usr/share]
58135446Strhodes#
59135446Strhodes# SHAREOWN	ASCII text file owner. [root]
60135446Strhodes#
61170222Sdougb# SHAREGRP	ASCII text file group. [wheel]
62170222Sdougb#
63135446Strhodes# SHAREMODE	ASCII text file mode. [${NOBINMODE}]
64135446Strhodes#
65170222Sdougb#
66135446Strhodes# CONFDIR	Base path for configuration files. [/etc]
67170222Sdougb#
68135446Strhodes# CONFOWN	Configuration file owner. [root]
69135446Strhodes#
70170222Sdougb# CONFGRP	Configuration file group. [wheel]
71135446Strhodes#
72135446Strhodes# CONFMODE	Configuration file mode. [644]
73135446Strhodes#
74135446Strhodes#
75135446Strhodes# DOCDIR	Base path for system documentation (e.g. PSD, USD,
76135446Strhodes#		handbook, FAQ etc.). [${SHAREDIR}/doc]
77170222Sdougb#
78135446Strhodes# DOCOWN	Documentation owner. [${SHAREOWN}]
79135446Strhodes#
80135446Strhodes# DOCGRP	Documentation group. [${SHAREGRP}]
81135446Strhodes#
82170222Sdougb# DOCMODE	Documentation mode. [${NOBINMODE}]
83135446Strhodes#
84135446Strhodes#
85135446Strhodes# INFODIR	Base path for GNU's hypertext system
86135446Strhodes#		called Info (see info(1)). [${SHAREDIR}/info]
87135446Strhodes#
88135446Strhodes# INFOOWN	Info owner. [${SHAREOWN}]
89135446Strhodes#
90135446Strhodes# INFOGRP	Info group. [${SHAREGRP}]
91170222Sdougb#
92135446Strhodes# INFOMODE	Info mode. [${NOBINMODE}]
93170222Sdougb#
94170222Sdougb#
95170222Sdougb# MANDIR	Base path for manual installation. [${SHAREDIR}/man/man]
96170222Sdougb#
97170222Sdougb# MANOWN	Manual owner. [${SHAREOWN}]
98135446Strhodes#
99135446Strhodes# MANGRP	Manual group. [${SHAREGRP}]
100135446Strhodes#
101135446Strhodes# MANMODE	Manual mode. [${NOBINMODE}]
102135446Strhodes#
103135446Strhodes#
104135446Strhodes# NLSDIR	Base path for National Language Support files
105135446Strhodes#		installation. [${SHAREDIR}/nls]
106135446Strhodes#
107135446Strhodes# NLSOWN	National Language Support files owner. [${SHAREOWN}]
108135446Strhodes#
109135446Strhodes# NLSGRP	National Language Support files group. [${SHAREGRP}]
110135446Strhodes#
111135446Strhodes# NLSMODE	National Language Support files mode. [${NOBINMODE}]
112135446Strhodes#
113170222Sdougb# INCLUDEDIR	Base path for standard C include files [/usr/include]
114135446Strhodes
115170222Sdougb.if !target(__<bsd.own.mk>__)
116170222Sdougb__<bsd.own.mk>__:
117170222Sdougb
118170222Sdougb.if !defined(_WITHOUT_SRCCONF)
119170222SdougbSRCCONF?=	/etc/src.conf
120170222Sdougb.if exists(${SRCCONF})
121135446Strhodes.include "${SRCCONF}"
122135446Strhodes.endif
123135446Strhodes.endif
124135446Strhodes
125135446Strhodes# Binaries
126135446StrhodesBINOWN?=	root
127135446StrhodesBINGRP?=	wheel
128135446StrhodesBINMODE?=	555
129135446StrhodesNOBINMODE?=	444
130135446Strhodes
131135446Strhodes.if defined(MODULES_WITH_WORLD)
132135446StrhodesKMODDIR?=	/boot/modules
133135446Strhodes.else
134135446StrhodesKMODDIR?=	/boot/kernel
135135446Strhodes.endif
136135446StrhodesKMODOWN?=	${BINOWN}
137135446StrhodesKMODGRP?=	${BINGRP}
138135446StrhodesKMODMODE?=	${BINMODE}
139135446Strhodes
140135446StrhodesLIBDIR?=	/usr/lib
141135446StrhodesLIBCOMPATDIR?=	/usr/lib/compat
142135446StrhodesLIBDATADIR?=	/usr/libdata
143135446StrhodesLIBEXECDIR?=	/usr/libexec
144170222SdougbLINTLIBDIR?=	/usr/libdata/lint
145135446StrhodesSHLIBDIR?=	${LIBDIR}
146135446StrhodesLIBOWN?=	${BINOWN}
147135446StrhodesLIBGRP?=	${BINGRP}
148135446StrhodesLIBMODE?=	${NOBINMODE}
149135446Strhodes
150135446Strhodes
151135446Strhodes# Share files
152135446StrhodesSHAREDIR?=	/usr/share
153135446StrhodesSHAREOWN?=	root
154135446StrhodesSHAREGRP?=	wheel
155135446StrhodesSHAREMODE?=	${NOBINMODE}
156135446Strhodes
157135446StrhodesCONFDIR?=	/etc
158170222SdougbCONFOWN?=	root
159170222SdougbCONFGRP?=	wheel
160170222SdougbCONFMODE?=	644
161170222Sdougb
162135446StrhodesMANDIR?=	${SHAREDIR}/man/man
163170222SdougbMANOWN?=	${SHAREOWN}
164170222SdougbMANGRP?=	${SHAREGRP}
165135446StrhodesMANMODE?=	${NOBINMODE}
166135446Strhodes
167135446StrhodesDOCDIR?=	${SHAREDIR}/doc
168135446StrhodesDOCOWN?=	${SHAREOWN}
169135446StrhodesDOCGRP?=	${SHAREGRP}
170135446StrhodesDOCMODE?=	${NOBINMODE}
171135446Strhodes
172170222SdougbINFODIR?=	${SHAREDIR}/info
173135446StrhodesINFOOWN?=	${SHAREOWN}
174170222SdougbINFOGRP?=	${SHAREGRP}
175170222SdougbINFOMODE?=	${NOBINMODE}
176135446Strhodes
177135446StrhodesNLSDIR?=	${SHAREDIR}/nls
178135446StrhodesNLSOWN?=	${SHAREOWN}
179135446StrhodesNLSGRP?=	${SHAREGRP}
180135446StrhodesNLSMODE?=	${NOBINMODE}
181135446Strhodes
182135446StrhodesINCLUDEDIR?=	/usr/include
183135446Strhodes
184135446Strhodes# Common variables
185135446Strhodes.if !defined(DEBUG_FLAGS)
186135446StrhodesSTRIP?=		-s
187135446Strhodes.endif
188135446Strhodes
189135446StrhodesCOMPRESS_CMD?=	gzip -cn
190135446StrhodesCOMPRESS_EXT?=	.gz
191170222Sdougb
192135446Strhodes.if !defined(_WITHOUT_SRCCONF)
193135446Strhodes#
194135446Strhodes# Define MK_* variables (which are either "yes" or "no") for users
195135446Strhodes# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
196135446Strhodes# make(1) environment.
197135446Strhodes# These should be tested with `== "no"' or `!= "no"' in makefiles.
198135446Strhodes# The NO_* variables should only be set by makefiles.
199135446Strhodes#
200135446Strhodes
201135446Strhodes#
202135446Strhodes# Supported NO_* options (if defined, MK_* will be forced to "no",
203135446Strhodes# regardless of user's setting).
204135446Strhodes#
205135446Strhodes.for var in \
206135446Strhodes    CTF \
207135446Strhodes    INSTALLLIB \
208135446Strhodes    MAN \
209135446Strhodes    PROFILE
210135446Strhodes.if defined(NO_${var})
211135446Strhodes.if defined(WITH_${var})
212135446Strhodes.undef WITH_${var}
213135446Strhodes.endif
214135446StrhodesWITHOUT_${var}=
215135446Strhodes.endif
216135446Strhodes.endfor
217135446Strhodes
218135446Strhodes#
219135446Strhodes# Compat NO_* options (same as above, except their use is deprecated).
220135446Strhodes#
221135446Strhodes.if !defined(BURN_BRIDGES)
222170222Sdougb.for var in \
223135446Strhodes    ACPI \
224135446Strhodes    ATM \
225135446Strhodes    AUDIT \
226135446Strhodes    AUTHPF \
227135446Strhodes    BIND \
228135446Strhodes    BIND_DNSSEC \
229135446Strhodes    BIND_ETC \
230135446Strhodes    BIND_LIBS_LWRES \
231135446Strhodes    BIND_MTREE \
232135446Strhodes    BIND_NAMED \
233135446Strhodes    BIND_UTILS \
234135446Strhodes    BLUETOOTH \
235135446Strhodes    BOOT \
236170222Sdougb    CALENDAR \
237135446Strhodes    CPP \
238135446Strhodes    CRYPT \
239135446Strhodes    CVS \
240135446Strhodes    CXX \
241135446Strhodes    DICT \
242135446Strhodes    DYNAMICROOT \
243135446Strhodes    EXAMPLES \
244135446Strhodes    FORTH \
245170222Sdougb    FP_LIBC \
246135446Strhodes    GAMES \
247135446Strhodes    GCOV \
248135446Strhodes    GDB \
249135446Strhodes    GNU \
250135446Strhodes    GPIB \
251135446Strhodes    GROFF \
252135446Strhodes    HTML \
253135446Strhodes    INET6 \
254135446Strhodes    INFO \
255135446Strhodes    IPFILTER \
256135446Strhodes    IPX \
257135446Strhodes    KDUMP \
258135446Strhodes    KERBEROS \
259170222Sdougb    LIB32 \
260135446Strhodes    LIBPTHREAD \
261135446Strhodes    LIBTHR \
262135446Strhodes    LOCALES \
263135446Strhodes    LPR \
264135446Strhodes    MAILWRAPPER \
265135446Strhodes    NETCAT \
266135446Strhodes    NIS \
267135446Strhodes    NLS \
268170222Sdougb    NLS_CATALOGS \
269135446Strhodes    NS_CACHING \
270135446Strhodes    OPENSSH \
271135446Strhodes    OPENSSL \
272135446Strhodes    PAM \
273135446Strhodes    PF \
274135446Strhodes    RCMDS \
275135446Strhodes    RCS \
276135446Strhodes    RESCUE \
277135446Strhodes    SENDMAIL \
278135446Strhodes    SETUID_LOGIN \
279135446Strhodes    SHAREDOCS \
280135446Strhodes    SYSCONS \
281135446Strhodes    TCSH \
282135446Strhodes    TOOLCHAIN \
283135446Strhodes    USB \
284135446Strhodes    WPA_SUPPLICANT_EAPOL
285135446Strhodes.if defined(NO_${var})
286218384Sdougb#.warning NO_${var} is deprecated in favour of WITHOUT_${var}=
287218384SdougbWITHOUT_${var}=
288218384Sdougb.endif
289218384Sdougb.endfor
290218384Sdougb.endif # !defined(BURN_BRIDGES)
291135446Strhodes
292135446Strhodes#
293135446Strhodes# Older-style variables that enabled behaviour when set.
294135446Strhodes#
295135446Strhodes.if defined(YES_HESIOD)
296193149SdougbWITH_HESIOD=
297135446Strhodes.endif
298135446Strhodes.if defined(MAKE_IDEA)
299135446StrhodesWITH_IDEA=
300135446Strhodes.endif
301135446Strhodes
302135446Strhodes__DEFAULT_YES_OPTIONS = \
303135446Strhodes    ACCT \
304135446Strhodes    ACPI \
305135446Strhodes    AMD \
306170222Sdougb    APM \
307135446Strhodes    ASSERT_DEBUG \
308135446Strhodes    AT \
309135446Strhodes    ATF \
310135446Strhodes    ATM \
311135446Strhodes    AUDIT \
312135446Strhodes    AUTHPF \
313135446Strhodes    BIND \
314135446Strhodes    BIND_DNSSEC \
315135446Strhodes    BIND_ETC \
316135446Strhodes    BIND_LIBS_LWRES \
317135446Strhodes    BIND_MTREE \
318135446Strhodes    BIND_NAMED \
319135446Strhodes    BIND_UTILS \
320135446Strhodes    BINUTILS \
321135446Strhodes    BLUETOOTH \
322135446Strhodes    BOOT \
323135446Strhodes    BSD_CPIO \
324135446Strhodes    BSNMP \
325135446Strhodes    SOURCELESS \
326135446Strhodes    SOURCELESS_HOST \
327135446Strhodes    SOURCELESS_UCODE \
328135446Strhodes    BZIP2 \
329135446Strhodes    CALENDAR \
330135446Strhodes    CAPSICUM \
331135446Strhodes    CDDL \
332135446Strhodes    CPP \
333135446Strhodes    CRYPT \
334135446Strhodes    CTM \
335135446Strhodes    CVS \
336135446Strhodes    CXX \
337135446Strhodes    DICT \
338135446Strhodes    DYNAMICROOT \
339135446Strhodes    ED_CRYPTO \
340135446Strhodes    EXAMPLES \
341135446Strhodes    FLOPPY \
342135446Strhodes    FORTH \
343135446Strhodes    FP_LIBC \
344135446Strhodes    FREEBSD_UPDATE \
345135446Strhodes    GAMES \
346135446Strhodes    GCC \
347135446Strhodes    GCOV \
348135446Strhodes    GDB \
349135446Strhodes    GNU \
350135446Strhodes    GPIB \
351135446Strhodes    GPIO \
352135446Strhodes    GROFF \
353135446Strhodes    HTML \
354135446Strhodes    INET \
355135446Strhodes    INET6 \
356135446Strhodes    INFO \
357135446Strhodes    INSTALLLIB \
358135446Strhodes    IPFILTER \
359135446Strhodes    IPFW \
360135446Strhodes    IPX \
361135446Strhodes    JAIL \
362135446Strhodes    KDUMP \
363135446Strhodes    KERBEROS \
364135446Strhodes    KERNEL_SYMBOLS \
365135446Strhodes    KVM \
366135446Strhodes    LEGACY_CONSOLE \
367135446Strhodes    LIB32 \
368135446Strhodes    LIBPTHREAD \
369135446Strhodes    LIBTHR \
370135446Strhodes    LOCALES \
371135446Strhodes    LOCATE \
372135446Strhodes    LPR \
373135446Strhodes    LS_COLORS \
374135446Strhodes    MAIL \
375135446Strhodes    MAILWRAPPER \
376170222Sdougb    MAKE \
377135446Strhodes    MAN \
378135446Strhodes    NDIS \
379135446Strhodes    NETCAT \
380135446Strhodes    NETGRAPH \
381135446Strhodes    NIS \
382135446Strhodes    NLS \
383135446Strhodes    NLS_CATALOGS \
384135446Strhodes    NS_CACHING \
385135446Strhodes    NTP \
386135446Strhodes    OPENSSH \
387135446Strhodes    OPENSSL \
388135446Strhodes    PAM \
389135446Strhodes    PF \
390135446Strhodes    PKGBOOTSTRAP \
391135446Strhodes    PKGTOOLS \
392135446Strhodes    PMC \
393135446Strhodes    PORTSNAP \
394135446Strhodes    PPP \
395135446Strhodes    PROFILE \
396170222Sdougb    QUOTAS \
397135446Strhodes    RCMDS \
398135446Strhodes    RCS \
399135446Strhodes    RESCUE \
400135446Strhodes    ROUTED \
401135446Strhodes    SENDMAIL \
402135446Strhodes    SETUID_LOGIN \
403135446Strhodes    SHAREDOCS \
404135446Strhodes    SSP \
405135446Strhodes    SYSINSTALL \
406135446Strhodes    SYMVER \
407135446Strhodes    SYSCONS \
408135446Strhodes    TCSH \
409135446Strhodes    TELNET \
410135446Strhodes    TEXTPROC \
411135446Strhodes    TOOLCHAIN \
412135446Strhodes    USB \
413135446Strhodes    UTMPX \
414135446Strhodes    WIRELESS \
415135446Strhodes    WPA_SUPPLICANT_EAPOL \
416135446Strhodes    ZFS \
417135446Strhodes    ZONEINFO
418135446Strhodes
419135446Strhodes__DEFAULT_NO_OPTIONS = \
420135446Strhodes    BMAKE \
421135446Strhodes    BSD_GREP \
422135446Strhodes    BIND_IDN \
423135446Strhodes    BIND_LARGE_FILE \
424135446Strhodes    BIND_LIBS \
425135446Strhodes    BIND_SIGCHASE \
426135446Strhodes    BIND_XML \
427135446Strhodes    BSDCONFIG \
428135446Strhodes    CLANG_EXTRAS \
429135446Strhodes    CTF \
430135446Strhodes    HESIOD \
431135446Strhodes    ICONV \
432135446Strhodes    IDEA \
433135446Strhodes    INSTALL_AS_USER \
434135446Strhodes    NAND \
435135446Strhodes    OFED \
436135446Strhodes    SHARED_TOOLCHAIN
437135446Strhodes
438135446Strhodes#
439135446Strhodes# Default behaviour of some options depends on the architecture.  Unfortunately
440135446Strhodes# this means that we have to test TARGET_ARCH (the buildworld case) as well
441135446Strhodes# as MACHINE_ARCH (the non-buildworld case).  Normally TARGET_ARCH is not
442135446Strhodes# used at all in bsd.*.mk, but we have to make an exception here if we want
443135446Strhodes# to allow defaults for some things like clang and fdt to vary by target
444135446Strhodes# architecture.
445135446Strhodes#
446135446Strhodes.if defined(TARGET_ARCH)
447135446Strhodes__T=${TARGET_ARCH}
448135446Strhodes.else
449135446Strhodes__T=${MACHINE_ARCH}
450135446Strhodes.endif
451135446Strhodes# Clang is only for x86 and powerpc right now, by default.
452135446Strhodes.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*}
453135446Strhodes__DEFAULT_YES_OPTIONS+=CLANG
454135446Strhodes.else
455135446Strhodes__DEFAULT_NO_OPTIONS+=CLANG
456135446Strhodes.endif
457135446Strhodes# Clang the default system compiler only on x86.
458135446Strhodes.if ${__T} == "amd64" || ${__T} == "i386"
459135446Strhodes__DEFAULT_YES_OPTIONS+=CLANG_IS_CC
460135446Strhodes.else
461135446Strhodes__DEFAULT_NO_OPTIONS+=CLANG_IS_CC
462135446Strhodes.endif
463135446Strhodes# FDT is needed only for arm, mips and powerpc
464135446Strhodes.if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*}
465135446Strhodes__DEFAULT_YES_OPTIONS+=FDT
466135446Strhodes.else
467135446Strhodes__DEFAULT_NO_OPTIONS+=FDT
468135446Strhodes.endif
469135446Strhodes.undef __T
470135446Strhodes
471135446Strhodes#
472135446Strhodes# MK_* options which default to "yes".
473135446Strhodes#
474135446Strhodes.for var in ${__DEFAULT_YES_OPTIONS}
475135446Strhodes.if defined(WITH_${var}) && defined(WITHOUT_${var})
476135446Strhodes.error WITH_${var} and WITHOUT_${var} can't both be set.
477135446Strhodes.endif
478135446Strhodes.if defined(MK_${var})
479135446Strhodes.error MK_${var} can't be set by a user.
480135446Strhodes.endif
481135446Strhodes.if defined(WITHOUT_${var})
482135446StrhodesMK_${var}:=	no
483135446Strhodes.else
484135446StrhodesMK_${var}:=	yes
485135446Strhodes.endif
486135446Strhodes.endfor
487135446Strhodes.undef __DEFAULT_YES_OPTIONS
488135446Strhodes
489135446Strhodes#
490135446Strhodes# MK_* options which default to "no".
491135446Strhodes#
492135446Strhodes.for var in ${__DEFAULT_NO_OPTIONS}
493135446Strhodes.if defined(WITH_${var}) && defined(WITHOUT_${var})
494135446Strhodes.error WITH_${var} and WITHOUT_${var} can't both be set.
495135446Strhodes.endif
496135446Strhodes.if defined(MK_${var})
497135446Strhodes.error MK_${var} can't be set by a user.
498135446Strhodes.endif
499135446Strhodes.if defined(WITH_${var})
500135446StrhodesMK_${var}:=	yes
501135446Strhodes.else
502135446StrhodesMK_${var}:=	no
503135446Strhodes.endif
504135446Strhodes.endfor
505135446Strhodes.undef __DEFAULT_NO_OPTIONS
506135446Strhodes
507135446Strhodes#
508135446Strhodes# Force some options off if their dependencies are off.
509135446Strhodes# Order is somewhat important.
510135446Strhodes#
511135446Strhodes.if ${MK_LIBPTHREAD} == "no"
512135446StrhodesMK_LIBTHR:=	no
513135446Strhodes.endif
514135446Strhodes
515135446Strhodes.if ${MK_LIBTHR} == "no"
516135446StrhodesMK_BIND:=	no
517135446Strhodes.endif
518135446Strhodes
519135446Strhodes.if ${MK_BIND} == "no"
520135446StrhodesMK_BIND_DNSSEC:= no
521135446StrhodesMK_BIND_ETC:=	no
522135446StrhodesMK_BIND_LIBS:=	no
523135446StrhodesMK_BIND_LIBS_LWRES:= no
524135446StrhodesMK_BIND_MTREE:=	no
525135446StrhodesMK_BIND_NAMED:=	no
526135446StrhodesMK_BIND_UTILS:=	no
527135446Strhodes.endif
528135446Strhodes
529135446Strhodes.if ${MK_BIND_MTREE} == "no"
530135446StrhodesMK_BIND_ETC:=	no
531135446Strhodes.endif
532135446Strhodes
533135446Strhodes.if ${MK_SOURCELESS} == "no"
534135446StrhodesMK_SOURCELESS_HOST:=	no
535135446StrhodesMK_SOURCELESS_UCODE:= no
536135446Strhodes.endif
537135446Strhodes
538135446Strhodes.if ${MK_CDDL} == "no"
539135446StrhodesMK_ZFS:=	no
540135446StrhodesMK_CTF:=	no
541135446Strhodes.endif
542135446Strhodes
543135446Strhodes.if ${MK_CLANG} == "no"
544135446StrhodesMK_CLANG_EXTRAS:= no
545135446Strhodes.endif
546135446Strhodes
547135446Strhodes.if ${MK_CRYPT} == "no"
548135446StrhodesMK_OPENSSL:=	no
549135446StrhodesMK_OPENSSH:=	no
550135446StrhodesMK_KERBEROS:=	no
551135446Strhodes.endif
552135446Strhodes
553135446Strhodes.if ${MK_CXX} == "no"
554135446StrhodesMK_CLANG:=	no
555135446StrhodesMK_GROFF:=	no
556135446Strhodes.endif
557135446Strhodes
558135446Strhodes.if ${MK_MAIL} == "no"
559135446StrhodesMK_MAILWRAPPER:= no
560135446StrhodesMK_SENDMAIL:=	no
561135446Strhodes.endif
562135446Strhodes
563135446Strhodes.if ${MK_NETGRAPH} == "no"
564135446StrhodesMK_ATM:=	no
565135446StrhodesMK_BLUETOOTH:=	no
566135446Strhodes.endif
567135446Strhodes
568135446Strhodes.if ${MK_OPENSSL} == "no"
569135446StrhodesMK_OPENSSH:=	no
570135446StrhodesMK_KERBEROS:=	no
571135446Strhodes.endif
572135446Strhodes
573135446Strhodes.if ${MK_PF} == "no"
574135446StrhodesMK_AUTHPF:=	no
575135446Strhodes.endif
576135446Strhodes
577135446Strhodes.if ${MK_TEXTPROC} == "no"
578135446StrhodesMK_GROFF:=	no
579135446Strhodes.endif
580135446Strhodes
581135446Strhodes.if ${MK_TOOLCHAIN} == "no"
582135446StrhodesMK_BINUTILS:=	no
583135446StrhodesMK_CLANG:=	no
584135446StrhodesMK_GCC:=	no
585135446StrhodesMK_GDB:=	no
586135446Strhodes.endif
587135446Strhodes
588135446Strhodes.if ${MK_CLANG} == "no"
589135446StrhodesMK_CLANG_IS_CC:= no
590135446Strhodes.endif
591135446Strhodes
592135446Strhodes#
593135446Strhodes# Set defaults for the MK_*_SUPPORT variables.
594135446Strhodes#
595135446Strhodes
596135446Strhodes#
597135446Strhodes# MK_*_SUPPORT options which default to "yes" unless their corresponding
598135446Strhodes# MK_* variable is set to "no".
599135446Strhodes#
600135446Strhodes.for var in \
601135446Strhodes    BZIP2 \
602135446Strhodes    GNU \
603135446Strhodes    INET \
604135446Strhodes    INET6 \
605135446Strhodes    IPX \
606135446Strhodes    KERBEROS \
607135446Strhodes    KVM \
608135446Strhodes    NETGRAPH \
609135446Strhodes    PAM \
610135446Strhodes    WIRELESS
611135446Strhodes.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
612135446Strhodes.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
613135446Strhodes.endif
614135446Strhodes.if defined(MK_${var}_SUPPORT)
615135446Strhodes.error MK_${var}_SUPPORT can't be set by a user.
616135446Strhodes.endif
617135446Strhodes.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
618135446StrhodesMK_${var}_SUPPORT:= no
619135446Strhodes.else
620135446StrhodesMK_${var}_SUPPORT:= yes
621135446Strhodes.endif
622135446Strhodes.endfor
623135446Strhodes
624135446Strhodes#
625135446Strhodes# MK_* options whose default value depends on another option.
626135446Strhodes#
627135446Strhodes.for vv in \
628135446Strhodes    GSSAPI/KERBEROS \
629135446Strhodes    MAN_UTILS/MAN
630135446Strhodes.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H})
631135446Strhodes.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set.
632135446Strhodes.endif
633135446Strhodes.if defined(MK_${vv:H})
634135446Strhodes.error MK_${vv:H} can't be set by a user.
635135446Strhodes.endif
636135446Strhodes.if defined(WITH_${vv:H})
637135446StrhodesMK_${vv:H}:=	yes
638135446Strhodes.elif defined(WITHOUT_${vv:H})
639135446StrhodesMK_${vv:H}:=	no
640135446Strhodes.else
641135446StrhodesMK_${vv:H}:=	${MK_${vv:T}}
642135446Strhodes.endif
643135446Strhodes.endfor
644135446Strhodes
645135446Strhodes#
646135446Strhodes# MK_* options that default to "yes" if the compiler is a C++11 compiler.
647135446Strhodes#
648135446Strhodes.include <bsd.compiler.mk>
649135446Strhodes.for var in \
650135446Strhodes    LIBCPLUSPLUS
651135446Strhodes.if defined(WITH_${var}) && defined(WITHOUT_${var})
652135446Strhodes.error WITH_${var} and WITHOUT_${var} can't both be set.
653135446Strhodes.endif
654135446Strhodes.if defined(MK_${var})
655135446Strhodes.error MK_${var} can't be set by a user.
656135446Strhodes.endif
657135446Strhodes.if ${COMPILER_FEATURES:Mc++11}
658135446Strhodes.if defined(WITHOUT_${var})
659135446StrhodesMK_${var}:=	no
660135446Strhodes.else
661135446StrhodesMK_${var}:=	yes
662135446Strhodes.endif
663135446Strhodes.else
664135446Strhodes.if defined(WITH_${var})
665135446StrhodesMK_${var}:=	yes
666135446Strhodes.else
667135446StrhodesMK_${var}:=	no
668135446Strhodes.endif
669135446Strhodes.endif
670135446Strhodes.endfor
671135446Strhodes
672135446Strhodes.if ${MK_CTF} != "no"
673135446StrhodesCTFCONVERT_CMD=	${CTFCONVERT} ${CTFFLAGS} ${.TARGET}
674135446Strhodes.elif defined(MAKE_VERSION) && ${MAKE_VERSION} >= 5201111300
675170222SdougbCTFCONVERT_CMD=
676135446Strhodes.else
677135446StrhodesCTFCONVERT_CMD=	@:
678135446Strhodes.endif 
679135446Strhodes
680135446Strhodes.if ${MK_INSTALL_AS_USER} != "no"
681135446Strhodes_uid!=	id -u
682135446Strhodes.if ${_uid} != 0
683135446Strhodes.if !defined(USER)
684135446StrhodesUSER!=	id -un
685135446Strhodes.endif
686135446Strhodes_gid!=	id -gn
687135446Strhodes.for x in BIN CONF DOC INFO KMOD LIB MAN NLS SHARE
688170222Sdougb$xOWN=	${USER}
689170222Sdougb$xGRP=	${_gid}
690135446Strhodes.endfor
691135446Strhodes.endif
692135446Strhodes.endif
693135446Strhodes
694135446Strhodes.endif # !_WITHOUT_SRCCONF
695135446Strhodes
696135446Strhodes.endif	# !target(__<bsd.own.mk>__)
697135446Strhodes