X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/a0b9e27fd42c8dc951ee23ac545298c1fbef7976..c50e42a1223f6da4a07f5c8472a3fe7bf682356a:/wx-config.in diff --git a/wx-config.in b/wx-config.in index 743f1daecf..65b263f842 100755 --- a/wx-config.in +++ b/wx-config.in @@ -1,28 +1,193 @@ #!/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@" +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@" -cross_compiling=@cross_compiling@ -target=@host_alias@ -static_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@" +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 + +# 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 <&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]*=//'` ;; @@ -59,11 +273,15 @@ while test $# -gt 0; do 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 @@ -71,12 +289,22 @@ while test $# -gt 0; do --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} + ;; + --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 @@ -85,39 +313,86 @@ while test $# -gt 0; do 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" \ + # 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 $static_flag = yes ; then - echo "$libs @LDFLAGS@ @WXCONFIG_RPATH@ @libdir@/@WXCONFIG_LIBS_STATIC@ @LIBS@ @DMALLOC_LIBS@" + # 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 - echo $libs @LDFLAGS@ @WXCONFIG_RPATH@ @WXCONFIG_LIBS@ @DMALLOC_LIBS@ + # 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 ;; --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 - echo @LDFLAGS_GL@ "$gllibs" + output_libs gl ;; --cc) echo $CC @@ -128,7 +403,11 @@ while test $# -gt 0; do --ld) echo $LD ;; - *) + --help|-h) + usage 1 1>&2 + ;; + -*) + # unrecognized flag is error usage 1 1>&2 ;; esac