#!/bin/sh

prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
CC="@CC@"
GCC="@GCC@"
CXX="@CXX@"
LD="@SHARED_LD@"
cross_compiling=@cross_compiling@
target=@host_alias@
static_flag=@STATIC_FLAG@
inplace_flag=no

usage()
{
    cat <<EOF
Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
                 [--basename] [--static] [--libs] [--gl-libs]
                 [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
                 [--cc] [--cxx] [--ld]
                 [--inplace]

wx-config returns configuration information about the installed
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.

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.  (Currently configure
must be invoked via a full path name for this to work correctly.)
EOF

    exit $1
}

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@"
    fi

    if test $inplace_flag = yes ; then
	includes="-I$inplace_builddir/lib/wx/include/@TOOLCHAIN_NAME@ -I$inplace_include"
    else
	includes="-I@libdir@/wx/include/@TOOLCHAIN_NAME@$includes"
    fi

    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@
    fi
}

if test $# -eq 0; then
    usage 1 1>&2
fi

while test $# -gt 0; do
  case "$1" in
  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
  *) optarg= ;;
  esac

  case $1 in
    --prefix=*)
      prefix=$optarg
      if test $exec_prefix_set = no ; then
        exec_prefix=$optarg
      fi
      ;;
    --prefix)
      echo $prefix
      ;;
    --exec-prefix=*)
      exec_prefix=$optarg
      exec_prefix_set=yes
      ;;
    --exec-prefix)
      echo $exec_prefix
      ;;
    --version)
      echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@.@WX_RELEASE_NUMBER@
      ;;
    --release)
      # Should echo @WX_RELEASE@ instead, but that doesn't seem to be replaced after 
      # configure has run on this file.
      echo @WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@
      ;;
    --basename)
      echo @WX_LIBRARY_BASENAME@
      ;;
    --static)
      static_flag=yes
      ;;
    --cppflags)
      cppflags
      ;;
    --cflags)
      echo `cppflags` @CODE_GEN_FLAGS@
      ;;
    --cxxflags)
      echo `cppflags` @CODE_GEN_FLAGS@ @CODE_GEN_FLAGS_CXX@
      ;;
    --ldflags)
      echo @LDFLAGS_EXE@
      ;;
    --rezflags)
      echo @LIBWXMACRESWXCONFIG@
      ;;
    --libs)
      if test "@libdir@" != "/usr/lib" \
              -a \( "${cross_compiling}" != "yes" \
                    -o "@libdir@" != "/usr/${target}/lib" \) ;
      then
          libs="-L@libdir@"
      fi

      if test $inplace_flag = yes ; then
	  libs="-L$inplace_builddir/lib"
      fi

      if test $static_flag = yes ; then
          echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@"
      else
          echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@
      fi

      ;;
    --gl-libs)
      if test $static_flag = yes -a "x" != "x@WXCONFIG_LIBS_STATIC_GL@" ; then
          gllibs="@libdir@/@WXCONFIG_LIBS_STATIC_GL@"
      else
          gllibs="@WXCONFIG_LIBS_GL@"
      fi
      if test $inplace_flag = yes ; then
	  libdir="-L$inplace_builddir/lib"
      fi
      echo @LDFLAGS_GL@ $libdir $gllibs
      ;;
    --cc)
      echo $CC
      ;;
    --cxx)
      echo $CXX
      ;;
    --ld)
      echo $LD
      ;;
    --inplace)
      inplace_flag=yes
      inplace_builddir=`dirname $0`
      inplace_include=@top_srcdir@/include
      ;;
    *)
      usage 1 1>&2
      ;;
  esac
  shift
done

