aboutsummaryrefslogtreecommitdiff
path: root/Mk/bsd.options.mk
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2012-05-29 09:54:27 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2012-05-29 09:54:27 +0000
commitc263127442a206e5cf495776d455bf60c6f8779f (patch)
treebcdb4f2d9298b4b4d299e28e4b13191fcac35002 /Mk/bsd.options.mk
parent8100f00a1d1fd78aed0d497a70093be94ec051fd (diff)
downloadports-c263127442a206e5cf495776d455bf60c6f8779f.tar.gz
ports-c263127442a206e5cf495776d455bf60c6f8779f.zip
Notes
Diffstat (limited to 'Mk/bsd.options.mk')
-rw-r--r--Mk/bsd.options.mk148
1 files changed, 148 insertions, 0 deletions
diff --git a/Mk/bsd.options.mk b/Mk/bsd.options.mk
new file mode 100644
index 000000000000..4a06a5c46a3d
--- /dev/null
+++ b/Mk/bsd.options.mk
@@ -0,0 +1,148 @@
+#-*- tab-width: 4; -*-
+# $FreeBSD$
+# Global options
+#
+
+##
+# 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
+
+OPTIONSFILE?= ${PORT_DBDIR}/${UNIQUENAME}/options
+
+#ALL_OPTIONS= DOCS \
+# NLS
+
+# Set the default values for the global options, as defined by portmgr
+PORT_OPTIONS+= NLS \
+ DOCS
+
+# Append options set by the port Makefile
+.for opt in ${OPTIONS_DEFINE}
+ALL_OPTIONS+= ${opt}
+.endfor
+
+ALL_OPTIONS:= ${ALL_OPTIONS:O:u}
+
+# Remove global options the port maintainer doesn't want
+.for opt in ${OPTIONS_EXCLUDE}
+ALL_OPTIONS:= ${ALL_OPTIONS:N${opt}}
+.endfor
+
+#XXX to kill when old option framework won't be used anymore
+.if defined(OPTIONS)
+. undef optname
+. for O in ${OPTIONS:S|\#|\\\#|g}
+opt:= ${O}
+. if !defined(optname)
+optname:= ${O}
+ALL_OPTIONS+= ${O}
+PORT_OPTIONS+= ${O}
+. elif !defined(optdesc)
+optdesc:= ${opt}
+${optname}_DESC:= ${opt}
+. else
+. if ${opt:L} == off
+. if defined(PORT_OPTIONS) && defined(optname)
+NO_OPTIONS+= ${optname}
+NO_OPTIONS:= ${NO_OPTIONS:O:u}
+. else
+. endif
+. endif
+. undef optname
+. undef optdesc
+. endif
+. endfor
+. if defined(NO_OPTIONS)
+. for O in ${NO_OPTIONS}
+PORT_OPTIONS:= ${PORT_OPTIONS:N${O}}
+. endfor
+. endif
+#. undef NO_OPTIONS
+.endif
+#XXX end of compatibility
+
+ALL_OPTIONS:= ${ALL_OPTIONS:O:u}
+
+## Now create the list of activated options
+.if defined(OPTIONS_OVERRIDE)
+# Special case $OPTIONS_OVERRIDE; if it is defined forget about anything done
+# before
+PORT_OPTIONS:= ${OPTIONS_OVERRIDE}
+.else
+
+## Set default options defined by the port maintainer
+. for opt in ${OPTIONS_DEFAULT}
+PORT_OPTIONS+= ${opt}
+. endfor
+PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
+
+## Set system-wide defined options (set by user in make.conf)
+. for opt in ${OPTIONS_SET}
+PORT_OPTIONS+= ${opt}
+. endfor
+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}}
+. endfor
+
+## Set the options specified per-port (set by user in make.conf)
+. for opt in ${${UNIQUENAME:U}_SET}
+PORT_OPTIONS+= ${opt}
+. endfor
+PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
+
+## Unset the options excluded per-port (set by user in make.conf)
+. for opt in ${${UNIQUENAME:U}_UNSET}
+PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+. endfor
+
+## options files (from dialog)
+. if exists(${OPTIONSFILE}) && !make(rmconfig)
+. include "${OPTIONSFILE}"
+. endif
+. if exists(${OPTIONSFILE}.local)
+. include "${OPTIONSFILE}.local"
+. endif
+
+# XXX(to be removed)
+. if defined(OPTIONS)
+. undef optname
+. for O in ${OPTIONS:C/".*"//g}
+. if defined(WITH_${O})
+PORT_OPTIONS+= ${O}
+PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
+. endif
+. if defined(WITHOUT_${O})
+PORT_OPTIONS:= ${PORT_OPTIONS:N${O}}
+. endif
+. endfor
+. endif
+# XXX(end to be removed)
+
+## Finish by using the options set by the port config dialog, if any
+. for opt in ${OPTIONS_FILE_SET}
+PORT_OPTIONS+= ${opt}
+. endfor
+PORT_OPTIONS:= ${PORT_OPTIONS:O:u}
+
+.for opt in ${OPTIONS_FILE_UNSET}
+PORT_OPTIONS:= ${PORT_OPTIONS:N${opt}}
+.endfor
+.undef opt
+
+.endif
+
+## Now some compatibility
+.if empty(PORT_OPTIONS:MDOCS)
+NOPORTDOCS= yes
+.endif
+
+.if empty(PORT_OPTIONS:MNLS)
+WITHOUT_NLS= yes
+.endif
+
+
+