]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
Script updates
[wxWidgets.git] / wx-config.in
index 8e2f8f811fd7eb5a28232fff4b0c907a8c681627..7b314ec6276a6c179554b3b6cda2d827de1e9e85 100755 (executable)
@@ -28,8 +28,14 @@ decho() { echo "$*" 1>&2; }
 
 # usage _exitcode
 # Outputs a usage message to stderr and exits with _exitcode.
-# Try to keep this to a single page.  We can add alternate help
-# targets if people want more detail from interactive help.
+# Try to keep this to a single page (ie. < 25 lines).  We can add
+# alternate or interactive help targets if people want more detail.
+#
+# Exit codes are now subject to a more strict interpretation.
+# wx-config should return 0 upon successful operation, 1 if the
+# reqested operation could not be completed successfully, and 2
+# if the requested operation is not supported by this version of
+# wx-config.
 usage()
 {
     cat 1>&2 <<EOF
@@ -39,6 +45,7 @@ usage()
            [--unicode[=yes|no]] [--debug[=yes|no]] [--static[=yes|no]]
            [--version[=VERSION]] [--basename] [--cppflags] [--cflags]
            [--cxxflags] [--rezflags] [--libs] [--cc] [--cxx] [--ld] [LIB ...]
+           [--utility=UTIL]
 
    wx-config returns  information about  the wxWidgets libraries available
    on your system.  It may be used to retrieve the information you require
@@ -49,7 +56,8 @@ usage()
   --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.
+  host and version  accept posix extended regex.   The --utility option will
+  return the correct version of UTIL to use with the selected library build.
 
     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
@@ -106,7 +114,7 @@ wxconfig_output_options="prefix exec_prefix                     \
 
 # Options that permit the user to supply hints that may affect the output.
 # These options all accept arbitrary values, to interpret as they please.
-wxconfig_input_options="prefix exec_prefix $wxconfig_schema" 
+wxconfig_input_options="prefix exec_prefix utility $wxconfig_schema"
 
 # Input options that accept only a yes or no argument.
 wxconfig_yesno_options="universal unicode debug static"
@@ -258,7 +266,7 @@ for arg; do
   esac
   decho "  *** Error: Unrecognised option: '$arg'"
   decho "Use wx-config --help for information on command line options."
-  exit 1
+  exit 2
 done
 
 # validate_arg only checks and decomposes form.  Sanity check the yes/no
@@ -725,13 +733,30 @@ if ! user_mask_fits "$this_config" ; then
         _last_chance=$(find_best_legacy_config)
         if [ -n "$_last_chance" ]; then
 
+            for arg; do
+                case "$arg" in
+                    --prefix*|--exec-prefix*|               \
+                    --version|--release|--basename|         \
+                    --static|--libs|--gl_libs|              \
+                    --cppflags|--cflags|--cxxflags|         \
+                    --cc|--cxx|--ld|                        \
+                    --rezflags|--inplace)
+                        _legacy_args="$_legacy_args $arg"
+                        ;;
+                    
+                    --static|--static=y*|--static=Y*)
+                        _legacy_args="$_legacy_args --static"
+                        ;;
+                esac
+            done
+
             if [ -n "$WXDEBUG" ]; then
                 decho "  found a suitable legacy delegate: $_last_chance"
-                decho "--> $prefix/bin/$_last_chance $*"
+                decho "--> $prefix/bin/$_last_chance $_legacy_args"
             fi
 
             export WXCONFIG_DELEGATED=yes
-            $prefix/bin/$_last_chance $*
+            $prefix/bin/$_last_chance $_legacy_args
             exit
 
         else
@@ -822,10 +847,11 @@ libdir="@libdir@"
 [ -z "$output_option_version"      ] || echo "@WX_VERSION@"
 [ -z "$output_option_version_full" ] || echo "@WX_SUBVERSION@"
 [ -z "$output_option_basename"     ] || echo "@WX_LIBRARY_BASENAME_GUI@"
-[ -z "$output_option_rezflags"     ] || echo $(eval echo @MACRESWXCONFIG@)
+[ -z "$output_option_rezflags"     ] || echo $(eval echo "@MACRESWXCONFIG@")
 [ -z "$output_option_cc"           ] || echo "@CC@"
 [ -z "$output_option_cxx"          ] || echo "@CXX@"
 [ -z "$output_option_ld"           ] || echo "@EXE_LINKER@"
+[ -z "$input_option_utility"       ] || echo "${input_option_utility}-@WX_RELEASE@@WX_FLAVOUR@"
 
 
 # The rest are going to need a little more work.
@@ -940,22 +966,18 @@ if is_monolithic; then
 
 else    # MONOLITHIC = 0
 
-    # Import everything by default, and base if it was omitted.
+    # Import everything by default, expand std if specified, or add base if omitted.
     if [ -z "$wx_libs" ]; then
         wx_libs="@CORE_GUI_LIBS@ @CORE_BASE_LIBS@"
-    elif ! match_field base $wx_libs ; then
-        wx_libs="$wx_libs base"
-    fi
-
-    # Expand the magic library 'std' to the default set.
-    # Only add those not already specified to future-proof
-    # against changes to std which would otherwise break
-    # people's builds.
-    if match_field std $wx_libs; then
+    elif match_field std $wx_libs; then
+        # Bubble any libs that were already specified to the end
+        # of the list and ensure static linking order is retained.
         wx_libs=$(remove_field std $wx_libs)
         for i in @CORE_GUI_LIBS@ @CORE_BASE_LIBS@; do
-            match_field "$i" $wx_libs || wx_libs="$wx_libs $i"
+            wx_libs="$(remove_field $i $wx_libs) $i"
         done
+    elif ! match_field base $wx_libs ; then
+        wx_libs="$wx_libs base"
     fi
 
     using_gui=no