pkgsrc/mk/bsd.options.mk

442 lines
14 KiB
Makefile
Raw Normal View History

# $NetBSD: bsd.options.mk,v 1.67 2008/02/18 14:30:40 obache Exp $
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# This Makefile fragment provides boilerplate code for standard naming
# conventions for handling per-package build options.
#
# Before including this file, the following variables can be defined:
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# PKG_SUPPORTED_OPTIONS
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# This is a list of build options supported by the package.
# This variable should be set in a package Makefile. E.g.,
#
# PKG_SUPPORTED_OPTIONS= kerberos ldap ssl
#
# PKG_OPTIONS_VAR (must be defined)
# The variable the user can set to enable or disable
# options specifically for this package.
#
# PKG_OPTIONS_OPTIONAL_GROUPS
# This is a list of names of groups of mutually exclusive
# options. The options in each group are listed in
# PKG_OPTIONS_GROUP.<groupname>. The most specific
# setting of any option from the group takes precedence
2005-06-02 22:43:55 +02:00
# over all other options in the group. Options from
# the groups will be automatically added to
# PKG_SUPPORTED_OPTIONS.
#
# PKG_OPTIONS_REQUIRED_GROUPS
# Like PKG_OPTIONS_OPTIONAL_GROUPS, but building
# the packages will fail if no option from the group
# is selected.
#
# PKG_OPTIONS_NONEMPTY_SETS
# This is a list of names of sets of options. At
# least one option from each set must be selected.
# The options in each set are listed in
# PKG_OPTIONS_SET.<setname>. Options from the sets
# will be automatically added to PKG_SUPPORTED_OPTIONS.
#
# PKG_SUGGESTED_OPTIONS (defaults to empty)
# This is a list of build options which are enabled by default.
#
# PKG_OPTIONS_LEGACY_VARS
# This is a list of USE_VARIABLE:option pairs that
# map legacy /etc/mk.conf variables to their option
# counterparts.
#
# PKG_OPTIONS_LEGACY_OPTS
# This is a list of old-option:new-option pairs that
# map options that have been renamed to their new
# counterparts.
#
# PKG_LEGACY_OPTIONS
# A list of options implied by deprecated variables
# used. This can be used for cases that neither
# PKG_OPTIONS_LEGACY_VARS nor PKG_OPTIONS_LEGACY_OPTS
# can handle, e. g. when PKG_OPTIONS_VAR is renamed.
#
# PKG_OPTIONS_DEPRECATED_WARNINGS
# A list of warnings about deprecated variables or
# options used, and what to use instead.
#
# If none of PKG_SUPPORTED_OPTIONS, PKG_OPTIONS_OPTIONAL_GROUPS,
# PKG_OPTIONS_REQUIRED_GROUPS, and PKG_OPTIONS_NONEMPTY_SETS are
# defined, PKG_OPTIONS is set to the empty list and the package
# is otherwise treated as not using the options framework.
#
#
# Optionally, the user may define the following variables in /etc/mk.conf:
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# PKG_DEFAULT_OPTIONS
# This variable can be used to override default
# options for every package. Options listed in this
# variable will be enabled in every package that
# supports them. If you prefix an option with `-',
# it will be disabled in every package.
#
# ${PKG_OPTIONS_VAR}
# This variable can be used to override default
# options and options listed in PKG_DEFAULT_OPTIONS.
# The syntax is the same as PKG_DEFAULT_OPTIONS.
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# After including this file, the following variables are defined:
#
# PKG_OPTIONS
# This is the list of the selected build options, properly
# filtered to remove unsupported and duplicate options.
#
.if !defined(BSD_OPTIONS_MK)
BSD_OPTIONS_MK= # defined
# To add options support to a package, here is an example for an
# options.mk file. This file should be included by the package Makefile
# or Makefile.common.
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# -------------8<-------------8<-------------8<-------------8<-------------
# PKG_OPTIONS_VAR= PKG_OPTIONS.wibble
# PKG_SUPPORTED_OPTIONS= wibble-foo ldap sasl
2005-06-04 12:11:24 +02:00
# PKG_OPTIONS_OPTIONAL_GROUPS= database
# PKG_OPTIONS_GROUP.database= mysql pgsql
# PKG_SUGGESTED_OPTIONS= wibble-foo
# PKG_OPTIONS_LEGACY_VARS+= WIBBLE_USE_OPENLDAP:ldap
# PKG_OPTIONS_LEGACY_VARS+= WIBBLE_USE_SASL2:sasl
# PKG_OPTIONS_LEGACY_OPTS+= foo:wibble-foo
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# .include "../../mk/bsd.prefs.mk"
#
# # this package was previously named wibble2
# .if defined(PKG_OPTIONS.wibble2)
# PKG_LEGACY_OPTIONS+= ${PKG_OPTIONS.wibble2}
2005-06-08 18:19:08 +02:00
# PKG_OPTIONS_DEPRECATED_WARNINGS+="Deprecated variable PKG_OPTIONS.wibble2 used, use "${PKG_OPTIONS_VAR:Q}" instead."
# .endif
#
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# .include "../../mk/bsd.options.mk"
#
# # Package-specific option-handling
#
# ###
# ### FOO support
# ###
# .if !empty(PKG_OPTIONS:Mwibble-foo)
# CONFIGURE_ARGS+= --enable-foo
# .endif
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# ###
# ### LDAP support
# ###
# .if !empty(PKG_OPTIONS:Mldap)
# . include "../../databases/openldap-client/buildlink3.mk"
# CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap-client}
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# .endif
#
# ###
# ### SASL authentication
# ###
# .if !empty(PKG_OPTIONS:Msasl)
# . include "../../security/cyrus-sasl/buildlink3.mk"
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl}
# .endif
#
# ###
# ### database support
# ###
# .if !empty(PKG_OPTIONS:Mmysql)
# . include "../../mk/mysql.buildlink3.mk"
# .endif
# .if !empty(PKG_OPTIONS:Mpgsql)
# . include "../../mk/pgsql.buildlink3.mk"
# .endif
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# -------------8<-------------8<-------------8<-------------8<-------------
#
# Keywords: options.mk
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
2007-10-07 23:48:30 +02:00
_VARGROUPS+= options
_USER_VARS.options= PKG_DEFAULT_OPTIONS ${PKG_OPTIONS_VAR}
_PKG_VARS.options= PKG_SUPPORTED_OPTIONS PKG_OPTIONS_VAR \
PKG_OPTIONS_OPTIONAL_GROUPS PKG_OPTIONS_REQUIRED_GROUPS \
PKG_OPTIONS_NONEMPTY_SETS PKG_SUGGESTED_OPTIONS \
PKG_OPTIONS_LEGACY_VARS PKG_OPTIONS_LEGACY_OPTS \
PKG_LEGACY_OPTIONS PKG_OPTIONS_DEPRECATED_WARNINGS
_SYS_VARS.options= PKG_OPTIONS
.include "bsd.prefs.mk"
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# Define PKG_OPTIONS, no matter if we have an error or not, to suppress
# further make(1) warnings.
PKG_OPTIONS= # empty
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
# Check for variable definitions required before including this file.
.if !defined(PKG_OPTIONS_VAR)
PKG_FAIL_REASON+= "[bsd.options.mk] PKG_OPTIONS_VAR is not defined."
.endif
.if !defined(PKG_SUPPORTED_OPTIONS) \
&& !defined(PKG_OPTIONS_OPTIONAL_GROUPS) \
&& !defined(PKG_OPTIONS_REQUIRED_GROUPS) \
&& !defined(PKG_OPTIONS_NONEMPTY_SETS)
PKG_SUPPORTED_OPTIONS?= # none
PKG_FAIL_REASON+= "[bsd.options.mk] The package has no options, but includes this file."
.endif
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
#
# create map of option to group and add group options to PKG_SUPPORTED_OPTIONS
#
.for _grp_ in ${PKG_OPTIONS_OPTIONAL_GROUPS} ${PKG_OPTIONS_REQUIRED_GROUPS}
_PKG_OPTIONS_GROUP_STACK.${_grp_}:=#empty
. if !defined(PKG_OPTIONS_GROUP.${_grp_}) || empty(PKG_OPTIONS_GROUP.${_grp_})
PKG_FAIL_REASON+= "[bsd.options.mk] PKG_OPTIONS_GROUP."${_grp_:Q}" must be non-empty."
. endif
. for _opt_ in ${PKG_OPTIONS_GROUP.${_grp_}}
PKG_SUPPORTED_OPTIONS+= ${_opt_}
_PKG_OPTIONS_GROUP_MAP.${_opt_}=${_grp_}
. endfor
.endfor
#
# add options from sets to PKG_SUPPORTED_OPTIONS
#
_PKG_OPTIONS_ALL_SETS:=#empty
.for _set_ in ${PKG_OPTIONS_NONEMPTY_SETS}
. if !defined(PKG_OPTIONS_SET.${_set_}) || empty(PKG_OPTIONS_SET.${_set_})
PKG_FAIL_REASON+= "[bsd.options.mk] PKG_OPTIONS_SET."${_set_:Q}" must be non-empty."
. endif
. for _opt_ in ${PKG_OPTIONS_SET.${_set_}}
PKG_SUPPORTED_OPTIONS+= ${_opt_}
_PKG_OPTIONS_ALL_SETS+= ${_opt_}
. endfor
.endfor
#
# include deprecated variable to options mapping
#
.include "defaults/obsolete.mk"
#
# place options implied by legacy variables in PKG_LEGACY_OPTIONS
#
.for _m_ in ${PKG_OPTIONS_LEGACY_VARS}
_var_:= ${_m_:C/:.*//}
_opt_:= ${_m_:C/.*://}
_popt_:=${_opt_:C/^-//}
. if !empty(PKG_SUPPORTED_OPTIONS:M${_popt_})
. if defined(${_var_})
. if empty(${_var_}:M[nN][oO])
PKG_LEGACY_OPTIONS:=${PKG_LEGACY_OPTIONS} ${_opt_}
PKG_OPTIONS_DEPRECATED_WARNINGS:=${PKG_OPTIONS_DEPRECATED_WARNINGS} "Deprecated variable "${_var_:Q}" set to "${${_var_}:Q}", use PKG_DEFAULT_OPTIONS+="${_opt_:Q}" instead."
. elif empty(_opt_:M-*)
PKG_LEGACY_OPTIONS:=${PKG_LEGACY_OPTIONS} -${_popt_}
PKG_OPTIONS_DEPRECATED_WARNINGS:=${PKG_OPTIONS_DEPRECATED_WARNINGS} "Deprecated variable "${_var_:Q}" set to "${${_var_}:Q}", use PKG_DEFAULT_OPTIONS+=-"${_popt_:Q}" instead."
. else
PKG_LEGACY_OPTIONS:=${PKG_LEGACY_OPTIONS} ${_popt_}
PKG_OPTIONS_DEPRECATED_WARNINGS:=${PKG_OPTIONS_DEPRECATED_WARNINGS} "Deprecated variable "${_var_:Q}" set to "${${_var_}:Q}", use PKG_DEFAULT_OPTIONS+="${_popt_:Q}" instead."
. endif
. endif
. endif
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
.endfor
.undef _var_
.undef _opt_
.undef _popt_
#
# create map of old option name to new option name for legacy options
#
.for _m_ in ${PKG_OPTIONS_LEGACY_OPTS}
_old_:= ${_m_:C/:.*//}
_new_:= ${_m_:C/.*://}
. if !empty(PKG_SUPPORTED_OPTIONS:M${_new_})
_PKG_LEGACY_OPTMAP.${_old_}:=${_new_}
. endif
.endfor
.undef _old_
.undef _new_
#
# filter unsupported options from PKG_DEFAULT_OPTIONS
#
2005-06-09 20:44:26 +02:00
_OPTIONS_DEFAULT_SUPPORTED:= #empty
.for _o_ in ${PKG_DEFAULT_OPTIONS}
_opt_:= ${_o_}
_popt_:= ${_opt_:C/^-//}
. if !empty(PKG_SUPPORTED_OPTIONS:M${_popt_}) \
|| defined(_PKG_LEGACY_OPTMAP.${_popt_})
_OPTIONS_DEFAULT_SUPPORTED:=${_OPTIONS_DEFAULT_SUPPORTED} ${_opt_}
. endif
.endfor
.undef _opt_
.undef _popt_
#
# process options from generic to specific
#
PKG_OPTIONS:= # empty
_OPTIONS_UNSUPPORTED:= #empty
.for _o_ in ${PKG_SUGGESTED_OPTIONS} ${PKG_LEGACY_OPTIONS} \
${_OPTIONS_DEFAULT_SUPPORTED} ${${PKG_OPTIONS_VAR}}
_opt_:= ${_o_}
_popt_:= ${_o_:C/^-//} # positive option
. if defined(_PKG_LEGACY_OPTMAP.${_popt_})
PKG_OPTIONS_DEPRECATED_WARNINGS:=${PKG_OPTIONS_DEPRECATED_WARNINGS} "Deprecated option "${_popt_:Q}" used, use option "${_PKG_LEGACY_OPTMAP.${_popt_}:Q}" instead."
_popt_:= ${_PKG_LEGACY_OPTMAP.${_popt_}}
. if empty(_opt_:M-*)
_opt_:= ${_popt_}
. else
_opt_:= -${_popt_}
. endif
. endif
. if empty(PKG_SUPPORTED_OPTIONS:M${_popt_})
_OPTIONS_UNSUPPORTED:=${_OPTIONS_UNSUPPORTED} ${_opt_}
. else
. if defined(_PKG_OPTIONS_GROUP_MAP.${_popt_})
_grp_:= ${_PKG_OPTIONS_GROUP_MAP.${_popt_}}
_stk_:= _PKG_OPTIONS_GROUP_STACK.${_grp_}
_cnt_:= ${${_stk_}}
. if !empty(_opt_:M-*)
${_stk_}:= ${_cnt_:N${_popt_}}
. else
${_stk_}:= ${_cnt_} ${_popt_}
. endif
. else
. if !empty(_opt_:M-*)
PKG_OPTIONS:= ${PKG_OPTIONS:N${_popt_}}
. else
PKG_OPTIONS:= ${PKG_OPTIONS} ${_popt_}
. endif
. endif
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
. endif
.endfor
.undef _opt_
.undef _popt_
.undef _stk_
.for _grp_ in ${PKG_OPTIONS_REQUIRED_GROUPS}
. if empty(_PKG_OPTIONS_GROUP_STACK.${_grp_})
PKG_FAIL_REASON+= "[bsd.options.mk] One of the following options must be selected: "${PKG_OPTIONS_GROUP.${_grp_}:O:u:Q}
. endif
.endfor
.for _grp_ in ${PKG_OPTIONS_REQUIRED_GROUPS} ${PKG_OPTIONS_OPTIONAL_GROUPS}
. undef _opt_
. for _o_ in ${_PKG_OPTIONS_GROUP_STACK.${_grp_}}
_opt_:= ${_o_}
. endfor
. if defined(_opt_)
PKG_OPTIONS:= ${PKG_OPTIONS} ${_opt_}
. endif
.endfor
.undef _opt_
.for _set_ in ${PKG_OPTIONS_NONEMPTY_SETS}
_ISEMPTY:=true
. for _opt_ in ${PKG_OPTIONS_SET.${_set_}}
. if !empty(PKG_OPTIONS:M${_opt_})
_ISEMPTY:=false
. endif
. endfor
. if ${_ISEMPTY} == "true"
PKG_FAIL_REASON+= "[bsd.options.mk] At least one of the following options must be selected: "${PKG_OPTIONS_SET.${_set_}:O:u:Q}
. endif
.endfor
.undef _ISEMPTY
.if !empty(_OPTIONS_UNSUPPORTED)
PKG_FAIL_REASON+= "[bsd.options.mk] The following selected options are not supported: "${_OPTIONS_UNSUPPORTED:O:u:Q}"."
.endif
.undef _OPTIONS_DEFAULT_SUPPORTED
PKG_OPTIONS:= ${PKG_OPTIONS:O:u}
bsd.options.mk provides boilerplate code for standard naming conventions for handling per-package build options. Before including this file, the following variables should be defined: PKG_OPTIONS_VAR This is a list of the name of the make(1) variables that contain the options the user wishes to select. This variable should be set in a package Makefile. E.g., PKG_OPTIONS_VAR= WIBBLE_OPTIONS or PKG_OPTIONS_VAR= FOO_OPTIONS BAR_OPTIONS PKG_SUPPORTED_OPTIONS This is a list of build options supported by the package. This variable should be set in a package Makefile. E.g., PKG_SUPPORTED_OPTIONS= kerberos ldap ssl Optionally, the following variables may also be defined: PKG_DEFAULT_OPTIONS This is a list the options that should be built into every package, if that option is supported. This variable should be set in /etc/mk.conf. ${PKG_OPTIONS_VAR} (the variables named in PKG_OPTIONS_VAR) These variables list the selected build options and override any default options given in PKG_DEFAULT_OPTIONS. If any of the options begin with a '-', then that option is always removed from the selected build options, e.g. PKG_DEFAULT_OPTIONS= kerberos ldap sasl PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= ${PKG_DEFAULT_OPTIONS} -sasl # implies PKG_OPTIONS == "kerberos ldap" or PKG_OPTIONS_VAR= WIBBLE_OPTIONS WIBBLE_OPTIONS= kerberos -ldap ldap # implies PKG_OPTIONS == "kerberos" This variable should be set in /etc/mk.conf. PKG_FAIL_UNSUPPORTED_OPTIONS If this is set to "yes", then the presence of unsupported options in PKG_OPTIONS.<pkg> (see below) causes the build to fail. Set this to "no" to silently ignore unsupported options. Default: "yes". After including this file, the following variables are defined: PKG_OPTIONS This is the list of the selected build options, properly filtered to remove unsupported and duplicate options. Example usage: -------------8<-------------8<-------------8<-------------8<------------- # Global and legacy options .if defined(USE_OPENLDAP) || defined(USE_SASL2) . if !defined(PKG_OPTIONS.wibble) . if defined(USE_OPENLDAP) && !empty(USE_OPENLDAP:M[yY][eE][sS]) PKG_OPTIONS.wibble+= ldap . endif . if defined(USE_SASL2) && !empty(USE_SASL2:M[yY][eE][sS]) PKG_OPTIONS.wibble+= sasl . endif . endif .endif PKG_OPTIONS_VAR= PKG_OPTIONS.wibble PKG_SUPPORTED_OPTIONS= ldap sasl .include "../../mk/bsd.options.mk" # Package-specific option-handling ### ### LDAP support ### .if !empty(PKG_OPTIONS:Mldap) . include "../../databases/openldap/buildlink3.mk" CONFIGURE_ARGS+= --enable-ldap=${BUILDLINK_PREFIX.openldap} .endif ### ### SASL authentication ### .if !empty(PKG_OPTIONS:Msasl) . include "../../security/cyrus-sasl2/buildlink3.mk" CONFIGURE_ARGS+= --enable-sasl=${BUILDLINK_PREFIX.sasl} .endif -------------8<-------------8<-------------8<-------------8<-------------
2004-07-30 22:59:08 +02:00
_PKG_OPTIONS_WORDWRAP_FILTER= \
${XARGS} -n 1 | \
${AWK} ' \
BEGIN { printwidth = 40; line = "" } \
{ \
if (length(line) > 0) \
line = line" "$$0; \
else \
line = $$0; \
if (length(line) > 40) { \
print " "line; \
line = ""; \
} \
} \
END { if (length(line) > 0) print " "line } \
'
.PHONY: show-options
show-options:
@${ECHO} Any of the following general options may be selected:
.for _opt_ in ${PKG_SUPPORTED_OPTIONS:O}
. if !defined(_PKG_OPTIONS_GROUP_MAP.${_opt_}) && empty(_PKG_OPTIONS_ALL_SETS:M${_opt_})
@${ECHO} " "${_opt_:Q}" "`${SED} -n "s/^"${_opt_:Q}" //p" ../../mk/defaults/options.description`
. endif
.endfor
.for _grp_ in ${PKG_OPTIONS_REQUIRED_GROUPS}
@${ECHO} "Exactly one of the following "${_grp_:Q}" options is required:"
. for _opt_ in ${PKG_OPTIONS_GROUP.${_grp_}:O}
@${ECHO} " "${_opt_:Q}" "`${SED} -n "s/^"${_opt_:Q}" //p" ../../mk/defaults/options.description`
. endfor
.endfor
.for _grp_ in ${PKG_OPTIONS_OPTIONAL_GROUPS}
@${ECHO} "At most one of the following "${_grp_:Q}" options may be selected:"
. for _opt_ in ${PKG_OPTIONS_GROUP.${_grp_}:O}
@${ECHO} " "${_opt_:Q}" "`${SED} -n "s/^"${_opt_:Q}" //p" ../../mk/defaults/options.description`
. endfor
.endfor
.for _set_ in ${PKG_OPTIONS_NONEMPTY_SETS}
@${ECHO} "At least one of the following "${_set_:Q}" options must be selected:"
. for _opt_ in ${PKG_OPTIONS_SET.${_set_}:O}
@${ECHO} " "${_opt_:Q}" "`${SED} -n "s/^"${_opt_:Q}" //p" ../../mk/defaults/options.description`
. endfor
.endfor
@${ECHO}
@${ECHO} "These options are enabled by default:"
@${ECHO} ${PKG_SUGGESTED_OPTIONS:O:Q} | ${_PKG_OPTIONS_WORDWRAP_FILTER}
@${ECHO} ""
@${ECHO} "These options are currently enabled:"
@${ECHO} ${PKG_OPTIONS:O:Q} | ${_PKG_OPTIONS_WORDWRAP_FILTER}
@${ECHO} ""
@${ECHO} "You can select which build options to use by setting PKG_DEFAULT_OPTIONS"
@${ECHO} "or "${PKG_OPTIONS_VAR:Q}"."
@set args ${PKG_OPTIONS_DEPRECATED_WARNINGS}; shift; \
[ $$# -eq 0 ] || ${ECHO}; \
for l in "$$@"; do \
${ECHO} "$$l"; \
done
.if defined(PKG_SUPPORTED_OPTIONS)
.PHONY: supported-options-message
First pass at implementing support for package system flavors other than pkgsrc's current one. This is an important lead-up to any project that redesigns the pkg_* tools in that it doesn't tie us to past design (mis)choices. This commit mostly deals with rearranging code, although there was a considerable amount of rewriting done in cases where I thought the code was somewhat messy and was difficult to understand. The design I chose for supporting multiple package system flavors is that the various depends, install, package, etc. modules would define default targets and variables that may be overridden in files from pkgsrc/mk/flavor/${PKG_FLAVOR}. The default targets would do the sensible thing of doing nothing, and pkgsrc infrastructure would rely on the appropriate things to be defined in pkgsrc/mk/flavor to do the real work. The pkgsrc/mk/flavor directory contains subdirectories corresponding to each package system flavor that we support. Currently, I only have "pkg" which represents the current pkgsrc-native package flavor. I've separated out most of the code where we make assumptions about the package system flavor, mostly either because we directly use the pkg_* tools, or we make assumptions about the package meta-data directory, or we directly manipulate the package meta-data files, and placed it into pkgsrc/mk/flavor/pkg. There are several new modules that have been refactored out of bsd.pkg.mk as part of these changes: check, depends, install, package, and update. Each of these modules has been slimmed down by rewriting them to avoid some recursive make calls. I've also religiously documented which targets are "public" and which are "private" so that users won't rely on reaching into pkgsrc innards to call a private target. The "depends" module is a complete overhaul of the way that we handle dependencies. There is now a separate "depends" phase that occurs before the "extract" phase where dependencies are installed. This differs from the old way where dependencies were installed just before extraction occurred. The reduce-depends.mk file is now replaced by a script that is invoked only once during the depends phase and is used to generate a cookie file that holds the full set of reduced dependencies. It is now possible to type "make depends" in a package directory and all missing dependencies will be installed. Future work on this project include: * Resolve the workflow design in anticipation of future work on staged installations where "package" conceptually happens before "install". * Rewrite the buildlink3 framework to not assume the use of the pkgsrc pkg_* tools. * Rewrite the pkginstall framework to provide a standard pkg_* tool to perform the actions, and allowing a purely declarative file per package to describe what actions need to be taken at install or deinstall time. * Implement support for the SVR4 package flavor. This will be proof that the appropriate abstractions are in place to allow using a completely different set of package management tools.
2006-06-04 01:11:42 +02:00
pre-depends-hook: supported-options-message
supported-options-message:
. if !empty(PKG_SUPPORTED_OPTIONS)
@${ECHO} "=========================================================================="
@${ECHO} "The supported build options for ${PKGBASE} are:"
@${ECHO} ""
@${ECHO} ${PKG_SUPPORTED_OPTIONS:O:Q} | ${_PKG_OPTIONS_WORDWRAP_FILTER}
. if !empty(PKG_OPTIONS)
@${ECHO} ""
@${ECHO} "The currently selected options are:"
@${ECHO} ""
@${ECHO} ${PKG_OPTIONS:O:Q} | ${XARGS} -n 1 | ${_PKG_OPTIONS_WORDWRAP_FILTER}
. endif
@${ECHO} ""
@${ECHO} "You can select which build options to use by setting PKG_DEFAULT_OPTIONS"
@${ECHO} "or the following variable. Its current value is shown:"
@${ECHO} ""
. if !defined(${PKG_OPTIONS_VAR})
@${ECHO} " ${PKG_OPTIONS_VAR} (not defined)"
. else
@${ECHO} " ${PKG_OPTIONS_VAR} = "${${PKG_OPTIONS_VAR}:Q}
. endif
@set args ${PKG_OPTIONS_DEPRECATED_WARNINGS}; shift; \
[ $$# -eq 0 ] || ${ECHO}; \
for l in "$$@"; do \
${ECHO} "$$l"; \
done
@${ECHO} ""
@${ECHO} "=========================================================================="
. endif
.endif
.endif # BSD_OPTIONS_MK