]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
Actually use the OnStack test
[wxWidgets.git] / wx-config.in
index 00633b799238c7b8989aac39ea90a3a2580d9b77..d92f5c153023c552cafe056d776696cf247d56aa 100755 (executable)
@@ -14,7 +14,7 @@ is_monolithic="@MONOLITHIC@"
 cross_compiling="@cross_compiling@"
 target="@host_alias@"
 static_flag="@STATIC_FLAG@"
 cross_compiling="@cross_compiling@"
 target="@host_alias@"
 static_flag="@STATIC_FLAG@"
-
+inplace_flag="no"
 
 # Misc configuration variables:
 
 
 # Misc configuration variables:
 
@@ -48,6 +48,7 @@ TOOLCHAIN_DEFS="@TOOLCHAIN_DEFS@"
 TOOLCHAIN_DLL_DEFS="@TOOLCHAIN_DLL_DEFS@"
 WXCONFIG_INCLUDE="@WXCONFIG_INCLUDE@"
 WX_LARGEFILE_FLAGS="@WX_LARGEFILE_FLAGS@"
 TOOLCHAIN_DLL_DEFS="@TOOLCHAIN_DLL_DEFS@"
 WXCONFIG_INCLUDE="@WXCONFIG_INCLUDE@"
 WX_LARGEFILE_FLAGS="@WX_LARGEFILE_FLAGS@"
+GCC_PRAGMA_FLAGS="@GCC_PRAGMA_FLAGS@"
 CODE_GEN_FLAGS="@CODE_GEN_FLAGS@"
 CODE_GEN_FLAGS_CXX="@CODE_GEN_FLAGS_CXX@"
 LDFLAGS_EXE="@LDFLAGS_EXE@"
 CODE_GEN_FLAGS="@CODE_GEN_FLAGS@"
 CODE_GEN_FLAGS_CXX="@CODE_GEN_FLAGS_CXX@"
 LDFLAGS_EXE="@LDFLAGS_EXE@"
@@ -143,30 +144,16 @@ get_ldflags_gui()
     echo $flags_to_ret
 }
 
     echo $flags_to_ret
 }
 
-# return the absolute path prepending builddir to it if needed
-makeabs()
-{
-    path=$1
-    # TODO: this only works under Unix and even there it could be
-    #       enhanced to remove ".." and "."
-    if [ `echo $path | sed 's/^\(.\).*/\1/'` != "/" ]; then
-        if [ $path = "." ]; then
-            path=$builddir
-        else
-            path="$builddir/$path"
-        fi
-    fi
-
-    echo $path
-}
-
 usage()
 {
     cat <<EOF
 usage()
 {
     cat <<EOF
-Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
-                 [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
+Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--inplace]
+                 [--toolkit=TOOLKIT] [--unicode[=yes|no]] [--debug[=yes|no]]
+                 [--universal[=yes|no]] [--host=HOST]
+                 [--version[=VERSION]] [--release]
+                 [--list] [--basename] [--static] [--libs] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
-                 [--cc] [--cxx] [--ld]
+                 [--cc] [--cxx] [--ld] [LIBRARIES]
 
 wx-config returns configuration information about the installed
 version of wxWidgets. It may be used to query its version and
 
 wx-config returns configuration information about the installed
 version of wxWidgets. It may be used to query its version and
@@ -180,19 +167,25 @@ use it to enable builds with an uninstalled wxWidgets version for
 package building and bleeding edge developers.  To do so, use it like
 this:
 
 package building and bleeding edge developers.  To do so, use it like
 this:
 
-\${wx_builddir}/wx-config --prefix=\${wx_srcdir} --exec-prefix=\${wx_builddir}
+\${wx_builddir}/wx-config --inplace
 
 
-Note that any other options supplied must come *after* the prefix
-specification for it to take effect.
+Note that any other options supplied must come *after* --inplace
+for it to take effect.
 
 --static must come before --cppflags, --cflags, --cxxflags,
 
 --static must come before --cppflags, --cflags, --cxxflags,
---libs and --gl-libs.
+--libs and --gl-libs and --libs must come before the other ones.
 
 --libs can take optional argument that contains comma-separated list of
 wxWidgets libraries to link against. This list can include both core
 
 --libs can take optional argument that contains comma-separated list of
 wxWidgets libraries to link against. This list can include both core
-and contrib libraries.
+and contrib libraries. Special value "std" stands for all libraries linked
+in by default.
+
+--gl-libs option is deprecated, use "--libs gl" instead.
 
 
---gl-libs option is deprecated, used --libs=gl instead.
+If there are several different builds of wxWidgets installed in same prefix,
+you can use --host, --toolkit, --unicode, --debug, --universal and --version
+options to select one of them. Use --list option to show all available builds
+that match given criteria.
 
 EOF
 
 
 EOF
 
@@ -231,17 +224,69 @@ cppflags()
 
     includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes"
 
 
     includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes"
 
-    if test $static_flag = yes ; then
-        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
-    else
-        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
+    # in inplace case we need to also add path to contrib headers -- do it
+    # unconditionally as they might be used and we have no way of knowing if
+    # they really are
+    if test $inplace_flag = yes ; then
+        includes="$includes -I${prefix}/contrib/include"
+    fi
+
+    flags="$includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS}"
+    if test $static_flag != yes ; then
+        flags="$flags ${TOOLCHAIN_DLL_DEFS}"
     fi
     fi
+
+    if test $nogui_flag = "yes" ; then
+        flags="$flags -DwxUSE_GUI=0"
+    fi
+
+    echo "$flags${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}"
 }
 
 if test $# -eq 0; then
     usage 1 1>&2
 fi
 
 }
 
 if test $# -eq 0; then
     usage 1 1>&2
 fi
 
