]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - share/mk/bsd.own.mk
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / share / mk / bsd.own.mk
1 # $FreeBSD$
2 #
3 # The include file <bsd.own.mk> set common variables for owner,
4 # group, mode, and directories. Defaults are in brackets.
5 #
6 #
7 # +++ variables +++
8 #
9 # DESTDIR       Change the tree where the file gets installed. [not set]
10 #
11 # DISTDIR       Change the tree where the file for a distribution
12 #               gets installed (see /usr/src/release/Makefile). [not set]
13 #
14 # COMPRESS_CMD  Program to compress documents.
15 #               Output is to stdout. [gzip -cn]
16 #
17 # COMPRESS_EXT  File name extension of ${COMPRESS_CMD} command. [.gz]
18 #
19 # BINOWN        Binary owner. [root]
20 #
21 # BINGRP        Binary group. [wheel]
22 #
23 # BINMODE       Binary mode. [555]
24 #
25 # NOBINMODE     Mode for non-executable files. [444]
26 #
27 # LIBDIR        Base path for libraries. [/usr/lib]
28 #
29 # LIBCOMPATDIR  Base path for compat libraries. [/usr/lib/compat]
30 #
31 # LIBDATADIR    Base path for misc. utility data files. [/usr/libdata]
32 #
33 # LINTLIBDIR    Base path for lint libraries. [/usr/libdata/lint]
34 #
35 # SHLIBDIR      Base path for shared libraries. [${LIBDIR}]
36 #
37 # LIBOWN        Library owner. [${BINOWN}]
38 #
39 # LIBGRP        Library group. [${BINGRP}]
40 #
41 # LIBMODE       Library mode. [${NOBINMODE}]
42 #
43 #
44 # KMODDIR       Base path for loadable kernel modules
45 #               (see kld(4)). [/boot/kernel]
46 #
47 # KMODOWN       Kernel and KLD owner. [${BINOWN}]
48 #
49 # KMODGRP       Kernel and KLD group. [${BINGRP}]
50 #
51 # KMODMODE      KLD mode. [${BINMODE}]
52 #
53 #
54 # SHAREDIR      Base path for architecture-independent ascii
55 #               text files. [/usr/share]
56 #
57 # SHAREOWN      ASCII text file owner. [root]
58 #
59 # SHAREGRP      ASCII text file group. [wheel]
60 #
61 # SHAREMODE     ASCII text file mode. [${NOBINMODE}]
62 #
63 #
64 # DOCDIR        Base path for system documentation (e.g. PSD, USD,
65 #               handbook, FAQ etc.). [${SHAREDIR}/doc]
66 #
67 # DOCOWN        Documentation owner. [${SHAREOWN}]
68 #
69 # DOCGRP        Documentation group. [${SHAREGRP}]
70 #
71 # DOCMODE       Documentation mode. [${NOBINMODE}]
72 #
73 #
74 # INFODIR       Base path for GNU's hypertext system
75 #               called Info (see info(1)). [${SHAREDIR}/info]
76 #
77 # INFOOWN       Info owner. [${SHAREOWN}]
78 #
79 # INFOGRP       Info group. [${SHAREGRP}]
80 #
81 # INFOMODE      Info mode. [${NOBINMODE}]
82 #
83 #
84 # MANDIR        Base path for manual installation. [${SHAREDIR}/man/man]
85 #
86 # MANOWN        Manual owner. [${SHAREOWN}]
87 #
88 # MANGRP        Manual group. [${SHAREGRP}]
89 #
90 # MANMODE       Manual mode. [${NOBINMODE}]
91 #
92 #
93 # NLSDIR        Base path for National Language Support files
94 #               installation. [${SHAREDIR}/nls]
95 #
96 # NLSOWN        National Language Support files owner. [${SHAREOWN}]
97 #
98 # NLSGRP        National Language Support files group. [${SHAREGRP}]
99 #
100 # NLSMODE       National Language Support files mode. [${NOBINMODE}]
101 #
102 # INCLUDEDIR    Base path for standard C include files [/usr/include]
103
104 .if !target(__<bsd.own.mk>__)
105 __<bsd.own.mk>__:
106
107 .if !defined(_WITHOUT_SRCCONF)
108 SRCCONF?=       /etc/src.conf
109 .if exists(${SRCCONF})
110 .include "${SRCCONF}"
111 .endif
112 .endif
113
114 # Binaries
115 BINOWN?=        root
116 BINGRP?=        wheel
117 BINMODE?=       555
118 NOBINMODE?=     444
119
120 .if defined(MODULES_WITH_WORLD)
121 KMODDIR?=       /boot/modules
122 .else
123 KMODDIR?=       /boot/kernel
124 .endif
125 KMODOWN?=       ${BINOWN}
126 KMODGRP?=       ${BINGRP}
127 KMODMODE?=      ${BINMODE}
128
129 LIBDIR?=        /usr/lib
130 LIBCOMPATDIR?=  /usr/lib/compat
131 LIBDATADIR?=    /usr/libdata
132 LINTLIBDIR?=    /usr/libdata/lint
133 SHLIBDIR?=      ${LIBDIR}
134 LIBOWN?=        ${BINOWN}
135 LIBGRP?=        ${BINGRP}
136 LIBMODE?=       ${NOBINMODE}
137
138
139 # Share files
140 SHAREDIR?=      /usr/share
141 SHAREOWN?=      root
142 SHAREGRP?=      wheel
143 SHAREMODE?=     ${NOBINMODE}
144
145 MANDIR?=        ${SHAREDIR}/man/man
146 MANOWN?=        ${SHAREOWN}
147 MANGRP?=        ${SHAREGRP}
148 MANMODE?=       ${NOBINMODE}
149
150 DOCDIR?=        ${SHAREDIR}/doc
151 DOCOWN?=        ${SHAREOWN}
152 DOCGRP?=        ${SHAREGRP}
153 DOCMODE?=       ${NOBINMODE}
154
155 INFODIR?=       ${SHAREDIR}/info
156 INFOOWN?=       ${SHAREOWN}
157 INFOGRP?=       ${SHAREGRP}
158 INFOMODE?=      ${NOBINMODE}
159
160 NLSDIR?=        ${SHAREDIR}/nls
161 NLSOWN?=        ${SHAREOWN}
162 NLSGRP?=        ${SHAREGRP}
163 NLSMODE?=       ${NOBINMODE}
164
165 INCLUDEDIR?=    /usr/include
166
167 # Common variables
168 .if !defined(DEBUG_FLAGS)
169 STRIP?=         -s
170 .endif
171
172 COMPRESS_CMD?=  gzip -cn
173 COMPRESS_EXT?=  .gz
174
175 .if !defined(_WITHOUT_SRCCONF)
176 #
177 # Define MK_* variables (which are either "yes" or "no") for users
178 # to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the
179 # make(1) environment.
180 # These should be tested with `== "no"' or `!= "no"' in makefiles.
181 # The NO_* variables should only be set by makefiles.
182 #
183
184 #
185 # Supported NO_* options (if defined, MK_* will be forced to "no",
186 # regardless of user's setting).
187 #
188 .for var in \
189     INSTALLLIB \
190     MAN \
191     PROFILE
192 .if defined(NO_${var})
193 WITHOUT_${var}=
194 .endif
195 .endfor
196
197 #
198 # Compat NO_* options (same as above, except their use is deprecated).
199 #
200 .if !defined(BURN_BRIDGES)
201 .for var in \
202     ACPI \
203     ATM \
204     AUDIT \
205     AUTHPF \
206     BIND \
207     BIND_DNSSEC \
208     BIND_ETC \
209     BIND_LIBS_LWRES \
210     BIND_MTREE \
211     BIND_NAMED \
212     BIND_UTILS \
213     BLUETOOTH \
214     BOOT \
215     CALENDAR \
216     CPP \
217     CRYPT \
218     CVS \
219     CXX \
220     DICT \
221     DYNAMICROOT \
222     EXAMPLES \
223     FORTH \
224     FP_LIBC \
225     GAMES \
226     GCOV \
227     GDB \
228     GNU \
229     GPIB \
230     GROFF \
231     HTML \
232     INET6 \
233     INFO \
234     IPFILTER \
235     IPX \
236     KERBEROS \
237     LIB32 \
238     LIBPTHREAD \
239     LIBTHR \
240     LOCALES \
241     LPR \
242     MAILWRAPPER \
243     NETCAT \
244     NIS \
245     NLS \
246     NLS_CATALOGS \
247     NS_CACHING \
248     OBJC \
249     OPENSSH \
250     OPENSSL \
251     PAM \
252     PF \
253     RCMDS \
254     RCS \
255     RESCUE \
256     SENDMAIL \
257     SETUID_LOGIN \
258     SHAREDOCS \
259     SYSCONS \
260     TCSH \
261     TOOLCHAIN \
262     USB \
263     WPA_SUPPLICANT_EAPOL
264 .if defined(NO_${var})
265 #.warning NO_${var} is deprecated in favour of WITHOUT_${var}=
266 WITHOUT_${var}=
267 .endif
268 .endfor
269 .endif # !defined(BURN_BRIDGES)
270
271 #
272 # Older-style variables that enabled behaviour when set.
273 #
274 .if defined(YES_HESIOD)
275 WITH_HESIOD=
276 .endif
277 .if defined(MAKE_IDEA)
278 WITH_IDEA=
279 .endif
280
281 #
282 # MK_* options which default to "yes".
283 #
284 .for var in \
285     ACCT \
286     ACPI \
287     AMD \
288     APM \
289     ASSERT_DEBUG \
290     AT \
291     ATM \
292     AUDIT \
293     AUTHPF \
294     BIND \
295     BIND_DNSSEC \
296     BIND_ETC \
297     BIND_LIBS_LWRES \
298     BIND_MTREE \
299     BIND_NAMED \
300     BIND_UTILS \
301     BLUETOOTH \
302     BOOT \
303     BSD_CPIO \
304     BSNMP \
305     BZIP2 \
306     CALENDAR \
307     CDDL \
308     CPP \
309     CRYPT \
310     CTM \
311     CVS \
312     CXX \
313     DICT \
314     DYNAMICROOT \
315     EXAMPLES \
316     FLOPPY \
317     FORTH \
318     FP_LIBC \
319     FREEBSD_UPDATE \
320     GAMES \
321     GCOV \
322     GDB \
323     GNU \
324     GNU_GREP \
325     GPIB \
326     GROFF \
327     HTML \
328     INET6 \
329     INFO \
330     INSTALLLIB \
331     IPFILTER \
332     IPFW \
333     IPX \
334     JAIL \
335     KERBEROS \
336     KVM \
337     LEGACY_CONSOLE \
338     LIB32 \
339     LIBPTHREAD \
340     LIBTHR \
341     LOCALES \
342     LOCATE \
343     LPR \
344     MAIL \
345     MAILWRAPPER \
346     MAKE \
347     MAN \
348     NCP \
349     NDIS \
350     NETCAT \
351     NETGRAPH \
352     NIS \
353     NLS \
354     NLS_CATALOGS \
355     NS_CACHING \
356     NTP \
357     OBJC \
358     OPENSSH \
359     OPENSSL \
360     PAM \
361     PF \
362     PKGTOOLS \
363     PMC \
364     PORTSNAP \
365     PPP \
366     PROFILE \
367     QUOTAS \
368     RCMDS \
369     RCS \
370     RESCUE \
371     ROUTED \
372     SENDMAIL \
373     SETUID_LOGIN \
374     SHAREDOCS \
375     SSP \
376     SYSINSTALL \
377     SYMVER \
378     SYSCONS \
379     TCSH \
380     TELNET \
381     TEXTPROC \
382     TOOLCHAIN \
383     USB \
384     WIRELESS \
385     WPA_SUPPLICANT_EAPOL \
386     ZFS \
387     ZONEINFO
388 .if defined(WITH_${var}) && defined(WITHOUT_${var})
389 .error WITH_${var} and WITHOUT_${var} can't both be set.
390 .endif
391 .if defined(MK_${var})
392 .error MK_${var} can't be set by a user.
393 .endif
394 .if defined(WITHOUT_${var})
395 MK_${var}:=     no
396 .else
397 MK_${var}:=     yes
398 .endif
399 .endfor
400
401 #
402 # MK_* options which default to "no".
403 #
404 .for var in \
405     BIND_IDN \
406     BIND_LARGE_FILE \
407     BIND_LIBS \
408     BIND_SIGCHASE \
409     BIND_XML \
410     HESIOD \
411     IDEA
412 .if defined(WITH_${var}) && defined(WITHOUT_${var})
413 .error WITH_${var} and WITHOUT_${var} can't both be set.
414 .endif
415 .if defined(MK_${var})
416 .error MK_${var} can't be set by a user.
417 .endif
418 .if defined(WITH_${var})
419 MK_${var}:=     yes
420 .else
421 MK_${var}:=     no
422 .endif
423 .endfor
424
425 #
426 # Force some options off if their dependencies are off.
427 # Order is somewhat important.
428 #
429 .if ${MK_LIBPTHREAD} == "no"
430 MK_LIBTHR:=     no
431 .endif
432
433 .if ${MK_LIBTHR} == "no"
434 MK_BIND:=       no
435 .endif
436
437 .if ${MK_BIND} == "no"
438 MK_BIND_DNSSEC:= no
439 MK_BIND_ETC:=   no
440 MK_BIND_LIBS:=  no
441 MK_BIND_LIBS_LWRES:= no
442 MK_BIND_MTREE:= no
443 MK_BIND_NAMED:= no
444 MK_BIND_UTILS:= no
445 .endif
446
447 .if ${MK_BIND_MTREE} == "no"
448 MK_BIND_ETC:=   no
449 .endif
450
451 .if ${MK_CDDL} == "no"
452 MK_ZFS:=        no
453 .endif
454
455 .if ${MK_CRYPT} == "no"
456 MK_OPENSSL:=    no
457 MK_OPENSSH:=    no
458 MK_KERBEROS:=   no
459 .endif
460
461 .if ${MK_IPX} == "no"
462 MK_NCP:=        no
463 .endif
464
465 .if ${MK_MAIL} == "no"
466 MK_MAILWRAPPER:= no
467 MK_SENDMAIL:=   no
468 .endif
469
470 .if ${MK_NETGRAPH} == "no"
471 MK_ATM:=        no
472 MK_BLUETOOTH:=  no
473 .endif
474
475 .if ${MK_OPENSSL} == "no"
476 MK_OPENSSH:=    no
477 MK_KERBEROS:=   no
478 .endif
479
480 .if ${MK_PF} == "no"
481 MK_AUTHPF:=     no
482 .endif
483
484 .if ${MK_TEXTPROC} == "no"
485 MK_GROFF:=      no
486 .endif
487
488 .if ${MK_TOOLCHAIN} == "no"
489 MK_GDB:=        no
490 .endif
491
492 #
493 # Set defaults for the MK_*_SUPPORT variables.
494 #
495
496 #
497 # MK_*_SUPPORT options which default to "yes" unless their corresponding
498 # MK_* variable is set to "no".
499 #
500 .for var in \
501     BZIP2 \
502     GNU \
503     INET6 \
504     IPX \
505     KERBEROS \
506     KVM \
507     NETGRAPH \
508     PAM \
509     WIRELESS
510 .if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT)
511 .error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set.
512 .endif
513 .if defined(MK_${var}_SUPPORT)
514 .error MK_${var}_SUPPORT can't be set by a user.
515 .endif
516 .if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no"
517 MK_${var}_SUPPORT:= no
518 .else
519 MK_${var}_SUPPORT:= yes
520 .endif
521 .endfor
522
523 #
524 # MK_* options whose default value depends on another option.
525 #
526 .for vv in \
527     GSSAPI/KERBEROS \
528     MAN_UTILS/MAN
529 .if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H})
530 .error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set.
531 .endif
532 .if defined(MK_${vv:H})
533 .error MK_${vv:H} can't be set by a user.
534 .endif
535 .if defined(WITH_${vv:H})
536 MK_${vv:H}:=    yes
537 .elif defined(WITHOUT_${vv:H})
538 MK_${vv:H}:=    no
539 .else
540 MK_${vv:H}:=    ${MK_${vv:T}}
541 .endif
542 .endfor
543
544 .endif # !_WITHOUT_SRCCONF
545
546 .endif  # !target(__<bsd.own.mk>__)