X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/3338009913cb5b586fc81328a1537042bc646f87..df16c649d21716a3e54eb2598477fa9ed970f278:/wx-config.in?ds=sidebyside diff --git a/wx-config.in b/wx-config.in index 13323f3aae..4e77ba0d98 100755 --- a/wx-config.in +++ b/wx-config.in @@ -14,16 +14,22 @@ 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@" -includedir="@includedir@" -libdir="@libdir@" +update_prefixes + CC="@CC@" GCC="@GCC@" +GCC_SEARCHES_USR_LOCAL_INCLUDE="@GCC_SEARCHES_USR_LOCAL_INCLUDE@" CXX="@CXX@" LD="@SHARED_LD@" srcdir="@top_srcdir@" @@ -48,16 +54,20 @@ 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="xml net base" -CORE_GUI_LIBS="html core" +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@" @@ -120,6 +130,19 @@ output_libs() 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() { @@ -146,14 +169,14 @@ Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release] [--cc] [--cxx] [--ld] wx-config returns configuration information about the installed -version of wxWindows. It may be used to query its version and +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 wxWindows version for +use it to enable builds with an uninstalled wxWidgets version for package building and bleeding edge developers. To do so, use it like this: @@ -162,11 +185,13 @@ this: 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. +--static must come before --cppflags, --cflags, --cxxflags, +--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. +wxWidgets libraries to link against. This list can include both core +and contrib libraries. Special value "std" stands for all libraries linked +in by default. --gl-libs option is deprecated, used --libs=gl instead. @@ -183,10 +208,13 @@ cppflags() # 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 + # the situation is a bit more complicated with -I/usr/local/include: + # it shouldn't be specified with some gcc installations which look there + # by default anyhow and give warnings (at least 3.1 does) if it is + # specified explicitly -- + # but this -I switch *is* needed for other gcc installation and for + # the other compilers. + # So I put a suitable test into configure.in and reuse the result here. # # 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 @@ -194,7 +222,7 @@ cppflags() # this when/if anybody complains about it if test "${includedir}" != "/usr/include" \ -a "${includedir}" != "/usr/include/c++" \ - -a \( "${GCC}" != "yes" \ + -a \( "${GCC_SEARCHES_USR_LOCAL_INCLUDE}" != "yes" \ -o "${includedir}" != "/usr/local/include" \) \ -a \( "${cross_compiling}" != "yes" \ -o "${includedir}" != "/usr/${target}/include" \) ; @@ -204,6 +232,13 @@ cppflags() includes="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes" + # 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}/contrib/include" + fi + if test $static_flag = yes ; then echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS} else @@ -226,12 +261,15 @@ while test $# -gt 0; do prefix=`makeabs $srcdir` exec_prefix=`makeabs $builddir` exec_prefix_set=yes + inplace_flag=yes + update_prefixes ;; --prefix=*) prefix=$optarg if test $exec_prefix_set = no ; then exec_prefix=$optarg fi + update_prefixes ;; --prefix) echo $prefix @@ -239,6 +277,7 @@ while test $# -gt 0; do --exec-prefix=*) exec_prefix=$optarg exec_prefix_set=yes + update_prefixes ;; --exec-prefix) echo $exec_prefix @@ -250,7 +289,7 @@ while test $# -gt 0; do echo $release ;; --basename) - echo $basename + echo $basename_gui ;; --static) static_flag=yes @@ -268,7 +307,7 @@ while test $# -gt 0; do echo ${LDFLAGS_EXE} ;; --rezflags) - echo ${MACRESWXCONFIG} + echo `eval echo ${MACRESWXCONFIG}` ;; --libs*) @@ -292,30 +331,60 @@ while test $# -gt 0; do libs="-L${libdir}" fi + # it's simpler to avoid handling "bae" 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_BASE_LIBS $CORE_GUI_LIBS ; then + 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_RPATH} $contrib_libs ${libdir}/${WXCONFIG_LIBS_STATIC} ${EXTRALIBS_GUI} ${LIBS} ${DMALLOC_LIBS}" + echo "$libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${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} + 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` - echo $libs ${LDFLAGS} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS} + guildflags=`get_ldflags_gui $libs_list` + echo $libs ${LDFLAGS} ${guildflags} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS} fi ;;