+
+# handle libraries list:
+
+libs_list=""
+
+for arg in $*; do
+  case "$arg" in
+    -*)
+      ;;
+    *)
+      libs_list="$libs_list `echo "$arg" | tr ',' ' '`"
+      ;;
+  esac
+done
+      
+if test "x$libs_list" = "x" ; then
+  if test "$is_monolithic" = "0" ; then
+    # link against all libs if none given explicitly:
+    libs_list="$CORE_GUI_LIBS $CORE_BASE_LIBS"
+  fi
+else
+  # always add wxBase, any wxApp needs it:
+  libs_list="$libs_list base"
+fi
+
+# determine if at least one gui lib was used:
+nogui_flag="yes"
+for i in $libs_list; do
+  case $i in
+      base|net)
+        ;;
+      *)
+        nogui_flag="no"
+        ;;
+  esac
+done
+
+
+# handle options:
+
 while test $# -gt 0; do
   case "$1" in
   -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
 while test $# -gt 0; do
   case "$1" in
   -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
@@ -250,10 +295,7 @@ while test $# -gt 0; do
 
   case $1 in
     --inplace)
 
   case $1 in
     --inplace)
-      prefix=`makeabs $srcdir`
-      exec_prefix=`makeabs $builddir`
-      exec_prefix_set=yes
-      update_prefixes
+      inplace_flag=yes
       ;;
     --prefix=*)
       prefix=$optarg
       ;;
     --prefix=*)
       prefix=$optarg
@@ -301,19 +343,7 @@ while test $# -gt 0; do
       echo `eval echo ${MACRESWXCONFIG}`
       ;;
 
       echo `eval echo ${MACRESWXCONFIG}`
       ;;
 
-    --libs*)
-      # find if the argument was --libs=list,of,libs or --libs:
-      if test "x$optarg" = "x" ; then
-          if test "$is_monolithic" = "0" ; then
-              # link against all libs if none given explicitly:
-              libs_list="$CORE_GUI_LIBS $CORE_BASE_LIBS"
-          fi
-      else
-          libs_list=`echo "$optarg" | tr ',' ' '`
-          # always add wxBase, any wxApp needs it:
-          libs_list="$libs_list base"
-      fi
-
+    --libs)
       # include install directory only if it is not default:
       if test "${libdir}" != "/usr/lib" \
               -a \( "${cross_compiling}" != "yes" \
       # include install directory only if it is not default:
       if test "${libdir}" != "/usr/lib" \
               -a \( "${cross_compiling}" != "yes" \
@@ -322,12 +352,14 @@ while test $# -gt 0; do
           libs="-L${libdir}"
       fi
 
           libs="-L${libdir}"
       fi
 
+      # it's simpler to avoid handling "base" itself at all as we add it in the
+      # end to the list of libraries anyhow
       # in monolithic build, link against the main library:
       if test "$is_monolithic" = "1" ; then
           # filter out core libs, leave only contrib in libs_list:
           newlist=
           for i in $libs_list ; do
       # in monolithic build, link against the main library:
       if test "$is_monolithic" = "1" ; then
           # filter out core libs, leave only contrib in libs_list:
           newlist=
           for i in $libs_list ; do
-              if isinlist $i $CORE_BASE_LIBS $CORE_GUI_LIBS ; then
+              if isinlist $i $CORE_GUI_LIBS $CORE_BASE_LIBS; then
                   libs_list="" # do nothing
               else
                   newlist="$newlist $i"
                   libs_list="" # do nothing
               else
                   newlist="$newlist $i"
@@ -343,6 +375,33 @@ while test $# -gt 0; do
               echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
           fi
       else
               echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
           fi
       else
+          # we may need to replace "std" alias with its expansion
+          newlist=
+          hadstd=0
+          for i in $libs_list; do
+              case $i in
+                  std)
+                    hadstd=1
+                    ;;
+
+                  base)
+                    # if we have std, we're going to add base anyhow, avoid
+                    # having it twice in the end
+                    if [ $hadstd = 0 ]; then
+                        newlist="$newlist $i"
+                    fi
+                    ;;
+
+                  *)
+                    newlist="$newlist $i"
+                    ;;
+              esac
+          done
+          libs_list="$newlist"
+          if [ $hadstd = 1 ]; then
+              libs_list="$libs_list $CORE_GUI_LIBS $CORE_BASE_LIBS"
+          fi
+
           # in multilib mode, link against all sublibraries:
           wxlibs=`output_libs $libs_list`
           guildflags=`get_ldflags_gui $libs_list`
           # in multilib mode, link against all sublibraries:
           wxlibs=`output_libs $libs_list`
           guildflags=`get_ldflags_gui $libs_list`
@@ -362,7 +421,11 @@ while test $# -gt 0; do
     --ld)
       echo $LD
       ;;
     --ld)
       echo $LD
       ;;
-    *)
+    --help|-h)
+      usage 1 1>&2
+      ;;
+    -*)
+      # unrecognized flag is error
       usage 1 1>&2
       ;;
   esac
       usage 1 1>&2
       ;;
   esac