#!/bin/sh
-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@"
+
+
+# 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@"
-cross_compiling=@cross_compiling@
-target=@host_alias@
-static_flag=@STATIC_FLAG@
-inplace_flag=no
+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@"
+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
+
+# 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
+}
+
+# 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]
+Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
+ [--basename] [--static] [--libs[=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
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.)
+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.
+
+--static must come before --libs and --gl-libs.
+
+--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.
+
+--gl-libs option is deprecated, used --libs=gl instead.
+
EOF
exit $1
# 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++" \
+ if test "${includedir}" != "/usr/include" \
+ -a "${includedir}" != "/usr/include/c++" \
-a \( "${GCC}" != "yes" \
- -o "@includedir@" != "/usr/local/include" \) \
+ -o "${includedir}" != "/usr/local/include" \) \
-a \( "${cross_compiling}" != "yes" \
- -o "@includedir@" != "/usr/${target}/include" \) ;
+ -o "${includedir}" != "/usr/${target}/include" \) ;
then
- includes=" -I@includedir@"
+ 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
+ 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@
+ 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@
+ echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
fi
}
esac
case $1 in
+ --inplace)
+ prefix=`makeabs $srcdir`
+ exec_prefix=`makeabs $builddir`
+ exec_prefix_set=yes
+ update_prefixes
+ ;;
--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 @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)
+ echo $basename_gui
;;
--static)
static_flag=yes
cppflags
;;
--cflags)
- echo `cppflags` @CODE_GEN_FLAGS@
+ echo `cppflags` ${CODE_GEN_FLAGS}
;;
--cxxflags)
- echo `cppflags` @CODE_GEN_FLAGS@ @CODE_GEN_FLAGS_CXX@
+ echo `cppflags` ${CODE_GEN_FLAGS} ${CODE_GEN_FLAGS_CXX}
;;
--ldflags)
- echo @LDFLAGS_EXE@
+ echo ${LDFLAGS_EXE}
;;
--rezflags)
- echo @LIBWXMACRESWXCONFIG@
+ echo `eval echo ${MACRESWXCONFIG}`
;;
- --libs)
- if test "@libdir@" != "/usr/lib" \
+
+ --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
+
+ # include install directory only if it is not default:
+ if test "${libdir}" != "/usr/lib" \
-a \( "${cross_compiling}" != "yes" \
- -o "@libdir@" != "/usr/${target}/lib" \) ;
+ -o "${libdir}" != "/usr/${target}/lib" \) ;
then
- libs="-L@libdir@"
+ libs="-L${libdir}"
fi
- if test $inplace_flag = yes ; then
- libs="-L$inplace_builddir/lib"
- fi
+ # 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
+ libs_list="" # do nothing
+ else
+ newlist="$newlist $i"
+ fi
+ done
+ libs_list="$newlist"
- if test $static_flag = yes ; then
- echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@"
+ # 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
- echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@
+ # 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
;;
--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
+ output_libs gl
;;
--cc)
echo $CC
--ld)
echo $LD
;;
- --inplace)
- inplace_flag=yes
- inplace_builddir=`dirname $0`
- inplace_include=@top_srcdir@/include
- ;;
*)
usage 1 1>&2
;;