#!/bin/sh
-prefix=@prefix@
-exec_prefix=@exec_prefix@
+# -------------------------------------------------------------------------
+# 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@"
+WX_SUBRELEASE_NUMBER="@WX_SUBRELEASE_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@"
+CXX="@CXX@"
+LD="@SHARED_LD@"
+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:
+
+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_html="@EXTRALIBS_HTML@"
+ldlibs_odbc="@EXTRALIBS_ODBC@"
+ldlibs_adv="@EXTRALIBS_SDL@"
+
+ldflags_gl="@LDFLAGS_GL@"
+ldlibs_gl="@OPENGL_LIBS@"
+
+
+
+# -------------------------------------------------------------------------
+# Script code:
+# -------------------------------------------------------------------------
+
exec_prefix_set=no
-usage="\
-Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
+# is $1 among the rest of arguments?
+isinlist()
+{
+ value=$1
+ shift
+ isin=no
+ for iii in $* ; do
+ if test $iii = $value ; then isin=yes ; fi
+ done
+ test $isin = yes
+}
+
+# output linker commands needed to link against libraries passed as arguments
+# (does not handle monolithic/multilib):
+output_libs()
+{
+ if test "$cross_compiling" = "yes" ; then
+ target_tag="-${target}"
+ fi
+
+ all_libs=""
+ all_ldflags=""
+ wxlibs=""
+
+ for lib in $* ; do
+ eval xlibs=\$ldlibs_$lib
+ eval xflags=\$ldflags_$lib
+ if isinlist $lib $CORE_BASE_LIBS ; then
+ basename=$basename_nogui
+ 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
+ wxlibs="$wxlibs ${libdir}/lib${libname}-${release}${target_tag}.a"
+ all_libs="$all_libs $xlibs"
+ else
+ wxlibs="$wxlibs -l${libname}-${release}${target_tag}"
+ 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
+}
+
+usage()
+{
+ cat <<EOF
+Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--inplace]
+ [--toolkit=TOOLKIT] [--unicode[=yes|no]] [--debug[=yes|no]]
+ [--universal[=yes|no]] [--host=HOST]
+ [--version[=VERSION]] [--version-full] [--release]
+ [--list] [--basename] [--static] [--libs] [--gl-libs]
+ [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
+ [--cc] [--cxx] [--ld] [LIBRARIES]
+
+wx-config returns configuration information about the installed
+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
+use it to enable builds with an uninstalled wxWidgets version for
+package building and bleeding edge developers. To do so, use it like
+this:
+
+\${wx_builddir}/wx-config --inplace
+
+Note that any other options supplied must come *after* --inplace
+for it to take effect.
+
+--static must come before --cppflags, --cflags, --cxxflags,
+--libs and --gl-libs and --libs must come before the other ones.
+
+wx-config can take optional argument that contains comma- or space-separated
+list of wxWidgets libraries to compile and link against. This list can
+include both core and contrib libraries. Special value "std" stands for all
+libraries linked in by default. Examples: "wx-config --libs core,base"
+or "wx-config --cxxflags core,base".
+
+--gl-libs option is deprecated, use "--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
+
+ exit $1
+}
+
+cppflags()
+{
+ includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}"
+
+ # 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}/include -I${prefix}/contrib/include"
+ else
+ includes="$includes -I${includedir}/wx-${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}"
+ fi
+
+ flags="$includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS}"
+ if test $static_flag != yes ; then
+ flags="$flags ${TOOLCHAIN_DLL_DEFS}"
+ 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
- echo "${usage}" 1>&2
- exit 1
+ 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:
+if test "$is_monolithic" = "0" ; then
+ nogui_flag="yes"
+ for i in $libs_list; do
+ case $i in
+ base|net)
+ ;;
+ *)
+ nogui_flag="no"
+ ;;
+ esac
+ done
+else
+ nogui_flag="no"
+fi
+
+
+# handle options:
+
while test $# -gt 0; do
case "$1" in
-*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
esac
case $1 in
+ --inplace)
+ inplace_flag=yes
+ ;;
--prefix=*)
prefix=$optarg
if test $exec_prefix_set = no ; then
exec_prefix=$optarg
fi
+ update_prefixes
;;
--prefix)
echo $prefix
--exec-prefix=*)
exec_prefix=$optarg
exec_prefix_set=yes
+ update_prefixes
;;
--exec-prefix)
echo $exec_prefix
;;
--version)
- echo 1.93
+ echo ${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}.${WX_RELEASE_NUMBER}
+ ;;
+ --version-full)
+ echo ${WX_MAJOR_VERSION_NUMBER}.${WX_MINOR_VERSION_NUMBER}.${WX_RELEASE_NUMBER}.${WX_SUBRELEASE_NUMBER}
+ ;;
+ --release)
+ echo $release
+ ;;
+ --basename)
+ echo $basename_gui
+ ;;
+ --static)
+ static_flag=yes
+ ;;
+ --cppflags)
+ cppflags
;;
--cflags)
- if test @includedir@ != /usr/include ; then
- includes=-I@includedir@
- fi
- echo $includes -D@TOOLKIT_DEF@ @GUI_TK_INCLUDE@
+ echo `cppflags` ${CODE_GEN_FLAGS}
+ ;;
+ --cxxflags)
+ echo `cppflags` ${CODE_GEN_FLAGS} ${CODE_GEN_FLAGS_CXX}
+ ;;
+ --ldflags)
+ echo ${LDFLAGS_EXE}
;;
+ --rezflags)
+ echo `eval echo ${MACRESWXCONFIG}`
+ ;;
+
--libs)
- echo -L@libdir@ -lwx_gtk -ldl @GUI_TK_LIBRARY@ @THREADS_LINK@ @EXTRA_LINK@
+ # include install directory only if it is not default:
+ if test "${libdir}" != "/usr/lib" \
+ -a \( "${cross_compiling}" != "yes" \
+ -o "${libdir}" != "/usr/${target}/lib" \) ;
+ then
+ 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
+ if isinlist $i $CORE_GUI_LIBS $CORE_BASE_LIBS; then
+ 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
+ echo "$libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${libdir}/${WXCONFIG_LIBS_STATIC} ${EXTRALIBS_GUI} ${LIBS} ${DMALLOC_LIBS}"
+ 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`
+ echo $libs ${LDFLAGS} ${guildflags} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS}
+ fi
+
;;
- *)
- echo "${usage}" 1>&2
- exit 1
+ --gl-libs)
+ output_libs gl
+ ;;
+ --cc)
+ echo $CC
+ ;;
+ --cxx)
+ echo $CXX
+ ;;
+ --ld)
+ echo $LD
+ ;;
+ --help|-h)
+ usage 1 1>&2
+ ;;
+ -*)
+ # unrecognized flag is error
+ usage 1 1>&2
;;
esac
shift