diff options
Diffstat (limited to 'share/mk/bsd.own.mk')
-rw-r--r-- | share/mk/bsd.own.mk | 626 |
1 files changed, 626 insertions, 0 deletions
diff --git a/share/mk/bsd.own.mk b/share/mk/bsd.own.mk new file mode 100644 index 0000000..9a51608 --- /dev/null +++ b/share/mk/bsd.own.mk @@ -0,0 +1,626 @@ +# $FreeBSD$ +# +# The include file <bsd.own.mk> set common variables for owner, +# group, mode, and directories. Defaults are in brackets. +# +# +# +++ variables +++ +# +# DESTDIR Change the tree where the file gets installed. [not set] +# +# DISTDIR Change the tree where the file for a distribution +# gets installed (see /usr/src/release/Makefile). [not set] +# +# COMPRESS_CMD Program to compress documents. +# Output is to stdout. [gzip -cn] +# +# COMPRESS_EXT File name extension of ${COMPRESS_CMD} command. [.gz] +# +# BINOWN Binary owner. [root] +# +# BINGRP Binary group. [wheel] +# +# BINMODE Binary mode. [555] +# +# NOBINMODE Mode for non-executable files. [444] +# +# LIBDIR Base path for libraries. [/usr/lib] +# +# LIBCOMPATDIR Base path for compat libraries. [/usr/lib/compat] +# +# LIBDATADIR Base path for misc. utility data files. [/usr/libdata] +# +# LIBEXECDIR Base path for system daemons and utilities. [/usr/libexec] +# +# LINTLIBDIR Base path for lint libraries. [/usr/libdata/lint] +# +# SHLIBDIR Base path for shared libraries. [${LIBDIR}] +# +# LIBOWN Library owner. [${BINOWN}] +# +# LIBGRP Library group. [${BINGRP}] +# +# LIBMODE Library mode. [${NOBINMODE}] +# +# +# KMODDIR Base path for loadable kernel modules +# (see kld(4)). [/boot/kernel] +# +# KMODOWN Kernel and KLD owner. [${BINOWN}] +# +# KMODGRP Kernel and KLD group. [${BINGRP}] +# +# KMODMODE KLD mode. [${BINMODE}] +# +# +# SHAREDIR Base path for architecture-independent ascii +# text files. [/usr/share] +# +# SHAREOWN ASCII text file owner. [root] +# +# SHAREGRP ASCII text file group. [wheel] +# +# SHAREMODE ASCII text file mode. [${NOBINMODE}] +# +# +# CONFDIR Base path for configuration files. [/etc] +# +# CONFOWN Configuration file owner. [root] +# +# CONFGRP Configuration file group. [wheel] +# +# CONFMODE Configuration file mode. [644] +# +# +# DOCDIR Base path for system documentation (e.g. PSD, USD, +# handbook, FAQ etc.). [${SHAREDIR}/doc] +# +# DOCOWN Documentation owner. [${SHAREOWN}] +# +# DOCGRP Documentation group. [${SHAREGRP}] +# +# DOCMODE Documentation mode. [${NOBINMODE}] +# +# +# INFODIR Base path for GNU's hypertext system +# called Info (see info(1)). [${SHAREDIR}/info] +# +# INFOOWN Info owner. [${SHAREOWN}] +# +# INFOGRP Info group. [${SHAREGRP}] +# +# INFOMODE Info mode. [${NOBINMODE}] +# +# +# MANDIR Base path for manual installation. [${SHAREDIR}/man/man] +# +# MANOWN Manual owner. [${SHAREOWN}] +# +# MANGRP Manual group. [${SHAREGRP}] +# +# MANMODE Manual mode. [${NOBINMODE}] +# +# +# NLSDIR Base path for National Language Support files +# installation. [${SHAREDIR}/nls] +# +# NLSOWN National Language Support files owner. [${SHAREOWN}] +# +# NLSGRP National Language Support files group. [${SHAREGRP}] +# +# NLSMODE National Language Support files mode. [${NOBINMODE}] +# +# INCLUDEDIR Base path for standard C include files [/usr/include] + +.if !target(__<bsd.own.mk>__) +__<bsd.own.mk>__: + +.if !defined(_WITHOUT_SRCCONF) +SRCCONF?= /etc/src.conf +.if exists(${SRCCONF}) +.include "${SRCCONF}" +.endif +.endif + +# Binaries +BINOWN?= root +BINGRP?= wheel +BINMODE?= 555 +NOBINMODE?= 444 + +.if defined(MODULES_WITH_WORLD) +KMODDIR?= /boot/modules +.else +KMODDIR?= /boot/kernel +.endif +KMODOWN?= ${BINOWN} +KMODGRP?= ${BINGRP} +KMODMODE?= ${BINMODE} + +LIBDIR?= /usr/lib +LIBCOMPATDIR?= /usr/lib/compat +LIBDATADIR?= /usr/libdata +LIBEXECDIR?= /usr/libexec +LINTLIBDIR?= /usr/libdata/lint +SHLIBDIR?= ${LIBDIR} +LIBOWN?= ${BINOWN} +LIBGRP?= ${BINGRP} +LIBMODE?= ${NOBINMODE} + + +# Share files +SHAREDIR?= /usr/share +SHAREOWN?= root +SHAREGRP?= wheel +SHAREMODE?= ${NOBINMODE} + +CONFDIR?= /etc +CONFOWN?= root +CONFGRP?= wheel +CONFMODE?= 644 + +MANDIR?= ${SHAREDIR}/man/man +MANOWN?= ${SHAREOWN} +MANGRP?= ${SHAREGRP} +MANMODE?= ${NOBINMODE} + +DOCDIR?= ${SHAREDIR}/doc +DOCOWN?= ${SHAREOWN} +DOCGRP?= ${SHAREGRP} +DOCMODE?= ${NOBINMODE} + +INFODIR?= ${SHAREDIR}/info +INFOOWN?= ${SHAREOWN} +INFOGRP?= ${SHAREGRP} +INFOMODE?= ${NOBINMODE} + +NLSDIR?= ${SHAREDIR}/nls +NLSOWN?= ${SHAREOWN} +NLSGRP?= ${SHAREGRP} +NLSMODE?= ${NOBINMODE} + +INCLUDEDIR?= /usr/include + +# Common variables +.if !defined(DEBUG_FLAGS) +STRIP?= -s +.endif + +COMPRESS_CMD?= gzip -cn +COMPRESS_EXT?= .gz + +.if !defined(_WITHOUT_SRCCONF) +# +# Define MK_* variables (which are either "yes" or "no") for users +# to set via WITH_*/WITHOUT_* in /etc/src.conf and override in the +# make(1) environment. +# These should be tested with `== "no"' or `!= "no"' in makefiles. +# The NO_* variables should only be set by makefiles. +# + +# +# Supported NO_* options (if defined, MK_* will be forced to "no", +# regardless of user's setting). +# +.for var in \ + CTF \ + INSTALLLIB \ + MAN \ + PROFILE +.if defined(NO_${var}) +.if defined(WITH_${var}) +.undef WITH_${var} +.endif +WITHOUT_${var}= +.endif +.endfor + +# +# Compat NO_* options (same as above, except their use is deprecated). +# +.if !defined(BURN_BRIDGES) +.for var in \ + ACPI \ + ATM \ + AUDIT \ + AUTHPF \ + BIND \ + BIND_DNSSEC \ + BIND_ETC \ + BIND_LIBS_LWRES \ + BIND_MTREE \ + BIND_NAMED \ + BIND_UTILS \ + BLUETOOTH \ + BOOT \ + CALENDAR \ + CPP \ + CRYPT \ + CVS \ + CXX \ + DICT \ + DYNAMICROOT \ + EXAMPLES \ + FORTH \ + FP_LIBC \ + GAMES \ + GCOV \ + GDB \ + GNU \ + GPIB \ + GROFF \ + HTML \ + INET6 \ + INFO \ + IPFILTER \ + IPX \ + KERBEROS \ + LIB32 \ + LIBPTHREAD \ + LIBTHR \ + LOCALES \ + LPR \ + MAILWRAPPER \ + NETCAT \ + NIS \ + NLS \ + NLS_CATALOGS \ + NS_CACHING \ + OPENSSH \ + OPENSSL \ + PAM \ + PF \ + RCMDS \ + RCS \ + RESCUE \ + SENDMAIL \ + SETUID_LOGIN \ + SHAREDOCS \ + SYSCONS \ + TCSH \ + TOOLCHAIN \ + USB \ + WPA_SUPPLICANT_EAPOL +.if defined(NO_${var}) +#.warning NO_${var} is deprecated in favour of WITHOUT_${var}= +WITHOUT_${var}= +.endif +.endfor +.endif # !defined(BURN_BRIDGES) + +# +# Older-style variables that enabled behaviour when set. +# +.if defined(YES_HESIOD) +WITH_HESIOD= +.endif +.if defined(MAKE_IDEA) +WITH_IDEA= +.endif + +__DEFAULT_YES_OPTIONS = \ + ACCT \ + ACPI \ + AMD \ + APM \ + ASSERT_DEBUG \ + AT \ + ATM \ + AUDIT \ + AUTHPF \ + BIND \ + BIND_DNSSEC \ + BIND_ETC \ + BIND_LIBS_LWRES \ + BIND_MTREE \ + BIND_NAMED \ + BIND_UTILS \ + BINUTILS \ + BLUETOOTH \ + BOOT \ + BSD_CPIO \ + BSNMP \ + BZIP2 \ + CALENDAR \ + CDDL \ + CPP \ + CRYPT \ + CTM \ + CVS \ + CXX \ + DICT \ + DYNAMICROOT \ + EXAMPLES \ + FLOPPY \ + FORTH \ + FP_LIBC \ + FREEBSD_UPDATE \ + GAMES \ + GCC \ + GCOV \ + GDB \ + GNU \ + GPIB \ + GPIO \ + GROFF \ + HTML \ + INET \ + INET6 \ + INFO \ + INSTALLLIB \ + IPFILTER \ + IPFW \ + IPX \ + JAIL \ + KERBEROS \ + KERNEL_SYMBOLS \ + KVM \ + LEGACY_CONSOLE \ + LIB32 \ + LIBPTHREAD \ + LIBTHR \ + LOCALES \ + LOCATE \ + LPR \ + MAIL \ + MAILWRAPPER \ + MAKE \ + MAN \ + NCP \ + NDIS \ + NETCAT \ + NETGRAPH \ + NIS \ + NLS \ + NLS_CATALOGS \ + NS_CACHING \ + NTP \ + OPENSSH \ + OPENSSL \ + PAM \ + PF \ + PKGTOOLS \ + PMC \ + PORTSNAP \ + PPP \ + PROFILE \ + QUOTAS \ + RCMDS \ + RCS \ + RESCUE \ + ROUTED \ + SENDMAIL \ + SETUID_LOGIN \ + SHAREDOCS \ + SSP \ + SYSINSTALL \ + SYMVER \ + SYSCONS \ + TCSH \ + TELNET \ + TEXTPROC \ + TOOLCHAIN \ + USB \ + UTMPX \ + WIRELESS \ + WPA_SUPPLICANT_EAPOL \ + ZFS \ + ZONEINFO + +__DEFAULT_NO_OPTIONS = \ + BSD_GREP \ + BIND_IDN \ + BIND_LARGE_FILE \ + BIND_LIBS \ + BIND_SIGCHASE \ + BIND_XML \ + CTF \ + HESIOD \ + ICONV \ + IDEA \ + LIBCPLUSPLUS \ + OFED + +# +# Default behaviour of some options depends on the architecture. Unfortunately +# this means that we have to test TARGET_ARCH (the buildworld case) as well +# as MACHINE_ARCH (the non-buildworld case). Normally TARGET_ARCH is not +# used at all in bsd.*.mk, but we have to make an exception here if we want +# to allow defaults for some things like clang and fdt to vary by target +# architecture. +# +.if defined(TARGET_ARCH) +__T=${TARGET_ARCH} +.else +__T=${MACHINE_ARCH} +.endif +# Clang is only for x86 and powerpc right now, by default. +.if ${__T} == "amd64" || ${__T} == "i386" || ${__T:Mpowerpc*} +__DEFAULT_YES_OPTIONS+=CLANG +.else +__DEFAULT_NO_OPTIONS+=CLANG +.endif +# FDT is needed only for arm, mips and powerpc +.if ${__T:Marm*} || ${__T:Mpowerpc*} || ${__T:Mmips*} +__DEFAULT_YES_OPTIONS+=FDT +.else +__DEFAULT_NO_OPTIONS+=FDT +.endif +.undef __T + +# +# MK_* options which default to "yes". +# +.for var in ${__DEFAULT_YES_OPTIONS} +.if defined(WITH_${var}) && defined(WITHOUT_${var}) +.error WITH_${var} and WITHOUT_${var} can't both be set. +.endif +.if defined(MK_${var}) +.error MK_${var} can't be set by a user. +.endif +.if defined(WITHOUT_${var}) +MK_${var}:= no +.else +MK_${var}:= yes +.endif +.endfor +.undef __DEFAULT_YES_OPTIONS + +# +# MK_* options which default to "no". +# +.for var in ${__DEFAULT_NO_OPTIONS} +.if defined(WITH_${var}) && defined(WITHOUT_${var}) +.error WITH_${var} and WITHOUT_${var} can't both be set. +.endif +.if defined(MK_${var}) +.error MK_${var} can't be set by a user. +.endif +.if defined(WITH_${var}) +MK_${var}:= yes +.else +MK_${var}:= no +.endif +.endfor +.undef __DEFAULT_NO_OPTIONS + +# +# Force some options off if their dependencies are off. +# Order is somewhat important. +# +.if ${MK_LIBPTHREAD} == "no" +MK_LIBTHR:= no +.endif + +.if ${MK_LIBTHR} == "no" +MK_BIND:= no +.endif + +.if ${MK_BIND} == "no" +MK_BIND_DNSSEC:= no +MK_BIND_ETC:= no +MK_BIND_LIBS:= no +MK_BIND_LIBS_LWRES:= no +MK_BIND_MTREE:= no +MK_BIND_NAMED:= no +MK_BIND_UTILS:= no +.endif + +.if ${MK_BIND_MTREE} == "no" +MK_BIND_ETC:= no +.endif + +.if ${MK_CDDL} == "no" +MK_ZFS:= no +MK_CTF:= no +.endif + +.if ${MK_CRYPT} == "no" +MK_OPENSSL:= no +MK_OPENSSH:= no +MK_KERBEROS:= no +.endif + +.if ${MK_CXX} == "no" +MK_CLANG:= no +MK_GROFF:= no +.endif + +.if ${MK_IPX} == "no" +MK_NCP:= no +.endif + +.if ${MK_MAIL} == "no" +MK_MAILWRAPPER:= no +MK_SENDMAIL:= no +.endif + +.if ${MK_NETGRAPH} == "no" +MK_ATM:= no +MK_BLUETOOTH:= no +.endif + +.if ${MK_OPENSSL} == "no" +MK_OPENSSH:= no +MK_KERBEROS:= no +.endif + +.if ${MK_PF} == "no" +MK_AUTHPF:= no +.endif + +.if ${MK_TEXTPROC} == "no" +MK_GROFF:= no +.endif + +.if ${MK_TOOLCHAIN} == "no" +MK_BINUTILS:= no +MK_CLANG:= no +MK_GCC:= no +MK_GDB:= no +.endif + +# +# Set defaults for the MK_*_SUPPORT variables. +# + +# +# MK_*_SUPPORT options which default to "yes" unless their corresponding +# MK_* variable is set to "no". +# +.for var in \ + BZIP2 \ + GNU \ + INET \ + INET6 \ + IPX \ + KERBEROS \ + KVM \ + NETGRAPH \ + PAM \ + WIRELESS +.if defined(WITH_${var}_SUPPORT) && defined(WITHOUT_${var}_SUPPORT) +.error WITH_${var}_SUPPORT and WITHOUT_${var}_SUPPORT can't both be set. +.endif +.if defined(MK_${var}_SUPPORT) +.error MK_${var}_SUPPORT can't be set by a user. +.endif +.if defined(WITHOUT_${var}_SUPPORT) || ${MK_${var}} == "no" +MK_${var}_SUPPORT:= no +.else +MK_${var}_SUPPORT:= yes +.endif +.endfor + +# +# MK_* options whose default value depends on another option. +# +.for vv in \ + GSSAPI/KERBEROS \ + MAN_UTILS/MAN +.if defined(WITH_${vv:H}) && defined(WITHOUT_${vv:H}) +.error WITH_${vv:H} and WITHOUT_${vv:H} can't both be set. +.endif +.if defined(MK_${vv:H}) +.error MK_${vv:H} can't be set by a user. +.endif +.if defined(WITH_${vv:H}) +MK_${vv:H}:= yes +.elif defined(WITHOUT_${vv:H}) +MK_${vv:H}:= no +.else +MK_${vv:H}:= ${MK_${vv:T}} +.endif +.endfor + +.if ${MK_CTF} != "no" +CTFCONVERT_CMD= ${CTFCONVERT} ${CTFFLAGS} ${.TARGET} +.elif ${MAKE_VERSION} >= 5201111300 +CTFCONVERT_CMD= +.else +CTFCONVERT_CMD= @: +.endif + +.endif # !_WITHOUT_SRCCONF + +.endif # !target(__<bsd.own.mk>__) |