bsd.own.mk revision 162846
154359Sroberto# $FreeBSD: head/share/mk/bsd.own.mk 162846 2006-09-30 11:32:46Z ru $
2182007Sroberto#
354359Sroberto# The include file <bsd.own.mk> set common variables for owner,
4182007Sroberto# group, mode, and directories. Defaults are in brackets.
554359Sroberto#
654359Sroberto#
754359Sroberto# +++ variables +++
854359Sroberto#
954359Sroberto# DESTDIR	Change the tree where the file gets installed. [not set]
1054359Sroberto#
1154359Sroberto# DISTDIR	Change the tree where the file for a distribution
1254359Sroberto# 		gets installed (see /usr/src/release/Makefile). [not set]
1354359Sroberto#
1454359Sroberto# COMPRESS_CMD	Program to compress documents.
1554359Sroberto#		Output is to stdout. [gzip -cn]
1682498Sroberto#
1754359Sroberto# COMPRESS_EXT	File name extension of ${COMPRESS_CMD} command. [.gz]
1854359Sroberto#
1954359Sroberto# BINOWN	Binary owner. [root]
2054359Sroberto#
2154359Sroberto# BINGRP	Binary group. [wheel]
2254359Sroberto#
2354359Sroberto# BINMODE	Binary mode. [555]
2454359Sroberto#
2554359Sroberto# NOBINMODE	Mode for non-executable files. [444]
2654359Sroberto#
2754359Sroberto# LIBDIR	Base path for libraries. [/usr/lib]
2854359Sroberto#
2954359Sroberto# LIBCOMPATDIR	Base path for compat libraries. [/usr/lib/compat]
3054359Sroberto#
3154359Sroberto# LIBDATADIR	Base path for misc. utility data files. [/usr/libdata]
3254359Sroberto#
3354359Sroberto# LINTLIBDIR	Base path for lint libraries. [/usr/libdata/lint]
3454359Sroberto#
3554359Sroberto# SHLIBDIR	Base path for shared libraries. [${LIBDIR}]
3654359Sroberto#
3754359Sroberto# LIBOWN	Library owner. [${BINOWN}]
3854359Sroberto#
3954359Sroberto# LIBGRP	Library group. [${BINGRP}]
4054359Sroberto#
4154359Sroberto# LIBMODE	Library mode. [${NOBINMODE}]
4254359Sroberto#
4354359Sroberto#
4454359Sroberto# KMODDIR	Base path for loadable kernel modules
4554359Sroberto#		(see kld(4)). [/boot/kernel]
4654359Sroberto#
4754359Sroberto# KMODOWN	KLD owner. [${BINOWN}]
4854359Sroberto#
4954359Sroberto# KMODGRP	KLD group. [${BINGRP}]
5054359Sroberto#
5154359Sroberto# KMODMODE	KLD mode. [${BINMODE}]
5254359Sroberto#
5354359Sroberto#
5454359Sroberto# SHAREDIR	Base path for architecture-independent ascii
5554359Sroberto#		text files. [/usr/share]
5654359Sroberto#
5754359Sroberto# SHAREOWN	ASCII text file owner. [root]
5854359Sroberto#
5954359Sroberto# SHAREGRP	ASCII text file group. [wheel]
6054359Sroberto#
6154359Sroberto# SHAREMODE	ASCII text file mode. [${NOBINMODE}]
6254359Sroberto#
6354359Sroberto#
6454359Sroberto# DOCDIR	Base path for system documentation (e.g. PSD, USD,
6554359Sroberto#		handbook, FAQ etc.). [${SHAREDIR}/doc]
6654359Sroberto#
6754359Sroberto# DOCOWN	Documentation owner. [${SHAREOWN}]
6854359Sroberto#
6954359Sroberto# DOCGRP	Documentation group. [${SHAREGRP}]
7054359Sroberto#
7154359Sroberto# DOCMODE	Documentation mode. [${NOBINMODE}]
7254359Sroberto#
7354359Sroberto#
7454359Sroberto# INFODIR	Base path for GNU's hypertext system
7554359Sroberto#		called Info (see info(1)). [${SHAREDIR}/info]
7654359Sroberto#
7754359Sroberto# INFOOWN	Info owner. [${SHAREOWN}]
7854359Sroberto#
7954359Sroberto# INFOGRP	Info group. [${SHAREGRP}]
8054359Sroberto#
8154359Sroberto# INFOMODE	Info mode. [${NOBINMODE}]
8254359Sroberto#
8354359Sroberto#
8454359Sroberto# MANDIR	Base path for manual installation. [${SHAREDIR}/man/man]
8554359Sroberto#
8654359Sroberto# MANOWN	Manual owner. [${SHAREOWN}]
8754359Sroberto#
8854359Sroberto# MANGRP	Manual group. [${SHAREGRP}]
8954359Sroberto#
9054359Sroberto# MANMODE	Manual mode. [${NOBINMODE}]
9154359Sroberto#
9254359Sroberto#
9354359Sroberto# NLSDIR	Base path for National Language Support files
9482498Sroberto#		installation. [${SHAREDIR}/nls]
9582498Sroberto#
9654359Sroberto# NLSOWN	National Language Support files owner. [${SHAREOWN}]
9782498Sroberto#
9854359Sroberto# NLSGRP	National Language Support files group. [${SHAREGRP}]
9954359Sroberto#
10054359Sroberto# NLSMODE	National Language Support files mode. [${NOBINMODE}]
10154359Sroberto#
10254359Sroberto# INCLUDEDIR	Base path for standard C include files [/usr/include]
10354359Sroberto
10454359Sroberto.if !target(__<bsd.own.mk>__)
10554359Sroberto__<bsd.own.mk>__:
10654359Sroberto
10754359SrobertoSRCCONF?=	/etc/src.conf
10854359Sroberto.if exists(${SRCCONF})
10954359Sroberto.include "${SRCCONF}"
11054359Sroberto.endif
11154359Sroberto
11254359Sroberto# Binaries
11354359SrobertoBINOWN?=	root
11454359SrobertoBINGRP?=	wheel
11554359SrobertoBINMODE?=	555
11654359SrobertoNOBINMODE?=	444
11754359Sroberto
11854359Sroberto.if defined(MODULES_WITH_WORLD)
11954359SrobertoKMODDIR?=	/boot/modules
12054359Sroberto.else
12154359SrobertoKMODDIR?=	/boot/kernel
12254359Sroberto.endif
12354359SrobertoKMODOWN?=	${BINOWN}
12454359SrobertoKMODGRP?=	${BINGRP}
12554359SrobertoKMODMODE?=	${BINMODE}
12654359Sroberto
12754359SrobertoLIBDIR?=	/usr/lib
12854359SrobertoLIBCOMPATDIR?=	/usr/lib/compat
12954359SrobertoLIBDATADIR?=	/usr/libdata
13054359SrobertoLINTLIBDIR?=	/usr/libdata/lint
13154359SrobertoSHLIBDIR?=	${LIBDIR}
13254359SrobertoLIBOWN?=	${BINOWN}
13354359SrobertoLIBGRP?=	${BINGRP}
13454359SrobertoLIBMODE?=	${NOBINMODE}
13554359Sroberto
13654359Sroberto
13782498Sroberto# Share files
13854359SrobertoSHAREDIR?=	/usr/share
13954359SrobertoSHAREOWN?=	root
14054359SrobertoSHAREGRP?=	wheel
14154359SrobertoSHAREMODE?=	${NOBINMODE}
14254359Sroberto
14354359SrobertoMANDIR?=	${SHAREDIR}/man/man
14454359SrobertoMANOWN?=	${SHAREOWN}
14554359SrobertoMANGRP?=	${SHAREGRP}
14654359SrobertoMANMODE?=	${NOBINMODE}
14754359Sroberto
14854359SrobertoDOCDIR?=	${SHAREDIR}/doc
14954359SrobertoDOCOWN?=	${SHAREOWN}
15054359SrobertoDOCGRP?=	${SHAREGRP}
15154359SrobertoDOCMODE?=	${NOBINMODE}
15254359Sroberto
15354359SrobertoINFODIR?=	${SHAREDIR}/info
15454359SrobertoINFOOWN?=	${SHAREOWN}
15554359SrobertoINFOGRP?=	${SHAREGRP}
15654359SrobertoINFOMODE?=	${NOBINMODE}
15754359Sroberto
15854359SrobertoNLSDIR?=	${SHAREDIR}/nls
15954359SrobertoNLSOWN?=	${SHAREOWN}
16054359SrobertoNLSGRP?=	${SHAREGRP}
16154359SrobertoNLSMODE?=	${NOBINMODE}
16254359Sroberto
16354359SrobertoINCLUDEDIR?=	/usr/include
16454359Sroberto
16554359Sroberto# Common variables
16654359Sroberto.if !defined(DEBUG_FLAGS)
16754359SrobertoSTRIP?=		-s
16854359Sroberto.endif
16954359Sroberto
17054359SrobertoCOMPRESS_CMD?=	gzip -cn
17154359SrobertoCOMPRESS_EXT?=	.gz
17254359Sroberto
17354359Sroberto#
17454359Sroberto# Define MK_* variables (which are either "yes" or "no") for users
17554359Sroberto# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
17654359Sroberto# make(1) environment.
17754359Sroberto# These should be tested with `== "no"' or `!= "no"' in makefiles.
17854359Sroberto# The NO_* variables should only be set by makefiles.
17954359Sroberto#
18054359Sroberto
18154359Sroberto#
182# Supported NO_* options (if defined, MK_* will be forced to "no",
183# regardless of user's setting).
184#
185.for var in \
186    MAN \
187    PROFILE
188.if defined(NO_${var})
189WITHOUT_${var}=
190.endif
191.endfor
192
193#
194# Compat NO_* options (same as above, except their use is deprecated).
195#
196.if !defined(BURN_BRIDGES)
197.for var in \
198    ACPI \
199    ATM \
200    AUDIT \
201    AUTHPF \
202    BIND \
203    BIND_DNSSEC \
204    BIND_ETC \
205    BIND_LIBS_LWRES \
206    BIND_MTREE \
207    BIND_NAMED \
208    BIND_UTILS \
209    BLUETOOTH \
210    BOOT \
211    CALENDAR \
212    CPP \
213    CRYPT \
214    CVS \
215    CXX \
216    DICT \
217    DYNAMICROOT \
218    EXAMPLES \
219    FORTH \
220    FORTRAN \
221    FP_LIBC \
222    GAMES \
223    GCOV \
224    GDB \
225    GNU \
226    GPIB \
227    GROFF \
228    HTML \
229    I4B \
230    INET6 \
231    INFO \
232    IPFILTER \
233    IPX \
234    KERBEROS \
235    LIB32 \
236    LIBPTHREAD \
237    LIBTHR \
238    LOCALES \
239    LPR \
240    MAILWRAPPER \
241    NETCAT \
242    NIS \
243    NLS \
244    NLS_CATALOGS \
245    NS_CACHING \
246    OBJC \
247    OPENSSH \
248    OPENSSL \
249    PAM \
250    PF \
251    RCMDS \
252    RCS \
253    RESCUE \
254    SENDMAIL \
255    SETUID_LOGIN \
256    SHAREDOCS \
257    SYSCONS \
258    TCSH \
259    TOOLCHAIN \
260    USB \
261    WPA_SUPPLICANT_EAPOL
262.if defined(NO_${var})
263#.warning NO_${var} is deprecated in favour of WITHOUT_${var}=
264WITHOUT_${var}=
265.endif
266.endfor
267.endif # !defined(BURN_BRIDGES)
268
269#
270# Older-style variables that enabled behaviour when set.
271#
272.if defined(YES_HESIOD)
273WITH_HESIOD=
274.endif
275.if defined(MAKE_IDEA)
276WITH_IDEA=
277.endif
278
279#
280# MK_* options which default to "yes".
281#
282.for var in \
283    ACPI \
284    ASSERT_DEBUG \
285    ATM \
286    AUDIT \
287    AUTHPF \
288    BIND \
289    BIND_DNSSEC \
290    BIND_ETC \
291    BIND_LIBS_LWRES \
292    BIND_MTREE \
293    BIND_NAMED \
294    BIND_UTILS \
295    BLUETOOTH \
296    BOOT \
297    CALENDAR \
298    CPP \
299    CRYPT \
300    CVS \
301    CXX \
302    DICT \
303    DYNAMICROOT \
304    EXAMPLES \
305    FORTH \
306    FORTRAN \
307    FP_LIBC \
308    GAMES \
309    GCOV \
310    GDB \
311    GNU \
312    GPIB \
313    GROFF \
314    HTML \
315    I4B \
316    INET6 \
317    INFO \
318    IPFILTER \
319    IPX \
320    KERBEROS \
321    LIB32 \
322    LIBPTHREAD \
323    LIBTHR \
324    LOCALES \
325    LPR \
326    MAILWRAPPER \
327    MAN \
328    NCP \
329    NETCAT \
330    NIS \
331    NLS \
332    NLS_CATALOGS \
333    NS_CACHING \
334    OBJC \
335    OPENSSH \
336    OPENSSL \
337    PAM \
338    PF \
339    PROFILE \
340    RCMDS \
341    RCS \
342    RESCUE \
343    SENDMAIL \
344    SETUID_LOGIN \
345    SHAREDOCS \
346    SYSCONS \
347    TCSH \
348    TOOLCHAIN \
349    USB \
350    WPA_SUPPLICANT_EAPOL
351.if defined(WITH_${var}) && defined(WITHOUT_${var})
352.error WITH_${var} and WITHOUT_${var} can't both be set.
353.endif
354.if defined(MK_${var})
355.error MK_${var} can't be set by a user.
356.endif
357.if defined(WITHOUT_${var})
358MK_${var}:=	no
359.else
360MK_${var}:=	yes
361.endif
362.endfor
363
364#
365# MK_* options which default to "no".
366#
367.for var in \
368    BIND_LIBS \
369    HESIOD \
370    IDEA
371.if defined(WITH_${var}) && defined(WITHOUT_${var})
372.error WITH_${var} and WITHOUT_${var} can't both be set.
373.endif
374.if defined(MK_${var})
375.error MK_${var} can't be set by a user.
376.endif
377.if defined(WITH_${var})
378MK_${var}:=	yes
379.else
380MK_${var}:=	no
381.endif
382.endfor
383
384#
385# Force some options off if their dependencies are off.
386#
387.if ${MK_BIND} == "no"
388MK_BIND_DNSSEC:= no
389MK_BIND_ETC:=	no
390MK_BIND_LIBS:=	no
391MK_BIND_LIBS_LWRES:= no
392MK_BIND_MTREE:=	no
393MK_BIND_NAMED:=	no
394MK_BIND_UTILS:=	no
395.endif
396
397.if ${MK_BIND_MTREE} == "no"
398MK_BIND_ETC:=	no
399.endif
400
401.if ${MK_CRYPT} == "no"
402MK_OPENSSL:=	no
403MK_OPENSSH:=	no
404MK_KERBEROS:=	no
405.endif
406
407.if ${MK_IPX} == "no"
408MK_NCP:=	no
409.endif
410
411.if ${MK_OPENSSL} == "no"
412MK_OPENSSH:=	no
413MK_KERBEROS:=	no
414.endif
415
416.if ${MK_PF} == "no"
417MK_AUTHPF:=	no
418.endif
419
420.if ${MK_TOOLCHAIN} == "no"
421MK_GDB:=	no
422.endif
423
424#
425# Set defaults for the MK_*_SUPPORT variables.
426#
427
428#
429# MK_*_SUPPORT options which default to "yes" unless their corresponding
430# MK_* variable is set to "no".
431#
432.for var in \
433    GNU \
434    INET6 \
435    IPX \
436    KERBEROS \
437    PAM
438.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
439.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
440.endif
441.if defined(MK_${var}_SUPPORT)
442.error MK_${var}_SUPPORT can't be set by a user.
443.endif
444.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
445MK_${var}_SUPPORT:= no
446.else
447MK_${var}_SUPPORT:= yes
448.endif
449.endfor
450
451.endif	# !target(__<bsd.own.mk>__)
452