]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
made GetTextExtent() work correctly with NULL theFont parameter (m_font might nto...
[wxWidgets.git] / wx-config.in
index 339883adb89f4381ebf705757a8401d276667cb9..0123a724cd9a27146aee3ea7c0d0d692e6a28ecc 100755 (executable)
@@ -1,36 +1,86 @@
 #!/bin/sh
 
 #!/bin/sh
 
-# Generic configuration variables:
-prefix=@prefix@
-exec_prefix=@exec_prefix@
-exec_prefix_set=no
+# -------------------------------------------------------------------------
+#                              Configured settings:
+# -------------------------------------------------------------------------
+
+# Version and build type information:
+
+WX_MAJOR_VERSION_NUMBER="@WX_MAJOR_VERSION_NUMBER@"
+WX_MINOR_VERSION_NUMBER="@WX_MINOR_VERSION_NUMBER@"
+WX_RELEASE_NUMBER="@WX_RELEASE_NUMBER@"
+release="@WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@"
+is_monolithic="@MONOLITHIC@"
+cross_compiling="@cross_compiling@"
+target="@host_alias@"
+static_flag="@STATIC_FLAG@"
+inplace_flag="no"
+
+# Misc configuration variables:
+
+update_prefixes()
+{
+    includedir="@includedir@"
+    libdir="@libdir@"
+}
+prefix="@prefix@"
+exec_prefix="@exec_prefix@"
+update_prefixes
+
 CC="@CC@"
 GCC="@GCC@"
 CC="@CC@"
 GCC="@GCC@"
+GCC_SEARCHES_USR_LOCAL_INCLUDE="@GCC_SEARCHES_USR_LOCAL_INCLUDE@"
 CXX="@CXX@"
 LD="@SHARED_LD@"
 CXX="@CXX@"
 LD="@SHARED_LD@"
-srcdir=@top_srcdir@
-builddir=@top_builddir_wxconfig@
-cross_compiling=@cross_compiling@
-target=@host_alias@
-static_flag=@STATIC_FLAG@
-basename_nogui=@WX_LIBRARY_BASENAME_NOGUI@
-basename_gui=@WX_LIBRARY_BASENAME_GUI@
-release=@WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@
-is_monolithic=@MONOLITHIC@
+srcdir="@top_srcdir@"
+builddir="@top_builddir_wxconfig@"
+basename_nogui="@WX_LIBRARY_BASENAME_NOGUI@"
+basename_gui="@WX_LIBRARY_BASENAME_GUI@"
+
+TOOLCHAIN_NAME="@TOOLCHAIN_NAME@"
+LDFLAGS="@LDFLAGS@"
+WXCONFIG_RPATH="@WXCONFIG_RPATH@"
+DMALLOC_LIBS="@DMALLOC_LIBS@"
+WXCONFIG_LIBS="@WXCONFIG_LIBS@"
+WXCONFIG_LIBS_STATIC="@WXCONFIG_LIBS_STATIC@"
+WXDEBUG_DEFINE="@WXDEBUG_DEFINE@"
+TOOLCHAIN_DEFS="@TOOLCHAIN_DEFS@"
+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@"
+MACRESWXCONFIG="@MACRESWXCONFIG@"
+EXTRALIBS_GUI="@EXTRALIBS_GUI@"
+LIBS="@LIBS@"
+WXCONFIG_LDFLAGS_GUI="@WXCONFIG_LDFLAGS_GUI@"
 
 
 # Linker flags for sublibraries:
 
 
 # Linker flags for sublibraries:
-CORE_BASE_LIBS="xml net base"
-CORE_GUI_LIBS="html core"
 
 
-ldlibs_base="@LIBS@"
+CORE_BASE_LIBS="@CORE_BASE_LIBS@"
+CORE_GUI_LIBS="@CORE_GUI_LIBS@"
+
+ldlibs_base="@WXCONFIG_EXTRALIBS@"
 ldlibs_core="@EXTRALIBS_GUI@"
 ldlibs_xml="@EXTRALIBS_XML@"
 ldlibs_core="@EXTRALIBS_GUI@"
 ldlibs_xml="@EXTRALIBS_XML@"
+ldlibs_html="@EXTRALIBS_HTML@"
+ldlibs_odbc="@EXTRALIBS_ODBC@"
+ldlibs_adv="@EXTRALIBS_SDL@"
 
 ldflags_gl="@LDFLAGS_GL@"
 ldlibs_gl="@OPENGL_LIBS@"
 
 
 
 ldflags_gl="@LDFLAGS_GL@"
 ldlibs_gl="@OPENGL_LIBS@"
 
 
+
+# -------------------------------------------------------------------------
+#                                Script code:
+# -------------------------------------------------------------------------
+
+exec_prefix_set=no
+
 # is $1 among the rest of arguments?
 isinlist()
 {
 # is $1 among the rest of arguments?
 isinlist()
 {
@@ -47,10 +97,14 @@ isinlist()
 # (does not handle monolithic/multilib):
 output_libs()
 {
 # (does not handle monolithic/multilib):
 output_libs()
 {
+    if test "$cross_compiling" = "yes" ; then
+        target_tag="-${target}"
+    fi
+
     all_libs=""
     all_ldflags=""
     wxlibs=""
     all_libs=""
     all_ldflags=""
     wxlibs=""
-      
+
     for lib in $* ; do
         eval xlibs=\$ldlibs_$lib
         eval xflags=\$ldflags_$lib
     for lib in $* ; do
         eval xlibs=\$ldlibs_$lib
         eval xflags=\$ldflags_$lib
@@ -59,19 +113,37 @@ output_libs()
         else
             basename=$basename_gui
         fi
         else
             basename=$basename_gui
         fi
+        if test $lib = "base" ; then
+            libname="$basename"
+        else
+            libname="${basename}_${lib}"
+        fi
 
         all_ldflags="$all_ldflags $xflags"
         if test $static_flag = yes ; then
 
         all_ldflags="$all_ldflags $xflags"
         if test $static_flag = yes ; then
-            wxlibs="$wxlibs @libdir@/lib${basename}_${lib}-${release}.a"
+            wxlibs="$wxlibs ${libdir}/lib${libname}-${release}${target_tag}.a"
             all_libs="$all_libs $xlibs"
         else
             all_libs="$all_libs $xlibs"
         else
-            wxlibs="$wxlibs -l${basename}_${lib}-${release}"
+            wxlibs="$wxlibs -l${libname}-${release}${target_tag}"
         fi
     done
 
     echo $all_ldflags $wxlibs $all_libs
 }
 
         fi
     done
 
     echo $all_ldflags $wxlibs $all_libs
 }
 
+# output $(WXCONFIG_LDFLAGS_GUI) if any of libs passed as arguments is GUI
+# library, nothing otherwise:
+get_ldflags_gui()
+{
+    flags_to_ret=""
+    for lib in $* ; do
+        if isinlist $lib $CORE_GUI_LIBS ; then
+            flags_to_ret="$WXCONFIG_LDFLAGS_GUI"
+        fi
+    done
+    echo $flags_to_ret
+}
+
 # return the absolute path prepending builddir to it if needed
 makeabs()
 {
 # return the absolute path prepending builddir to it if needed
 makeabs()
 {
@@ -96,16 +168,17 @@ Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
                  [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
                  [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
                  [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
+                 [--inplace]
 
 wx-config returns configuration information about the installed
 
 wx-config returns configuration information about the installed
-version of wxWindows. It may be used to query its version and
+version of wxWidgets. It may be used to query its version and
 installation directories and also retrieve the C and C++ compilers
 and linker which were used for its building and the corresponding
 flags.
 
 Ordinarily it should be installed to the appropriate system location
 along with the headers and library files, but it is also possible to
 installation directories and also retrieve the C and C++ compilers
 and linker which were used for its building and the corresponding
 flags.
 
 Ordinarily it should be installed to the appropriate system location
 along with the headers and library files, but it is also possible to
-use it to enable builds with an uninstalled wxWindows version for
+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:
 
@@ -114,11 +187,19 @@ this:
 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* the prefix
 specification for it to take effect.
 
---static must come before --libs and --gl-libs.
+--static must come before --cppflags, --cflags, --cxxflags,
+--libs and --gl-libs.
 
 --libs can take optional argument that contains comma-separated list of
 
 --libs can take optional argument that contains comma-separated list of
-wxWindows libraries to link against. This list can include both core
-and contrib libraries.
+wxWidgets libraries to link against. This list can include both core
+and contrib libraries. Special value "std" stands for all libraries linked
+in by default.
+
+--gl-libs option is deprecated, used --libs=gl instead.
+
+The --inplace flag allows wx-config to be used from the wxWindows
+build directory and output flags to use the uninstalled version of
+the headers and libs in the build directory.
 
 EOF
 
 
 EOF
 
@@ -133,31 +214,41 @@ cppflags()
     # the ANSI-fied versions of them in its private directory which is searched
     # after all the directories on the cmd line.
     #
     # the ANSI-fied versions of them in its private directory which is searched
     # after all the directories on the cmd line.
     #
-    # the situation is a bit more complicated with -I/usr/local/include: again,
-    # it shouldn't be specified with gcc which looks there by default anyhow
-    # and gives warnings (at least 3.1 does) if it is specified explicitly --
-    # but this -I switch *is* needed for the other compilers
+    # the situation is a bit more complicated with -I/usr/local/include:
+    # it shouldn't be specified with some gcc installations which look there
+    # by default anyhow and give warnings (at least 3.1 does) if it is
+    # specified explicitly --
+    # but this -I switch *is* needed for other gcc installation and for
+    # the other compilers.
+    # So I put a suitable test into configure.in and reuse the result here.
     #
     # note that we assume that if we use GNU cc we also use GNU c++ and vice
     # versa, i.e. this won't work (either for --cflags or --cxxflags) if GNU C
     # compiler and non-GNU C++ compiler are used or vice versa -- we'll fix
     # this when/if anybody complains about it
     #
     # note that we assume that if we use GNU cc we also use GNU c++ and vice
     # versa, i.e. this won't work (either for --cflags or --cxxflags) if GNU C
     # compiler and non-GNU C++ compiler are used or vice versa -- we'll fix
     # this when/if anybody complains about it
-    if test "@includedir@" != "/usr/include" \
-            -a "@includedir@" != "/usr/include/c++" \
-            -a \( "${GCC}" != "yes" \
-                  -o "@includedir@" != "/usr/local/include" \) \
+    if test "${includedir}" != "/usr/include" \
+            -a "${includedir}" != "/usr/include/c++" \
+            -a \( "${GCC_SEARCHES_USR_LOCAL_INCLUDE}" != "yes" \
+                  -o "${includedir}" != "/usr/local/include" \) \
             -a \( "${cross_compiling}" != "yes" \
             -a \( "${cross_compiling}" != "yes" \
-                  -o "@includedir@" != "/usr/${target}/include" \) ;
+                  -o "${includedir}" != "/usr/${target}/include" \) ;
     then
     then
-        includes=" -I@includedir@"
+        includes=" -I${includedir}"
     fi
 
     fi
 
-    includes="-I@libdir@/wx/include/@TOOLCHAIN_NAME@$includes"
+    includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes"
+
+    # 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
 
     if test $static_flag = yes ; then
 
     if test $static_flag = yes ; then
-        echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @WXCONFIG_INCLUDE@ @WX_LARGEFILE_FLAGS@
+        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}
     else
     else
-        echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @TOOLCHAIN_DLL_DEFS@ @WXCONFIG_INCLUDE@ @WX_LARGEFILE_FLAGS@
+        echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} ${GCC_PRAGMA_FLAGS}
     fi
 }
 
     fi
 }
 
@@ -176,12 +267,15 @@ while test $# -gt 0; do
       prefix=`makeabs $srcdir`
       exec_prefix=`makeabs $builddir`
       exec_prefix_set=yes
       prefix=`makeabs $srcdir`
       exec_prefix=`makeabs $builddir`
       exec_prefix_set=yes
+      inplace_flag=yes
+      update_prefixes
       ;;
     --prefix=*)
       prefix=$optarg
       if test $exec_prefix_set = no ; then
         exec_prefix=$optarg
       fi
       ;;
     --prefix=*)
       prefix=$optarg
       if test $exec_prefix_set = no ; then
         exec_prefix=$optarg
       fi
+      update_prefixes
       ;;
     --prefix)
       echo $prefix
       ;;
     --prefix)
       echo $prefix
