diff options
Diffstat (limited to 'mk/bsd.options.mk')
-rw-r--r-- | mk/bsd.options.mk | 417 |
1 files changed, 0 insertions, 417 deletions
diff --git a/mk/bsd.options.mk b/mk/bsd.options.mk deleted file mode 100644 index 699facbd5b4..00000000000 --- a/mk/bsd.options.mk +++ /dev/null @@ -1,417 +0,0 @@ -# $NetBSD: bsd.options.mk,v 1.49 2005/09/05 15:24:08 dillo Exp $ -# -# 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: -# -# 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 -# -# 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 -# 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: -# -# 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. -# -# 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<------------- -# PKG_OPTIONS_VAR= PKG_OPTIONS.wibble -# PKG_SUPPORTED_OPTIONS= wibble-foo ldap sasl -# 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 -# -# # this package was previously named wibble2 -# .include "../../mk/bsd.prefs.mk" -# -# .if defined(PKG_OPTIONS.wibble2) -# PKG_LEGACY_OPTIONS+= ${PKG_OPTIONS.wibble2} -# PKG_OPTIONS_DEPRECATED_WARNINGS+="Deprecated variable PKG_OPTIONS.wibble2 used, use "${PKG_OPTIONS_VAR:Q}" instead." -# .endif -# -# .include "../../mk/bsd.options.mk" -# -# # Package-specific option-handling -# -# ### -# ### FOO support -# ### -# .if !empty(PKG_OPTIONS:Mwibble-foo) -# CONFIGURE_ARGS+= --enable-foo -# .endif - -# ### -# ### 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 -# -# ### -# ### database support -# ### -# .if !empty(PKG_OPTIONS:Mmysql) -# . include "../../mk/mysql.buildlink3.mk" -# .endif -# .if !empty(PKG_OPTIONS:Mpgsql) -# . include "../../mk/pgsql.buildlink3.mk" -# .endif -# -------------8<-------------8<-------------8<-------------8<------------- - -.include "../../mk/bsd.prefs.mk" - -# Define PKG_OPTIONS, no matter if we have an error or not, to suppress -# further make(1) warnings. -PKG_OPTIONS= # empty - -# 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." -.elif !defined(PKG_SUPPORTED_OPTIONS) && !defined(PKG_OPTIONS_OPTIONAL_GROUPS) && !defined(PKG_OPTIONS_REQUIRED_GROUPS) && !defined(PKG_OPTIONS_NONEMPTY_SETS) -# no supported options: set PKG_OPTIONS to empty and skip rest of file -PKG_OPTIONS= #empty -.else # process the rest of the file - -# -# 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 "${.CURDIR}/../../mk/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 -.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 -# -_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 -. 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:="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:="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:= "The following selected options are not supported: "${_OPTIONS_UNSUPPORTED:O:u:Q}"." -.endif - -.undef _OPTIONS_UNSUPPORTED -.undef _OPTIONS_DEFAULT_SUPPORTED -PKG_OPTIONS:= ${PKG_OPTIONS:O:u} - -_PKG_OPTIONS_WORDWRAP_FILTER= \ - ${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: "${PKG_SUGGESTED_OPTIONS:O:Q} - @${ECHO} "These options are currently enabled: "${PKG_OPTIONS:O:Q} -. if defined(PKG_OPTIONS_DEPRECATED_WARNINGS) - @${ECHO} - @for l in ${PKG_OPTIONS_DEPRECATED_WARNINGS}; \ - do \ - ${ECHO} "$$l"; \ - done -. endif - -.if defined(PKG_SUPPORTED_OPTIONS) -.PHONY: supported-options-message -pre-install-depends: supported-options-message -supported-options-message: -. if !empty(PKG_SUPPORTED_OPTIONS) - @${ECHO} "==========================================================================" - @${ECHO} "The supported build options for this package are:" - @${ECHO} "" - @${ECHO} ${PKG_SUPPORTED_OPTIONS:O:Q} | ${XARGS} -n 1 | ${_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}}" -. endif -. if defined(PKG_OPTIONS_DEPRECATED_WARNINGS) - @${ECHO} - @for l in ${PKG_OPTIONS_DEPRECATED_WARNINGS}; \ - do \ - ${ECHO} "$$l"; \ - done -. endif - @${ECHO} "" - @${ECHO} "==========================================================================" -. endif -.endif - -.endif # defined(PKG_OPTIONS_VAR) && defined(PKG_SUPPORTED_OPTIONS) |