svn commit: r320908 - in head: . Mk
Tijl Coosemans
tijl at FreeBSD.org
Fri Jun 14 12:59:03 UTC 2013
Author: tijl
Date: Fri Jun 14 12:59:02 2013
New Revision: 320908
URL: http://svnweb.freebsd.org/changeset/ports/320908
Log:
Let config-conditional take options configured in make.conf into account.
The option dialog will not appear if all options have been configured
before, either using the dialog or in make.conf. This means you can set
options once for all ports in make.conf and not have dialogs pop up if
those are the only options.
Also let config-conditional run make config instead of do-config. Make
config handles NO_DIALOG and pre-config.
Discussed with: danfe
Approved by: portmgr (bapt)
Modified:
head/Mk/bsd.options.mk
head/Mk/bsd.port.mk
head/UPDATING
Modified: head/Mk/bsd.options.mk
==============================================================================
--- head/Mk/bsd.options.mk Fri Jun 14 12:49:56 2013 (r320907)
+++ head/Mk/bsd.options.mk Fri Jun 14 12:59:02 2013 (r320908)
@@ -45,14 +45,12 @@
##
# Set all the options available for the ports, beginning with the
# global ones and ending with the ones decided by the maintainer.
-# Options global to the entire ports tree
+
.if !defined(OPTIONSMKINCLUDED)
OPTIONSMKINCLUDED= bsd.options.mk
OPTIONSFILE?= ${PORT_DBDIR}/${UNIQUENAME}/options
-GLOBAL_OPTIONS= DOCS NLS EXAMPLES IPV6
-
# Set the default values for the global options, as defined by portmgr
.if !defined(NOPORTDOCS)
PORT_OPTIONS+= DOCS
@@ -116,8 +114,10 @@ COMPLETE_OPTIONS_LIST+= ${OPTIONS_${otyp
.if defined(OPTIONS_OVERRIDE)
# Special case $OPTIONS_OVERRIDE; if it is defined forget about anything done
# before
+NEW_OPTIONS=
PORT_OPTIONS:= ${OPTIONS_OVERRIDE}
.else
+NEW_OPTIONS= ${COMPLETE_OPTIONS_LIST}
## Set default options defined by the port maintainer
. for opt in ${OPTIONS_DEFAULT}
@@ -129,6 +129,7 @@ PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
. for opt in ${OPTIONS_SET}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
. endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
@@ -136,12 +137,14 @@ PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
## Remove the options excluded system-wide (set by user in make.conf)
. for opt in ${OPTIONS_UNSET}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endfor
## Set the options specified per-port (set by user in make.conf)
. for opt in ${${UNIQUENAME}_SET}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
. endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
@@ -149,6 +152,7 @@ PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
## Unset the options excluded per-port (set by user in make.conf)
. for opt in ${${UNIQUENAME}_UNSET}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endfor
## options files (from dialog)
@@ -174,12 +178,14 @@ PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
. for opt in ${OPTIONS_FILE_SET}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
. endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
.for opt in ${OPTIONS_FILE_UNSET}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
.endfor
.undef opt
@@ -190,6 +196,7 @@ PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
. for opt in ${OPTIONS_SET_FORCE}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
. endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
@@ -197,12 +204,14 @@ PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
## Remove the options excluded system-wide (set by user in make.conf)
. for opt in ${OPTIONS_UNSET_FORCE}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endfor
## Set the options specified per-port (set by user in make.conf)
. for opt in ${${UNIQUENAME}_SET_FORCE}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
. endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
@@ -210,6 +219,7 @@ PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
## Unset the options excluded per-port (set by user in make.conf)
. for opt in ${${UNIQUENAME}_UNSET_FORCE}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endfor
@@ -217,12 +227,14 @@ PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
.for opt in ${WITH}
. if !empty(COMPLETE_OPTIONS_LIST:M${opt})
PORT_OPTIONS+= ${opt}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
. endif
.endfor
PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
.for opt in ${WITHOUT}
PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+NEW_OPTIONS:= ${NEW_OPTIONS:N${opt}}
.endfor
.for opt in ${OPTIONS_SLAVE}
@@ -262,8 +274,3 @@ WITH_${opt}:= true
.endfor
.endif
###
-
-_OPTIONS_WITHOUT_GLOBALS:= ${COMPLETE_OPTIONS_LIST}
-.for opt in ${GLOBAL_OPTIONS}
-_OPTIONS_WITHOUT_GLOBALS:= ${_OPTIONS_WITHOUT_GLOBALS:N${opt}}
-.endfor
Modified: head/Mk/bsd.port.mk
==============================================================================
--- head/Mk/bsd.port.mk Fri Jun 14 12:49:56 2013 (r320907)
+++ head/Mk/bsd.port.mk Fri Jun 14 12:59:02 2013 (r320908)
@@ -6168,11 +6168,9 @@ config-recursive:
.endif # config-recursive
.if !target(config-conditional)
-config-conditional: pre-config
-.if defined(COMPLETE_OPTIONS_LIST) && !empty(_OPTIONS_WITHOUT_GLOBALS) && !defined(NO_DIALOG)
-. if !defined(_FILE_COMPLETE_OPTIONS_LIST) || ${COMPLETE_OPTIONS_LIST:O} != ${_FILE_COMPLETE_OPTIONS_LIST:O}
- @cd ${.CURDIR} && ${MAKE} do-config;
-. endif
+config-conditional:
+.if !empty(NEW_OPTIONS)
+ @cd ${.CURDIR} && ${MAKE} config;
.endif
.endif # config-conditional
Modified: head/UPDATING
==============================================================================
--- head/UPDATING Fri Jun 14 12:49:56 2013 (r320907)
+++ head/UPDATING Fri Jun 14 12:59:02 2013 (r320908)
@@ -5,6 +5,19 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
+20130614:
+ AFFECTS: users who set port options in make.conf
+ AUTHOR: tijl at FreeBSD.org
+
+ Configuring options in make.conf using variables like OPTIONS_SET and
+ OPTIONS_UNSET now also suppresses the option dialog for those options.
+ This means that when building a port the option dialog will only appear if
+ there are truly new options that have not been configured before using either
+ the dialog or make.conf. This allows you to set options like DOCS, NLS,
+ X11, etc. once for all ports and not have option dialogs pop up if those are
+ the only options. For a list of variables you can set in make.conf to
+ control options see Mk/bsd.options.mk.
+
20130612:
AFFECTS: users of lang/perl* and any port that depends on it
AUTHOR: az at FreeBSD.org
More information about the svn-ports-head
mailing list