@@ -189,18 +283,19 @@ while test $# -gt 0; do
     --exec-prefix=*)
       exec_prefix=$optarg
       exec_prefix_set=yes
     --exec-prefix=*)
       exec_prefix=$optarg
       exec_prefix_set=yes
+      update_prefixes
       ;;
     --exec-prefix)
       echo $exec_prefix
       ;;
     --version)
       ;;
     --exec-prefix)
       echo $exec_prefix
       ;;
     --version)
-      echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@.@WX_RELEASE_NUMBER@
+      echo ${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}.${WX_RELEASE_NUMBER}
       ;;
     --release)
       echo $release
       ;;
     --basename)
       ;;
     --release)
       echo $release
       ;;
     --basename)
-      echo $basename
+      echo $basename_gui
       ;;
     --static)
       static_flag=yes
       ;;
     --static)
       static_flag=yes
@@ -209,16 +304,16 @@ while test $# -gt 0; do
       cppflags
       ;;
     --cflags)
       cppflags
       ;;
     --cflags)
-      echo `cppflags` @CODE_GEN_FLAGS@
+      echo `cppflags` ${CODE_GEN_FLAGS}
       ;;
     --cxxflags)
       ;;
     --cxxflags)
-      echo `cppflags` @CODE_GEN_FLAGS@ @CODE_GEN_FLAGS_CXX@
+      echo `cppflags` ${CODE_GEN_FLAGS} ${CODE_GEN_FLAGS_CXX}
       ;;
     --ldflags)
       ;;
     --ldflags)
