3 # -------------------------------------------------------------------------
5 # -------------------------------------------------------------------------
7 # Version and build type information:
9 WX_MAJOR_VERSION_NUMBER
="@WX_MAJOR_VERSION_NUMBER@"
10 WX_MINOR_VERSION_NUMBER
="@WX_MINOR_VERSION_NUMBER@"
11 WX_RELEASE_NUMBER
="@WX_RELEASE_NUMBER@"
12 release
="@WX_MAJOR_VERSION_NUMBER@.@WX_MINOR_VERSION_NUMBER@"
13 is_monolithic
="@MONOLITHIC@"
14 cross_compiling
="@cross_compiling@"
16 static_flag
="@STATIC_FLAG@"
19 # Misc configuration variables:
23 includedir
="@includedir@"
27 exec_prefix
="@exec_prefix@"
32 GCC_SEARCHES_USR_LOCAL_INCLUDE
="@GCC_SEARCHES_USR_LOCAL_INCLUDE@"
36 builddir
="@top_builddir_wxconfig@"
37 basename_nogui
="@WX_LIBRARY_BASENAME_NOGUI@"
38 basename_gui
="@WX_LIBRARY_BASENAME_GUI@"
40 TOOLCHAIN_NAME
="@TOOLCHAIN_NAME@"
42 WXCONFIG_RPATH
="@WXCONFIG_RPATH@"
43 DMALLOC_LIBS
="@DMALLOC_LIBS@"
44 WXCONFIG_LIBS
="@WXCONFIG_LIBS@"
45 WXCONFIG_LIBS_STATIC
="@WXCONFIG_LIBS_STATIC@"
46 WXDEBUG_DEFINE
="@WXDEBUG_DEFINE@"
47 TOOLCHAIN_DEFS
="@TOOLCHAIN_DEFS@"
48 TOOLCHAIN_DLL_DEFS
="@TOOLCHAIN_DLL_DEFS@"
49 WXCONFIG_INCLUDE
="@WXCONFIG_INCLUDE@"
50 WX_LARGEFILE_FLAGS
="@WX_LARGEFILE_FLAGS@"
51 CODE_GEN_FLAGS
="@CODE_GEN_FLAGS@"
52 CODE_GEN_FLAGS_CXX
="@CODE_GEN_FLAGS_CXX@"
53 LDFLAGS_EXE
="@LDFLAGS_EXE@"
54 MACRESWXCONFIG
="@MACRESWXCONFIG@"
55 EXTRALIBS_GUI
="@EXTRALIBS_GUI@"
57 WXCONFIG_LDFLAGS_GUI
="@WXCONFIG_LDFLAGS_GUI@"
60 # Linker flags for sublibraries:
62 CORE_BASE_LIBS
="@CORE_BASE_LIBS@"
63 CORE_GUI_LIBS
="@CORE_GUI_LIBS@"
65 ldlibs_base
="@WXCONFIG_EXTRALIBS@"
66 ldlibs_core
="@EXTRALIBS_GUI@"
67 ldlibs_xml
="@EXTRALIBS_XML@"
68 ldlibs_html
="@EXTRALIBS_HTML@"
69 ldlibs_odbc
="@EXTRALIBS_ODBC@"
70 ldlibs_adv
="@EXTRALIBS_SDL@"
72 ldflags_gl
="@LDFLAGS_GL@"
73 ldlibs_gl
="@OPENGL_LIBS@"
77 # -------------------------------------------------------------------------
79 # -------------------------------------------------------------------------
83 # is $1 among the rest of arguments?
90 if test $iii = $value ; then isin
=yes ; fi
95 # output linker commands needed to link against libraries passed as arguments
96 # (does not handle monolithic/multilib):
99 if test "$cross_compiling" = "yes" ; then
100 target_tag
="-${target}"
108 eval xlibs
=\
$ldlibs_$lib
109 eval xflags
=\
$ldflags_$lib
110 if isinlist
$lib $CORE_BASE_LIBS ; then
111 basename=$basename_nogui
113 basename=$basename_gui
115 if test $lib = "base" ; then
118 libname
="${basename}_${lib}"
121 all_ldflags
="$all_ldflags $xflags"
122 if test $static_flag = yes ; then
123 wxlibs
="$wxlibs ${libdir}/lib${libname}-${release}${target_tag}.a"
124 all_libs
="$all_libs $xlibs"
126 wxlibs
="$wxlibs -l${libname}-${release}${target_tag}"
130 echo $all_ldflags $wxlibs $all_libs
133 # output $(WXCONFIG_LDFLAGS_GUI) if any of libs passed as arguments is GUI
134 # library, nothing otherwise:
139 if isinlist
$lib $CORE_GUI_LIBS ; then
140 flags_to_ret
="$WXCONFIG_LDFLAGS_GUI"
146 # return the absolute path prepending builddir to it if needed
150 # TODO: this only works under Unix and even there it could be
151 # enhanced to remove ".." and "."
152 if [ `echo $path | sed 's/^\(.\).*/\1/'` != "/" ]; then
153 if [ $path = "." ]; then
156 path
="$builddir/$path"
166 Usage: wx-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--release]
167 [--basename] [--static] [--libs[=LIBS]] [--gl-libs]
168 [--cppflags] [--cflags] [--cxxflags] [--ldflags] [--rezflags]
169 [--cc] [--cxx] [--ld]
172 wx-config returns configuration information about the installed
173 version of wxWidgets. It may be used to query its version and
174 installation directories and also retrieve the C and C++ compilers
175 and linker which were used for its building and the corresponding
178 Ordinarily it should be installed to the appropriate system location
179 along with the headers and library files, but it is also possible to
180 use it to enable builds with an uninstalled wxWidgets version for
181 package building and bleeding edge developers. To do so, use it like
184 \${wx_builddir}/wx-config --prefix=\${wx_srcdir} --exec-prefix=\${wx_builddir}
186 Note that any other options supplied must come *after* the prefix
187 specification for it to take effect.
189 --static must come before --cppflags, --cflags, --cxxflags,
190 --libs and --gl-libs.
192 --libs can take optional argument that contains comma-separated list of
193 wxWidgets libraries to link against. This list can include both core
194 and contrib libraries. Special value "std" stands for all libraries linked
197 --gl-libs option is deprecated, used --libs=gl instead.
199 The --inplace flag allows wx-config to be used from the wxWindows
200 build directory and output flags to use the uninstalled version of
201 the headers and libs in the build directory. (Currently configure
202 must be invoked via a full path name for this to work correctly.)
211 # we should never specify -I/usr/include on the compiler command line: this
212 # is at best useless and at worst breaks compilation on the systems where
213 # the system headers are non-ANSI because gcc works around this by storing
214 # the ANSI-fied versions of them in its private directory which is searched
215 # after all the directories on the cmd line.
217 # the situation is a bit more complicated with -I/usr/local/include:
218 # it shouldn't be specified with some gcc installations which look there
219 # by default anyhow and give warnings (at least 3.1 does) if it is
220 # specified explicitly --
221 # but this -I switch *is* needed for other gcc installation and for
222 # the other compilers.
223 # So I put a suitable test into configure.in and reuse the result here.
225 # note that we assume that if we use GNU cc we also use GNU c++ and vice
226 # versa, i.e. this won't work (either for --cflags or --cxxflags) if GNU C
227 # compiler and non-GNU C++ compiler are used or vice versa -- we'll fix
228 # this when/if anybody complains about it
229 if test "${includedir}" != "/usr/include" \
230 -a "${includedir}" != "/usr/include/c++" \
231 -a \
( "${GCC_SEARCHES_USR_LOCAL_INCLUDE}" != "yes" \
232 -o "${includedir}" != "/usr/local/include" \
) \
233 -a \
( "${cross_compiling}" != "yes" \
234 -o "${includedir}" != "/usr/${target}/include" \
) ;
236 includes
=" -I${includedir}"
239 includes
="-I${libdir}/wx/include/${TOOLCHAIN_NAME}$includes"
241 # in inplace case we need to also add path to contrib headers -- do it
242 # unconditionally as they might be used and we have no way of knowing if
244 if test $inplace_flag = yes ; then
245 includes
="$includes -I${prefix}/contrib/include"
248 if test $static_flag = yes ; then
249 echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
251 echo $includes ${WXDEBUG_DEFINE} ${TOOLCHAIN_DEFS} ${TOOLCHAIN_DLL_DEFS} ${WXCONFIG_INCLUDE} ${WX_LARGEFILE_FLAGS}
255 if test $# -eq 0; then
259 while test $# -gt 0; do
261 -*=*) optarg
=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
267 prefix
=`makeabs $srcdir`
268 exec_prefix
=`makeabs $builddir`
275 if test $exec_prefix_set = no
; then
292 echo ${WX_MAJOR_VERSION_NUMBER}.
${WX_MINOR_VERSION_NUMBER}.
${WX_RELEASE_NUMBER}
307 echo `cppflags` ${CODE_GEN_FLAGS}
310 echo `cppflags` ${CODE_GEN_FLAGS} ${CODE_GEN_FLAGS_CXX}
316 echo `eval echo ${MACRESWXCONFIG}`
320 # find if the argument was --libs=list,of,libs or --libs:
321 if test "x$optarg" = "x" ; then
322 if test "$is_monolithic" = "0" ; then
323 # link against all libs if none given explicitly:
324 libs_list
="$CORE_GUI_LIBS $CORE_BASE_LIBS"
327 libs_list
=`echo "$optarg" | tr ',' ' '`
328 # always add wxBase, any wxApp needs it:
329 libs_list
="$libs_list base"
332 # include install directory only if it is not default:
333 if test "${libdir}" != "/usr/lib" \
334 -a \
( "${cross_compiling}" != "yes" \
335 -o "${libdir}" != "/usr/${target}/lib" \
) ;
340 # it's simpler to avoid handling "bae" itself at all as we add it in the
341 # end to the list of libraries anyhow
342 # in monolithic build, link against the main library:
343 if test "$is_monolithic" = "1" ; then
344 # filter out core libs, leave only contrib in libs_list:
346 for i
in $libs_list ; do
347 if isinlist
$i $CORE_GUI_LIBS $CORE_BASE_LIBS; then
348 libs_list
="" # do nothing
350 newlist
="$newlist $i"
356 contrib_libs
=`output_libs $libs_list`
357 if test $static_flag = yes ; then
358 echo "$libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${libdir}/${WXCONFIG_LIBS_STATIC} ${EXTRALIBS_GUI} ${LIBS} ${DMALLOC_LIBS}"
360 echo $libs ${LDFLAGS} ${WXCONFIG_LDFLAGS_GUI} ${WXCONFIG_RPATH} $contrib_libs ${WXCONFIG_LIBS} ${DMALLOC_LIBS}
363 # we may need to replace "std" alias with its expansion
366 for i
in $libs_list; do
373 # if we have std, we're going to add base anyhow, avoid
374 # having it twice in the end
375 if [ $hadstd = 0 ]; then
376 newlist
="$newlist $i";
381 newlist
="$newlist $i"
386 if [ $hadstd = 1 ]; then
387 libs_list
="$libs_list $CORE_GUI_LIBS $CORE_BASE_LIBS"
390 # in multilib mode, link against all sublibraries:
391 wxlibs
=`output_libs $libs_list`
392 guildflags
=`get_ldflags_gui $libs_list`
393 echo $libs ${LDFLAGS} ${guildflags} ${WXCONFIG_RPATH} $wxlibs ${DMALLOC_LIBS}