#!/bin/sh # ------------------------------------------------------------------------- # 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@" GCC_SEARCHES_USR_LOCAL_INCLUDE="@GCC_SEARCHES_USR_LOCAL_INCLUDE@" 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@" 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 <&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 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} ;; --release) echo $release ;; --basename) echo $basename_gui ;; --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 `eval 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 ',' ' '` # 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" \) ; 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_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 # 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) output_libs gl ;; --cc) echo $CC ;; --cxx) echo $CXX ;; --ld) echo $LD ;; *) usage 1 1>&2 ;; esac shift done