fef23dd452
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@22376 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
294 lines
7.9 KiB
Bash
Executable File
294 lines
7.9 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# Generic configuration variables:
|
|
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_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@
|
|
|
|
|
|
# Linker flags for sublibraries:
|
|
CORE_BASE_LIBS="xml net base"
|
|
CORE_GUI_LIBS="html core"
|
|
|
|
ldlibs_base="@LIBS@"
|
|
ldlibs_core="@EXTRALIBS_GUI@"
|
|
ldlibs_xml="@EXTRALIBS_XML@"
|
|
|
|
ldflags_gl="@LDFLAGS_GL@"
|
|
ldlibs_gl="@OPENGL_LIBS@"
|
|
|
|
|
|
# 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()
|
|
{
|
|
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}.a"
|
|
all_libs="$all_libs $xlibs"
|
|
else
|
|
wxlibs="$wxlibs -l${libname}-${release}"
|
|
fi
|
|
done
|
|
|
|
echo $all_ldflags $wxlibs $all_libs
|
|
}
|
|
|
|
# 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] [--release]
|
|
[--basename] [--static] [--libs[=LIBS]] [--gl-libs]
|
|
[--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
|
|
[--cc] [--cxx] [--ld]
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
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
|
|
|
|
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@
|
|
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
|
|
--inplace)
|
|
prefix=`makeabs $srcdir`
|
|
exec_prefix=`makeabs $builddir`
|
|
exec_prefix_set=yes
|
|
;;
|
|
--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)
|
|
echo $release
|
|
;;
|
|
--basename)
|
|
echo $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 @MACRESWXCONFIG@
|
|
;;
|
|
|
|
--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 ',' ' '`
|
|
fi
|
|
|
|
# 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
|
|
|
|
# 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"
|
|
|
|
# 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@"
|
|
else
|
|
echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ $contrib_libs @WXCONFIG_LIBS@ @DMALLOC_LIBS@
|
|
fi
|
|
else
|
|
# in multilib mode, link against all sublibraries:
|
|
wxlibs=`output_libs $libs_list`
|
|
echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ $wxlibs @DMALLOC_LIBS@
|
|
fi
|
|
|
|
;;
|
|
--gl-libs)
|
|
output_libs gl
|
|
;;
|
|
--cc)
|
|
echo $CC
|
|
;;
|
|
--cxx)
|
|
echo $CXX
|
|
;;
|
|
--ld)
|
|
echo $LD
|
|
;;
|
|
*)
|
|
usage 1 1>&2
|
|
;;
|
|
esac
|
|
shift
|
|
done
|
|
|