]> git.saurik.com Git - wxWidgets.git/blobdiff - wx-config.in
fix memory leak as Dimitri suggested
[wxWidgets.git] / wx-config.in
index 86218ba3ab0540274706e3962daf10a59b4927dd..878c325284cc9c98048a98b8afec68d00fefbdd6 100755 (executable)
@@ -4,17 +4,38 @@ prefix=@prefix@
 exec_prefix=@exec_prefix@
 exec_prefix_set=no
 CC="@CC@"
+GCC="@GCC@"
 CXX="@CXX@"
 LD="@SHARED_LD@"
+srcdir=@top_srcdir@
+builddir=@top_builddir@
 cross_compiling=@cross_compiling@
 target=@host_alias@
-static_flag=no
+static_flag=@STATIC_FLAG@
+
+# 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: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--static]
-                 [--libs] [--gl-libs] [--cppflags] [--cflags] [--cxxflags] [--rezflags]
+                 [--libs] [--gl-libs]
+                 [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                  [--cc] [--cxx] [--ld]
 
 wx-config returns configuration information about the installed
@@ -22,6 +43,18 @@ version of wxWindows. 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
+use it to enable builds with an uninstalled wxWindows version for
+package building and bleeding edge developers.  To do so, use it like
+this:
+
+\${wx_builddir}/wx-config --prefix=\${wx_srcdir} --exec-prefix=\${wx_builddir}
+
+Note that any other options supplied must come *after* the prefix
+specification for it to take effect.
+
 EOF
 
     exit $1
@@ -29,20 +62,37 @@ EOF
 
 cppflags()
 {
+    # we should never specify -I/usr/include on the compiler command line: this
+    # is at best useless and at worst breaks compilation on the systems where
+    # the system headers are non-ANSI because gcc works around this by storing
+    # 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
+    #
+    # 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" \) \
             -a \( "${cross_compiling}" != "yes" \
                   -o "@includedir@" != "/usr/${target}/include" \) ;
     then
-        includes=-I@includedir@
+        includes=" -I@includedir@"
     fi
 
-    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@
+        echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @WXCONFIG_INCLUDE@ @WX_LARGEFILE_FLAGS@
     else
-        echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @TOOLCHAIN_DLL_DEFS@ @WXCONFIG_INCLUDE@
+        echo $includes @WXDEBUG_DEFINE@ @TOOLCHAIN_DEFS@ @TOOLCHAIN_DLL_DEFS@ @WXCONFIG_INCLUDE@ @WX_LARGEFILE_FLAGS@
     fi
 }
 
@@ -57,6 +107,11 @@ while test $# -gt 0; do
   esac
 
   case $1 in
+    --inplace)
+      prefix=`makeabs $srcdir`
+      exec_prefix=`makeabs $builddir`
+      exec_prefix_set=yes
+      ;;
     --prefix=*)
       prefix=$optarg
       if test $exec_prefix_set = no ; then
@@ -88,8 +143,11 @@ while test $# -gt 0; do
     --cxxflags)
       echo `cppflags` @CODE_GEN_FLAGS@ @CODE_GEN_FLAGS_CXX@
       ;;
+    --ldflags)
+      echo @LDFLAGS_EXE@
+      ;;
     --rezflags)
-      echo @LIBWXMACRESWXCONFIG@
+      echo @MACRESWXCONFIG@
       ;;
     --libs)
       if test "@libdir@" != "/usr/lib" \
@@ -100,9 +158,9 @@ while test $# -gt 0; do
       fi
 
       if test $static_flag = yes ; then
-          echo "$libs @LDFLAGS@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@"
+          echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@"
       else
-          echo $libs @LDFLAGS@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@
+          echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@
       fi
 
       ;;
@@ -112,7 +170,7 @@ while test $# -gt 0; do
       else
           gllibs="@WXCONFIG_LIBS_GL@"
       fi
-      echo @LDFLAGS_GL@ "$gllibs"
+      echo @LDFLAGS_GL@ $gllibs
       ;;
     --cc)
       echo $CC