-      echo @LDFLAGS_EXE@
+      echo ${LDFLAGS_EXE}
       ;;
     --rezflags)
       ;;
     --rezflags)
-      echo @MACRESWXCONFIG@
+      echo `eval echo ${MACRESWXCONFIG}`
       ;;
 
     --libs*)
       ;;
 
     --libs*)
@@ -230,40 +325,72 @@ while test $# -gt 0; do
           fi
       else
           libs_list=`echo "$optarg" | tr ',' ' '`
           fi
       else
           libs_list=`echo "$optarg" | tr ',' ' '`
+          # always add wxBase, any wxApp needs it:
+          libs_list="$libs_list base"
       fi
 
       # include install directory only if it is not default:
       fi
 
       # include install directory only if it is not default:
-      if test "@libdir@" != "/usr/lib" \
+      if test "${libdir}" != "/usr/lib" \
               -a \( "${cross_compiling}" != "yes" \
               -a \( "${cross_compiling}" != "yes" \
-                    -o "@libdir@" != "/usr/${target}/lib" \) ;
+                    -o "${libdir}" != "/usr/${target}/lib" \) ;
       then
       then
-          libs="-L@libdir@"
+          libs="-L${libdir}"
       fi
 
       fi
 
+      # it's simpler to avoid handling "bae" 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"
               fi
           done
           libs_list="$newlist"
                   libs_list="" # do nothing
               else
                   newlist="$newlist $i"
               fi
           done
           libs_list="$newlist"
-          
+
           # output link flags:
           contrib_libs=`output_libs $libs_list`
           if test $static_flag = yes ; then
           # output link flags:
           contrib_libs=`output_libs $libs_list`
           if test $static_flag = yes ; then
-              echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ $contrib_libs @libdir@/@WXCONFIG_LIBS_STATIC@ @EXTRALIBS_GUI@ @LIBS@ @DMALLOC_LIBS@"
+              echo "$libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${libdir}/${WXCONFIG_LIBS_STATIC} ${EXTRALIBS_GUI} ${LIBS} ${DMALLOC_LIBS}"
           else
           else
-              echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ $contrib_libs @WXCONFIG_LIBS@ @DMALLOC_LIBS@
+              echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
           fi
       else
           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`
           # in multilib mode, link against all sublibraries:
           wxlibs=`output_libs $libs_list`
-          echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ $wxlibs @DMALLOC_LIBS@
+          guildflags=`get_ldflags_gui $libs_list`
+          echo $libs ${LDFLAGS} ${guildflags} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS}
       fi
 
       ;;
       fi
 
       ;;