on your system. It may be used to retrieve the information you require
to build applications using these libraries.
- If alternative builds of wxWidgets exist on the system, you can use the
- options: --prefix, --host, --toolkit, --unicode, --debug, --universal and
- --version, to select from them. Use the --list option to show all builds
- which match any specified criteria. The unicode, universal, and debug
- options take an optional yes or no argument, while host and version accept
- posix extended regex. eg. wx-config --unicode=n --debug --host=?.* --list
- will show all ansi-debug libraries installed, including cross libraries.
+ If alternative builds of wxWidgets exist on the system, you can use the
+ options: --prefix, --host, --toolkit, --unicode, --debug, --static,
+ --version and --universal, to select from them. Use the --list option to
+ show alternatives available which match specified criteria. The unicode,
+ debug, and universal options take an optional yes or no argument, while
+ host and version accept posix extended regex.
Optional LIB arguments (comma or space separated) may be used to specify
the wxWidgets libraries that you wish to use. The magic "std" label may
_remf_value="$1"
_remf_list=''
shift
- for _remf_item; do
- [ "x$_remf_item" = "x$_remf_value" ] || \
- _remf_list="${_remf_list:+$_remf_list }$_remf_item"
- done
- echo "$_remf_list"
+ if [ -n "$_remf_value" ]; then
+ for _remf_item; do
+ [ "x$_remf_item" = "x$_remf_value" ] || \
+ _remf_list="${_remf_list:+$_remf_list }$_remf_item"
+ done
+ echo "$_remf_list"
+ else
+ echo $*
+ fi
}
# validate_arg _domain _set _name _value
-# The only action we can perform authoritatively prior to delegation
-# is to list all the possible delegates.
-# --------------------------------------------------------------
-
-# find_eligible_delegates _mask
-# Outputs all the config files installed which match the
-# (extended regex) _mask passed as an argument.
-find_eligible_delegates() { echo "$installed_configs" | grep -E "$1" 2> /dev/null; }
-
-# user_mask_fits _config
-# Returns true if the string _config satisfies the user specified mask.
-user_mask_fits() { echo "$1" | grep -E "$configmask" > /dev/null 2>&1; }
-
-
-# Next chance for another satisfied customer then
-#
-# If we want to get really polished here we can do plural checking,
-# but we should probably leave that until the day we gettextise it.
-# If we have cpu cycles to spare for glitz, we could run the
-# find_best_delegate function over the list and mark the one that
-# would be used by default if no further disambiguation was to occur.
-# FIXME: This is probably useful to do in any case, but lets not
-# tangle them up until things settle down again.
-if [ -n "$output_option_list" ]; then
-
- _delegates="$(find_eligible_delegates $configmask)"
-
- if user_mask_fits "$this_config" ; then
-
- echo
- echo " This config ($this_config) will be used for output."
-
- if match_field "$this_config" $_delegates ; then
- _delegates=$(remove_field $this_config $_delegates)
- else
- echo " though it is not installed in:"
- echo " $wxconfdir"
- fi
-
- if [ -n "$_delegates" ]; then
- echo
- echo " You can select from the following alternates by explicitly"
- echo " specifying additional features to wx-config:"
- fi
-
- elif [ -z "$_delegates" ]; then
-
- cat <<-EOF
-
- No config found to match:
- $configmask
- in $wxconfdir
-
- This config is: $this_config
-
- Please install the desired library build, or use --list
- without any feature specifiers to see the available configs
- for this host. wx-config --list --host=?.* will list all
- installed configs including cross builds for other hosts.
-
- EOF
- exit 1
-
- else
- echo
- echo " The following installed configurations match your specification:"
- fi
-
- echo
- for i in $_delegates; do echo " $i"; done
- [ -z "$_delegates" ] || echo
-
- exit
-fi
-
-
-
-
-
-# From here, we now need to figure out a delegation target.
-# --------------------------------------------------------------
+# From here on, we'll need to be able to figure out a delegation target.
+# -----------------------------------------------------------------------
# The rules for delegation are:
#
# But first, more sugar to keep what follows clear and legible.
# --------------------------------------------------------------
+# find_eligible_delegates _mask
+# Outputs all the config files installed which match the
+# (extended regex) _mask passed as an argument.
+find_eligible_delegates() { echo "$installed_configs" | grep -E "$1" 2> /dev/null; }
+
+# user_mask_fits _config
+# Returns true if the string _config satisfies the user specified mask.
+user_mask_fits() { echo "$1" | grep -E "$configmask" > /dev/null 2>&1; }
+
# count_fields _word
# Returns the number of IFS split fields in _word
count_fields() { return $#; }
}
+# The only action we can perform authoritatively prior to delegation
+# is to list all the possible delegates.
+# --------------------------------------------------------------
+
+config_spec="$0 $*"
+[ -z "$WXDEBUG" ] || config_spec=$configmask
+
+# Next chance for another satisfied customer then
+#
+# If we want to get really polished here we can do plural checking,
+# but we should probably leave that until the day we gettextise it.
+if [ -n "$output_option_list" ]; then
+
+ _remains_in_prefix=$installed_configs
+ _delegates=$(find_eligible_delegates $configmask)
+ _best_delegate=$(find_best_delegate)
+
+ if [ "x$WXDEBUG" = "xverbose" ]; then
+ echo " all = $_remains_in_prefix"
+ echo " matching = $_delegates"
+ echo " best = $_best_delegate"
+ echo " this = $this_config"
+ fi
+
+ for d in $_delegates; do
+ _remains_in_prefix=$(remove_field $d $_remains_in_prefix)
+ done
+
+ echo
+ echo " Default config is $this_config"
+ echo
+
+ if user_mask_fits "$this_config" ; then
+
+ echo " Default config ${this_exec_prefix+in $this_exec_prefix }will be used for output"
+
+ if match_field "$this_config" $_delegates ; then
+ _delegates=$(remove_field $this_config $_delegates)
+ else
+ echo " though it is not installed in: $prefix"
+ if [ -n "$_best_delegate" ] && [ "x$_best_delegate" != "x$this_config" ]; then
+ echo
+ echo " Best alternate in $prefix:"
+ echo " $_best_delegate"
+ fi
+ fi
+
+ elif [ -n "$_best_delegate" ]; then
+
+ echo " Specification best match: $_best_delegate"
+
+ elif [ -z "$_delegates" ]; then
+
+ cat <<-EOF
+ No config found to match: $config_spec
+ in $wxconfdir
+
+ Please install the desired library build, or specify a different
+ prefix where it may be found. If the library is not installed
+ you may call its wx-config directly by specifying its full path.
+
+ EOF
+
+ else
+ echo " Specification was ambiguous. Use additional feature options"
+ echo " to choose between alternate matches."
+ fi
+
+ _delegates=$(remove_field "$_best_delegate" $_delegates)
+
+ if [ -n "$_delegates" ]; then
+ echo
+ echo " Alternate matches:"
+ for d in $_delegates; do
+ echo " $d"
+ done
+ fi
+ if [ -n "$_remains_in_prefix" ]; then
+ echo
+ echo " Also available in $prefix:"
+ for d in $_remains_in_prefix; do
+ echo " $d"
+ done
+ fi
+
+ echo
+ exit
+fi
+
+
-# And finally some cereal to sprinkle it all on.
+# ... so if that wasn't what they wanted, then we need to know for
+# certain, can this config satisfy the user specification?
# --------------------------------------------------------------
-# No more messing around, can this config satisfy the user specification?
if ! user_mask_fits "$this_config" ; then
# No? Then lets see if it knows anybody who can.
decho
decho " to: $0"
decho " ($this_config) cannot satisfy:"
- decho " $configmask"
+ decho " $config_spec"
decho " Someone has been terribly careless."
decho
exit 1
if [ $_numdelegates -eq 0 ]; then
cat 1>&2 <<-EOF
- No config found to match: $configmask
- in $wxconfdir
- Please install the desired library build, or use --list
- without any feature specifiers to see all available configs.
+ Warning: No config found to match: $config_spec
+ in $wxconfdir
+ If you require this configuration, please install the desired
+ library build. If this is part of an automated configuration
+ test and no other errors occur, you may safely ignore it.
+ You may use wx-config --list to see all configs available in
+ the default prefix.
EOF
fi
decho
- decho " Specification was ambiguous."
+ decho " *** Error: Specification is ambiguous"
+ decho " as $config_spec"
decho " Use additional feature options to choose between:"
for i in $(find_eligible_delegates "$configmask"); do
decho " $i"
-
-
# If we are still here, then from now on we are responsible for
# all the user's needs. Time to rustle up some output for them.
# --------------------------------------------------------------
[ -z "$WXDEBUG" ] || decho " using this config"
-if [ -n "$flag_option_inplace" ]; then
- # If the user supplied a prefix, then the in tree config did not
- # delegate out to anything in the user supplied prefix so reset
- # the prefixes back to provide the correct compile options for
- # this uninstalled wx build.
- prefix=$this_prefix
- exec_prefix=$this_exec_prefix
-fi
+# If the user supplied a prefix, and the in tree config did not
+# delegate out to anything in that prefix, then reset the build
+# tree prefix to provide the correct output for using this
+# uninstalled wx build. Or put more simply:
+prefix=${this_prefix-$prefix}
+exec_prefix=${this_exec_prefix-$exec_prefix}
includedir="@includedir@"
libdir="@libdir@"
if is_monolithic; then
# Core libs are already built into the blob.
- for i in @CORE_GUI_LIBS@ @CORE_BASE_LIBS@; do
+ for i in std @CORE_GUI_LIBS@ @CORE_BASE_LIBS@; do
wx_libs=$(remove_field $i $wx_libs)
done
# Endgame. Nothing left to discover now.
# --------------------------------------------------------------
-# cppflags
-# This function exists for no other reason than to make conditional
-# something that we may not use on several occasions. It outputs
-# the basic cppflags determined from information gleaned above.
-# Nothing below here will change what it outputs, only whether it
-# does or not.
-cppflags()
-{
- _cppflags="-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@"
-
- if [ -n "$flag_option_inplace" ]; then
- # Bring in all the headers as if the whole tree had been installed.
- _cppflags="$_cppflags -I$includedir -I${prefix}/contrib/include"
- else
- _cppflags="$_cppflags -I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@"
- fi
+[ -n "$this_linkage" ] || _static_cppflags="@TOOLCHAIN_DLL_DEFS@"
+[ "$using_gui" = "yes" ] || _gui_cppflags="-DwxUSE_GUI=0"
- _cppflags="$_cppflags @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@"
-
- [ -n "$this_linkage" ] || _cppflags="$_cppflags @TOOLCHAIN_DLL_DEFS@"
- [ "$using_gui" = "yes" ] || _cppflags="$_cppflags -DwxUSE_GUI=0"
-
- echo $_cppflags "@WXCONFIG_INCLUDE@" "@WX_LARGEFILE_FLAGS@" "@GCC_PRAGMA_FLAGS@"
-}
+if [ -n "$this_prefix" ]; then
+ _include_cppflags="-I${includedir} -I${prefix}/contrib/include"
+else
+ _include_cppflags="-I${includedir}/wx-@WX_RELEASE@@WX_FLAVOUR@"
+fi
+_cppflags=$(echo "-I${libdir}/wx/include/@TOOLCHAIN_FULLNAME@" $_include_cppflags "@WXDEBUG_DEFINE@" "@TOOLCHAIN_DEFS@" $_static_cppflags $_gui_cppflags "@WXCONFIG_INCLUDE@" "@WX_LARGEFILE_FLAGS@" "@GCC_PRAGMA_FLAGS@")
# now without further ado, we can answer these too.
-[ -z "$output_option_cppflags" ] || echo $(cppflags)
-[ -z "$output_option_cflags" ] || echo $(cppflags) "@CODE_GEN_FLAGS@"
-[ -z "$output_option_cxxflags" ] || echo $(cppflags) "@CODE_GEN_FLAGS@" "@CODE_GEN_FLAGS_CXX@"
+[ -z "$output_option_cppflags" ] || echo $_cppflags
+[ -z "$output_option_cflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@"
+[ -z "$output_option_cxxflags" ] || echo $_cppflags "@CODE_GEN_FLAGS@" "@CODE_GEN_FLAGS_CXX@"
[ -z "$output_option_gl_libs" ] || echo $(lib_flags_for gl)
if [ -n "$output_option_libs" ]; then