1 dnl ---------------------------------------------------------------------------
2 dnl Macros for wxWidgets detection. Typically used in configure.in as:
7 dnl AM_OPTIONS_WXCONFIG
10 dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1)
11 dnl if test "$wxWin" != 1; then
13 dnl wxWidgets must be installed on your system
14 dnl but wx-config script couldn't be found.
16 dnl Please check that wx-config is in path, the directory
17 dnl where wxWidgets libraries are installed (returned by
18 dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or
19 dnl equivalent variable and wxWidgets version is 2.3.4 or above.
22 dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
23 dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
24 dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
26 dnl LIBS="$LIBS $WX_LIBS"
27 dnl ---------------------------------------------------------------------------
29 dnl ---------------------------------------------------------------------------
30 dnl AM_OPTIONS_WXCONFIG
32 dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and
33 dnl --wx-config command line options
34 dnl ---------------------------------------------------------------------------
36 AC_DEFUN([AM_OPTIONS_WXCONFIG],
39 [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH],
40 [ wx_config_name="$withval/wx-config"
41 wx_config_args="--inplace"])
42 AC_ARG_WITH(wx-config,
43 [ --with-wx-config=CONFIG wx-config script to use (optional)],
44 wx_config_name="$withval" )
45 AC_ARG_WITH(wx-prefix,
46 [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)],
47 wx_config_prefix="$withval", wx_config_prefix="")
48 AC_ARG_WITH(wx-exec-prefix,
49 [ --with-wx-exec-prefix=PREFIX
50 Exec prefix where wxWidgets is installed (optional)],
51 wx_config_exec_prefix="$withval", wx_config_exec_prefix="")
54 dnl Helper macro for checking if wx version is at least $1.$2.$3, set's
55 dnl wx_ver_ok=yes if it is:
56 AC_DEFUN([_WX_PRIVATE_CHECK_VERSION],
59 if test "x$WX_VERSION" != x ; then
60 if test $wx_config_major_version -gt $1; then
63 if test $wx_config_major_version -eq $1; then
64 if test $wx_config_minor_version -gt $2; then
67 if test $wx_config_minor_version -eq $2; then
68 if test $wx_config_micro_version -ge $3; then
78 dnl ---------------------------------------------------------------------------
79 dnl AM_PATH_WXCONFIG(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND
80 dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]])
82 dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC
83 dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME
84 dnl environment variable to override the default name of the wx-config script
85 dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this
86 dnl case the macro won't even waste time on tests for its existence.
88 dnl Optional WX-LIBS argument contains comma- or space-separated list of
89 dnl wxWidgets libraries to link against (it may include contrib libraries). If
90 dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to
91 dnl link with all of the core wxWidgets libraries.
93 dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config
94 dnl invocation command in present. It can be used to fine-tune lookup of
95 dnl best wxWidgets build available.
98 dnl AM_PATH_WXCONFIG([2.6.0], [wxWin=1], [wxWin=0], [html,core,net]
99 dnl [--unicode --debug])
100 dnl ---------------------------------------------------------------------------
103 dnl Get the cflags and libraries from the wx-config script
105 AC_DEFUN([AM_PATH_WXCONFIG],
107 dnl do we have wx-config name: it can be wx-config or wxd-config or ...
108 if test x${WX_CONFIG_NAME+set} != xset ; then
109 WX_CONFIG_NAME=wx-config
112 if test "x$wx_config_name" != x ; then
113 WX_CONFIG_NAME="$wx_config_name"
116 dnl deal with optional prefixes
117 if test x$wx_config_exec_prefix != x ; then
118 wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix"
119 WX_LOOKUP_PATH="$wx_config_exec_prefix/bin"
121 if test x$wx_config_prefix != x ; then
122 wx_config_args="$wx_config_args --prefix=$wx_config_prefix"
123 WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin"
125 if test "$cross_compiling" = "yes"; then
126 wx_config_args="$wx_config_args --host=$host_alias"
129 dnl don't search the PATH if WX_CONFIG_NAME is absolute filename
130 if test -x "$WX_CONFIG_NAME" ; then
131 AC_MSG_CHECKING(for wx-config)
132 WX_CONFIG_PATH="$WX_CONFIG_NAME"
133 AC_MSG_RESULT($WX_CONFIG_PATH)
135 AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH")
138 if test "$WX_CONFIG_PATH" != "no" ; then
141 min_wx_version=ifelse([$1], ,2.2.1,$1)
142 if test -z "$5" ; then
143 AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version])
145 AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)])
148 WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4"
150 WX_VERSION=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null`
151 wx_config_major_version=`echo $WX_VERSION | \
152 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
153 wx_config_minor_version=`echo $WX_VERSION | \
154 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
155 wx_config_micro_version=`echo $WX_VERSION | \
156 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
158 wx_requested_major_version=`echo $min_wx_version | \
159 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
160 wx_requested_minor_version=`echo $min_wx_version | \
161 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
162 wx_requested_micro_version=`echo $min_wx_version | \
163 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
165 _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version],
166 [$wx_requested_minor_version],
167 [$wx_requested_micro_version])
169 if test -n "$wx_ver_ok"; then
171 AC_MSG_RESULT(yes (version $WX_VERSION))
172 WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs`
174 dnl is this even still appropriate? --static is a real option now
175 dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is
176 dnl what the user actually wants, making this redundant at best.
177 dnl For now keep it in case anyone actually used it in the past.
178 AC_MSG_CHECKING([for wxWidgets static library])
179 WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null`
180 if test "x$WX_LIBS_STATIC" = "x"; then
186 dnl starting with version 2.2.6 wx-config has --cppflags argument
188 if test $wx_config_major_version -gt 2; then
191 if test $wx_config_major_version -eq 2; then
192 if test $wx_config_minor_version -gt 2; then
195 if test $wx_config_minor_version -eq 2; then
196 if test $wx_config_micro_version -ge 6; then
204 dnl starting with version 2.7.0 wx-config has --rescomp option
206 if test $wx_config_major_version -gt 2; then
209 if test $wx_config_major_version -eq 2; then
210 if test $wx_config_minor_version -ge 7; then
215 if test "x$wx_has_rescomp" = x ; then
216 dnl cannot give any useful info for resource compiler
219 WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp`
222 if test "x$wx_has_cppflags" = x ; then
223 dnl no choice but to define all flags like CFLAGS
224 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
225 WX_CPPFLAGS=$WX_CFLAGS
226 WX_CXXFLAGS=$WX_CFLAGS
228 WX_CFLAGS_ONLY=$WX_CFLAGS
229 WX_CXXFLAGS_ONLY=$WX_CFLAGS
231 dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS
232 WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags`
233 WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags`
234 WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags`
236 WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"`
237 WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"`
240 ifelse([$2], , :, [$2])
244 if test "x$WX_VERSION" = x; then
245 dnl no wx-config at all
248 AC_MSG_RESULT(no (version $WX_VERSION is not new enough))
257 ifelse([$3], , :, [$3])
269 ifelse([$3], , :, [$3])
273 AC_SUBST(WX_CPPFLAGS)
275 AC_SUBST(WX_CXXFLAGS)
276 AC_SUBST(WX_CFLAGS_ONLY)
277 AC_SUBST(WX_CXXFLAGS_ONLY)
279 AC_SUBST(WX_LIBS_STATIC)
284 dnl ---------------------------------------------------------------------------
285 dnl Get information on the wxrc program for making C++, Python and xrs
288 dnl AC_ARG_ENABLE(...)
291 dnl AM_OPTIONS_WXCONFIG
293 dnl AM_PATH_WXCONFIG(2.6.0, wxWin=1)
294 dnl if test "$wxWin" != 1; then
296 dnl wxWidgets must be installed on your system
297 dnl but wx-config script couldn't be found.
299 dnl Please check that wx-config is in path, the directory
300 dnl where wxWidgets libraries are installed (returned by
301 dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or
302 dnl equivalent variable and wxWidgets version is 2.6.0 or above.
306 dnl AM_PATH_WXRC([HAVE_WXRC=1], [HAVE_WXRC=0])
307 dnl if test "x$HAVE_WXRC" != x1; then
309 dnl The wxrc program was not installed or not found.
311 dnl Please check the wxWidgets installation.
315 dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS"
316 dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY"
317 dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY"
319 dnl LDFLAGS="$LDFLAGS $WX_LIBS"
320 dnl ---------------------------------------------------------------------------
324 dnl ---------------------------------------------------------------------------
325 dnl AM_PATH_WXRC([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]])
327 dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS
328 dnl resources. The variable WXRC will be set and substituted in the configure
329 dnl script and Makefiles.
332 dnl AM_PATH_WXRC([wxrc=1], [wxrc=0])
333 dnl ---------------------------------------------------------------------------
336 dnl wxrc program from the wx-config script
338 AC_DEFUN([AM_PATH_WXRC],
340 AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler])
342 if test "x$WX_CONFIG_NAME" = x; then
343 AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.])
346 AC_MSG_CHECKING([for wxrc])
348 if test "x$WXRC" = x ; then
349 dnl wx-config --utility is a new addition to wxWidgets:
350 _WX_PRIVATE_CHECK_VERSION(2,5,3)
351 if test -n "$wx_ver_ok"; then
352 WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc`
356 if test "x$WXRC" = x ; then
357 AC_MSG_RESULT([not found])
358 ifelse([$2], , :, [$2])
360 AC_MSG_RESULT([$WXRC])
361 ifelse([$1], , :, [$1])