]>
Commit | Line | Data |
---|---|---|
33e61c47 VZ |
1 | dnl --------------------------------------------------------------------------- |
2 | dnl Author: wxWidgets development team, | |
3 | dnl Francesco Montorsi, | |
4 | dnl Bob McCown (Mac-testing) | |
5 | dnl Creation date: 24/11/2001 | |
6 | dnl RCS-ID: $Id$ | |
7 | dnl --------------------------------------------------------------------------- | |
8 | ||
9 | dnl =========================================================================== | |
10 | dnl Table of Contents of this macro file: | |
11 | dnl ------------------------------------- | |
12 | dnl | |
13 | dnl SECTION A: wxWidgets main macros | |
14 | dnl - WX_CONFIG_OPTIONS | |
15 | dnl - WX_CONFIG_CHECK | |
16 | dnl - WXRC_CHECK | |
17 | dnl - WX_STANDARD_OPTIONS | |
18 | dnl - WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS | |
19 | dnl - WX_DETECT_STANDARD_OPTION_VALUES | |
20 | dnl | |
21 | dnl SECTION B: wxWidgets-related utilities | |
22 | dnl - WX_LIKE_LIBNAME | |
23 | dnl - WX_ARG_ENABLE_YESNOAUTO | |
24 | dnl - WX_ARG_WITH_YESNOAUTO | |
25 | dnl | |
26 | dnl SECTION C: messages to the user | |
27 | dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG | |
28 | dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN | |
29 | dnl - WX_STANDARD_OPTIONS_SUMMARY_MSG_END | |
30 | dnl - WX_BOOLOPT_SUMMARY | |
31 | dnl | |
32 | dnl The special "WX_DEBUG_CONFIGURE" variable can be set to 1 to enable extra | |
33 | dnl debug output on stdout from these macros. | |
34 | dnl =========================================================================== | |
35 | ||
36 | ||
debc175a | 37 | dnl --------------------------------------------------------------------------- |
128c8706 | 38 | dnl Macros for wxWidgets detection. Typically used in configure.in as: |
debc175a | 39 | dnl |
5ff72dc4 VZ |
40 | dnl AC_ARG_ENABLE(...) |
41 | dnl AC_ARG_WITH(...) | |
42 | dnl ... | |
33e61c47 | 43 | dnl WX_CONFIG_OPTIONS |
5ff72dc4 VZ |
44 | dnl ... |
45 | dnl ... | |
33e61c47 | 46 | dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1]) |
debc175a VS |
47 | dnl if test "$wxWin" != 1; then |
48 | dnl AC_MSG_ERROR([ | |
128c8706 | 49 | dnl wxWidgets must be installed on your system |
5ff72dc4 VZ |
50 | dnl but wx-config script couldn't be found. |
51 | dnl | |
52 | dnl Please check that wx-config is in path, the directory | |
128c8706 | 53 | dnl where wxWidgets libraries are installed (returned by |
5ff72dc4 | 54 | dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or |
128c8706 | 55 | dnl equivalent variable and wxWidgets version is 2.3.4 or above. |
debc175a VS |
56 | dnl ]) |
57 | dnl fi | |
58 | dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" | |
59 | dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" | |
60 | dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" | |
5ff72dc4 | 61 | dnl |
80f3a6b0 | 62 | dnl LIBS="$LIBS $WX_LIBS" |
33e61c47 VZ |
63 | dnl |
64 | dnl If you want to support standard --enable-debug/unicode/shared options, you | |
65 | dnl may do the following: | |
66 | dnl | |
67 | dnl ... | |
68 | dnl AC_CANONICAL_SYSTEM | |
69 | dnl | |
70 | dnl # define configure options | |
71 | dnl WX_CONFIG_OPTIONS | |
72 | dnl WX_STANDARD_OPTIONS([debug,unicode,shared,toolkit,wxshared]) | |
73 | dnl | |
74 | dnl # basic configure checks | |
75 | dnl ... | |
76 | dnl | |
77 | dnl # we want to always have DEBUG==WX_DEBUG and UNICODE==WX_UNICODE | |
78 | dnl WX_DEBUG=$DEBUG | |
79 | dnl WX_UNICODE=$UNICODE | |
80 | dnl | |
81 | dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS | |
82 | dnl WX_CONFIG_CHECK([2.8.0], [wxWin=1],,[html,core,net,base],[$WXCONFIG_FLAGS]) | |
83 | dnl WX_DETECT_STANDARD_OPTION_VALUES | |
84 | dnl | |
85 | dnl # write the output files | |
86 | dnl AC_CONFIG_FILES([Makefile ...]) | |
87 | dnl AC_OUTPUT | |
88 | dnl | |
89 | dnl # optional: just to show a message to the user | |
90 | dnl WX_STANDARD_OPTIONS_SUMMARY_MSG | |
91 | dnl | |
debc175a VS |
92 | dnl --------------------------------------------------------------------------- |
93 | ||
33e61c47 | 94 | |
debc175a | 95 | dnl --------------------------------------------------------------------------- |
33e61c47 | 96 | dnl WX_CONFIG_OPTIONS |
debc175a | 97 | dnl |
5ff72dc4 VZ |
98 | dnl adds support for --wx-prefix, --wx-exec-prefix, --with-wxdir and |
99 | dnl --wx-config command line options | |
debc175a VS |
100 | dnl --------------------------------------------------------------------------- |
101 | ||
33e61c47 | 102 | AC_DEFUN([WX_CONFIG_OPTIONS], |
debc175a | 103 | [ |
5ff72dc4 | 104 | AC_ARG_WITH(wxdir, |
128c8706 | 105 | [ --with-wxdir=PATH Use uninstalled version of wxWidgets in PATH], |
5ff72dc4 VZ |
106 | [ wx_config_name="$withval/wx-config" |
107 | wx_config_args="--inplace"]) | |
108 | AC_ARG_WITH(wx-config, | |
109 | [ --with-wx-config=CONFIG wx-config script to use (optional)], | |
110 | wx_config_name="$withval" ) | |
111 | AC_ARG_WITH(wx-prefix, | |
128c8706 | 112 | [ --with-wx-prefix=PREFIX Prefix where wxWidgets is installed (optional)], |
5ff72dc4 VZ |
113 | wx_config_prefix="$withval", wx_config_prefix="") |
114 | AC_ARG_WITH(wx-exec-prefix, | |
115 | [ --with-wx-exec-prefix=PREFIX | |
128c8706 | 116 | Exec prefix where wxWidgets is installed (optional)], |
5ff72dc4 | 117 | wx_config_exec_prefix="$withval", wx_config_exec_prefix="") |
debc175a VS |
118 | ]) |
119 | ||
ed33d524 VS |
120 | dnl Helper macro for checking if wx version is at least $1.$2.$3, set's |
121 | dnl wx_ver_ok=yes if it is: | |
122 | AC_DEFUN([_WX_PRIVATE_CHECK_VERSION], | |
123 | [ | |
124 | wx_ver_ok="" | |
33e61c47 | 125 | if test "x$WX_VERSION_FULL" != x ; then |
ed33d524 VS |
126 | if test $wx_config_major_version -gt $1; then |
127 | wx_ver_ok=yes | |
128 | else | |
129 | if test $wx_config_major_version -eq $1; then | |
130 | if test $wx_config_minor_version -gt $2; then | |
131 | wx_ver_ok=yes | |
132 | else | |
133 | if test $wx_config_minor_version -eq $2; then | |
134 | if test $wx_config_micro_version -ge $3; then | |
135 | wx_ver_ok=yes | |
136 | fi | |
137 | fi | |
138 | fi | |
139 | fi | |
140 | fi | |
141 | fi | |
142 | ]) | |
143 | ||
debc175a | 144 | dnl --------------------------------------------------------------------------- |
33e61c47 | 145 | dnl WX_CONFIG_CHECK(VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND |
8708fa76 | 146 | dnl [, WX-LIBS [, ADDITIONAL-WX-CONFIG-FLAGS]]]]) |
debc175a | 147 | dnl |
128c8706 VS |
148 | dnl Test for wxWidgets, and define WX_C*FLAGS, WX_LIBS and WX_LIBS_STATIC |
149 | dnl (the latter is for static linking against wxWidgets). Set WX_CONFIG_NAME | |
debc175a VS |
150 | dnl environment variable to override the default name of the wx-config script |
151 | dnl to use. Set WX_CONFIG_PATH to specify the full path to wx-config - in this | |
152 | dnl case the macro won't even waste time on tests for its existence. | |
c5be79d9 | 153 | dnl |
8708fa76 | 154 | dnl Optional WX-LIBS argument contains comma- or space-separated list of |
128c8706 | 155 | dnl wxWidgets libraries to link against (it may include contrib libraries). If |
8708fa76 | 156 | dnl it is not specified then WX_LIBS and WX_LIBS_STATIC will contain flags to |
128c8706 | 157 | dnl link with all of the core wxWidgets libraries. |
8708fa76 VS |
158 | dnl |
159 | dnl Optional ADDITIONAL-WX-CONFIG-FLAGS argument is appended to wx-config | |
160 | dnl invocation command in present. It can be used to fine-tune lookup of | |
161 | dnl best wxWidgets build available. | |
c5be79d9 VS |
162 | dnl |
163 | dnl Example use: | |
33e61c47 | 164 | dnl WX_CONFIG_CHECK([2.6.0], [wxWin=1], [wxWin=0], [html,core,net] |
8708fa76 | 165 | dnl [--unicode --debug]) |
debc175a VS |
166 | dnl --------------------------------------------------------------------------- |
167 | ||
168 | dnl | |
169 | dnl Get the cflags and libraries from the wx-config script | |
170 | dnl | |
33e61c47 | 171 | AC_DEFUN([WX_CONFIG_CHECK], |
debc175a VS |
172 | [ |
173 | dnl do we have wx-config name: it can be wx-config or wxd-config or ... | |
174 | if test x${WX_CONFIG_NAME+set} != xset ; then | |
175 | WX_CONFIG_NAME=wx-config | |
176 | fi | |
5ff72dc4 | 177 | |
debc175a VS |
178 | if test "x$wx_config_name" != x ; then |
179 | WX_CONFIG_NAME="$wx_config_name" | |
180 | fi | |
181 | ||
182 | dnl deal with optional prefixes | |
183 | if test x$wx_config_exec_prefix != x ; then | |
184 | wx_config_args="$wx_config_args --exec-prefix=$wx_config_exec_prefix" | |
8e1aefe0 | 185 | WX_LOOKUP_PATH="$wx_config_exec_prefix/bin" |
debc175a VS |
186 | fi |
187 | if test x$wx_config_prefix != x ; then | |
188 | wx_config_args="$wx_config_args --prefix=$wx_config_prefix" | |
8e1aefe0 | 189 | WX_LOOKUP_PATH="$WX_LOOKUP_PATH:$wx_config_prefix/bin" |
debc175a | 190 | fi |
48112931 VS |
191 | if test "$cross_compiling" = "yes"; then |
192 | wx_config_args="$wx_config_args --host=$host_alias" | |
193 | fi | |
debc175a | 194 | |
8e1aefe0 VS |
195 | dnl don't search the PATH if WX_CONFIG_NAME is absolute filename |
196 | if test -x "$WX_CONFIG_NAME" ; then | |
197 | AC_MSG_CHECKING(for wx-config) | |
198 | WX_CONFIG_PATH="$WX_CONFIG_NAME" | |
199 | AC_MSG_RESULT($WX_CONFIG_PATH) | |
200 | else | |
201 | AC_PATH_PROG(WX_CONFIG_PATH, $WX_CONFIG_NAME, no, "$WX_LOOKUP_PATH:$PATH") | |
debc175a VS |
202 | fi |
203 | ||
204 | if test "$WX_CONFIG_PATH" != "no" ; then | |
33e61c47 | 205 | WX_VERSION_FULL="" |
debc175a VS |
206 | |
207 | min_wx_version=ifelse([$1], ,2.2.1,$1) | |
8708fa76 | 208 | if test -z "$5" ; then |
128c8706 | 209 | AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version]) |
8708fa76 | 210 | else |
128c8706 | 211 | AC_MSG_CHECKING([for wxWidgets version >= $min_wx_version ($5)]) |
8708fa76 | 212 | fi |
debc175a | 213 | |
8708fa76 | 214 | WX_CONFIG_WITH_ARGS="$WX_CONFIG_PATH $wx_config_args $5 $4" |
debc175a | 215 | |
33e61c47 VZ |
216 | WX_VERSION_FULL=`$WX_CONFIG_WITH_ARGS --version 2>/dev/null` |
217 | wx_config_major_version=`echo $WX_VERSION_FULL | \ | |
debc175a | 218 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` |
33e61c47 | 219 | wx_config_minor_version=`echo $WX_VERSION_FULL | \ |
debc175a | 220 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` |
33e61c47 | 221 | wx_config_micro_version=`echo $WX_VERSION_FULL | \ |
debc175a VS |
222 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` |
223 | ||
224 | wx_requested_major_version=`echo $min_wx_version | \ | |
225 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` | |
226 | wx_requested_minor_version=`echo $min_wx_version | \ | |
227 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` | |
228 | wx_requested_micro_version=`echo $min_wx_version | \ | |
229 | sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` | |
230 | ||
ed33d524 VS |
231 | _WX_PRIVATE_CHECK_VERSION([$wx_requested_major_version], |
232 | [$wx_requested_minor_version], | |
233 | [$wx_requested_micro_version]) | |
debc175a | 234 | |
3f45f8bf RL |
235 | if test -n "$wx_ver_ok"; then |
236 | ||
33e61c47 | 237 | AC_MSG_RESULT(yes (version $WX_VERSION_FULL)) |
8708fa76 | 238 | WX_LIBS=`$WX_CONFIG_WITH_ARGS --libs` |
3f45f8bf RL |
239 | |
240 | dnl is this even still appropriate? --static is a real option now | |
241 | dnl and WX_CONFIG_WITH_ARGS is likely to contain it if that is | |
242 | dnl what the user actually wants, making this redundant at best. | |
243 | dnl For now keep it in case anyone actually used it in the past. | |
128c8706 | 244 | AC_MSG_CHECKING([for wxWidgets static library]) |
a1d47842 VZ |
245 | WX_LIBS_STATIC=`$WX_CONFIG_WITH_ARGS --static --libs 2>/dev/null` |
246 | if test "x$WX_LIBS_STATIC" = "x"; then | |
247 | AC_MSG_RESULT(no) | |
248 | else | |
3f45f8bf RL |
249 | AC_MSG_RESULT(yes) |
250 | fi | |
debc175a VS |
251 | |
252 | dnl starting with version 2.2.6 wx-config has --cppflags argument | |
253 | wx_has_cppflags="" | |
254 | if test $wx_config_major_version -gt 2; then | |
255 | wx_has_cppflags=yes | |
256 | else | |
257 | if test $wx_config_major_version -eq 2; then | |
258 | if test $wx_config_minor_version -gt 2; then | |
259 | wx_has_cppflags=yes | |
260 | else | |
261 | if test $wx_config_minor_version -eq 2; then | |
262 | if test $wx_config_micro_version -ge 6; then | |
263 | wx_has_cppflags=yes | |
264 | fi | |
265 | fi | |
266 | fi | |
267 | fi | |
268 | fi | |
269 | ||
692ebda6 JS |
270 | dnl starting with version 2.7.0 wx-config has --rescomp option |
271 | wx_has_rescomp="" | |
272 | if test $wx_config_major_version -gt 2; then | |
273 | wx_has_rescomp=yes | |
274 | else | |
275 | if test $wx_config_major_version -eq 2; then | |
276 | if test $wx_config_minor_version -ge 7; then | |
277 | wx_has_rescomp=yes | |
278 | fi | |
279 | fi | |
280 | fi | |
281 | if test "x$wx_has_rescomp" = x ; then | |
282 | dnl cannot give any useful info for resource compiler | |
283 | WX_RESCOMP= | |
284 | else | |
285 | WX_RESCOMP=`$WX_CONFIG_WITH_ARGS --rescomp` | |
286 | fi | |
287 | ||
debc175a VS |
288 | if test "x$wx_has_cppflags" = x ; then |
289 | dnl no choice but to define all flags like CFLAGS | |
290 | WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` | |
291 | WX_CPPFLAGS=$WX_CFLAGS | |
292 | WX_CXXFLAGS=$WX_CFLAGS | |
293 | ||
294 | WX_CFLAGS_ONLY=$WX_CFLAGS | |
295 | WX_CXXFLAGS_ONLY=$WX_CFLAGS | |
296 | else | |
297 | dnl we have CPPFLAGS included in CFLAGS included in CXXFLAGS | |
298 | WX_CPPFLAGS=`$WX_CONFIG_WITH_ARGS --cppflags` | |
299 | WX_CXXFLAGS=`$WX_CONFIG_WITH_ARGS --cxxflags` | |
300 | WX_CFLAGS=`$WX_CONFIG_WITH_ARGS --cflags` | |
301 | ||
302 | WX_CFLAGS_ONLY=`echo $WX_CFLAGS | sed "s@^$WX_CPPFLAGS *@@"` | |
303 | WX_CXXFLAGS_ONLY=`echo $WX_CXXFLAGS | sed "s@^$WX_CFLAGS *@@"` | |
304 | fi | |
debc175a | 305 | |
3f45f8bf RL |
306 | ifelse([$2], , :, [$2]) |
307 | ||
debc175a | 308 | else |
3f45f8bf | 309 | |
33e61c47 | 310 | if test "x$WX_VERSION_FULL" = x; then |
5ff72dc4 VZ |
311 | dnl no wx-config at all |
312 | AC_MSG_RESULT(no) | |
debc175a | 313 | else |
33e61c47 | 314 | AC_MSG_RESULT(no (version $WX_VERSION_FULL is not new enough)) |
debc175a VS |
315 | fi |
316 | ||
317 | WX_CFLAGS="" | |
318 | WX_CPPFLAGS="" | |
319 | WX_CXXFLAGS="" | |
320 | WX_LIBS="" | |
321 | WX_LIBS_STATIC="" | |
692ebda6 | 322 | WX_RESCOMP="" |
33e61c47 VZ |
323 | |
324 | if test ! -z "$5"; then | |
325 | ||
326 | wx_error_message=" | |
327 | The configuration you asked for $PACKAGE_NAME requires a wxWidgets | |
328 | build with the following settings: | |
329 | $5 | |
330 | but such build is not available. | |
331 | ||
332 | To see the wxWidgets builds available on this system, please use | |
333 | 'wx-config --list' command. To use the default build, returned by | |
334 | 'wx-config --selected-config', use the options with their 'auto' | |
335 | default values." | |
336 | ||
337 | fi | |
338 | ||
339 | wx_error_message=" | |
340 | The requested wxWidgets build couldn't be found. | |
341 | $wx_error_message | |
342 | ||
343 | If you still get this error, then check that 'wx-config' is | |
344 | in path, the directory where wxWidgets libraries are installed | |
345 | (returned by 'wx-config --libs' command) is in LD_LIBRARY_PATH | |
346 | or equivalent variable and wxWidgets version is $1 or above." | |
347 | ||
348 | ifelse([$3], , AC_MSG_ERROR([$wx_error_message]), [$3]) | |
3f45f8bf | 349 | |
debc175a | 350 | fi |
80f3a6b0 JS |
351 | else |
352 | ||
353 | WX_CFLAGS="" | |
354 | WX_CPPFLAGS="" | |
355 | WX_CXXFLAGS="" | |
356 | WX_LIBS="" | |
357 | WX_LIBS_STATIC="" | |
692ebda6 JS |
358 | WX_RESCOMP="" |
359 | ||
80f3a6b0 JS |
360 | ifelse([$3], , :, [$3]) |
361 | ||
debc175a VS |
362 | fi |
363 | ||
364 | AC_SUBST(WX_CPPFLAGS) | |
365 | AC_SUBST(WX_CFLAGS) | |
366 | AC_SUBST(WX_CXXFLAGS) | |
367 | AC_SUBST(WX_CFLAGS_ONLY) | |
368 | AC_SUBST(WX_CXXFLAGS_ONLY) | |
369 | AC_SUBST(WX_LIBS) | |
370 | AC_SUBST(WX_LIBS_STATIC) | |
33e61c47 | 371 | AC_SUBST(WX_VERSION_FULL) |
692ebda6 | 372 | AC_SUBST(WX_RESCOMP) |
33e61c47 VZ |
373 | |
374 | dnl need to export also WX_VERSION_MINOR and WX_VERSION_MAJOR symbols | |
375 | dnl to support wxpresets bakefiles | |
376 | WX_VERSION_MAJOR="$wx_config_major_version" | |
377 | WX_VERSION_MINOR="$wx_config_minor_version" | |
378 | AC_SUBST(WX_VERSION_MAJOR) | |
379 | AC_SUBST(WX_VERSION_MINOR) | |
debc175a | 380 | ]) |
ed33d524 VS |
381 | |
382 | dnl --------------------------------------------------------------------------- | |
383 | dnl Get information on the wxrc program for making C++, Python and xrs | |
384 | dnl resource files. | |
385 | dnl | |
386 | dnl AC_ARG_ENABLE(...) | |
387 | dnl AC_ARG_WITH(...) | |
388 | dnl ... | |
33e61c47 | 389 | dnl WX_CONFIG_OPTIONS |
ed33d524 | 390 | dnl ... |
33e61c47 | 391 | dnl WX_CONFIG_CHECK(2.6.0, wxWin=1) |
ed33d524 VS |
392 | dnl if test "$wxWin" != 1; then |
393 | dnl AC_MSG_ERROR([ | |
394 | dnl wxWidgets must be installed on your system | |
395 | dnl but wx-config script couldn't be found. | |
396 | dnl | |
397 | dnl Please check that wx-config is in path, the directory | |
398 | dnl where wxWidgets libraries are installed (returned by | |
399 | dnl 'wx-config --libs' command) is in LD_LIBRARY_PATH or | |
400 | dnl equivalent variable and wxWidgets version is 2.6.0 or above. | |
401 | dnl ]) | |
402 | dnl fi | |
403 | dnl | |
33e61c47 | 404 | dnl WXRC_CHECK([HAVE_WXRC=1], [HAVE_WXRC=0]) |
ed33d524 VS |
405 | dnl if test "x$HAVE_WXRC" != x1; then |
406 | dnl AC_MSG_ERROR([ | |
407 | dnl The wxrc program was not installed or not found. | |
408 | dnl | |
409 | dnl Please check the wxWidgets installation. | |
410 | dnl ]) | |
411 | dnl fi | |
412 | dnl | |
413 | dnl CPPFLAGS="$CPPFLAGS $WX_CPPFLAGS" | |
414 | dnl CXXFLAGS="$CXXFLAGS $WX_CXXFLAGS_ONLY" | |
415 | dnl CFLAGS="$CFLAGS $WX_CFLAGS_ONLY" | |
416 | dnl | |
417 | dnl LDFLAGS="$LDFLAGS $WX_LIBS" | |
418 | dnl --------------------------------------------------------------------------- | |
419 | ||
ed33d524 | 420 | dnl --------------------------------------------------------------------------- |
33e61c47 | 421 | dnl WXRC_CHECK([ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) |
ed33d524 VS |
422 | dnl |
423 | dnl Test for wxWidgets' wxrc program for creating either C++, Python or XRS | |
424 | dnl resources. The variable WXRC will be set and substituted in the configure | |
425 | dnl script and Makefiles. | |
426 | dnl | |
427 | dnl Example use: | |
33e61c47 | 428 | dnl WXRC_CHECK([wxrc=1], [wxrc=0]) |
ed33d524 VS |
429 | dnl --------------------------------------------------------------------------- |
430 | ||
431 | dnl | |
432 | dnl wxrc program from the wx-config script | |
433 | dnl | |
33e61c47 | 434 | AC_DEFUN([WXRC_CHECK], |
ed33d524 VS |
435 | [ |
436 | AC_ARG_VAR([WXRC], [Path to wxWidget's wxrc resource compiler]) | |
437 | ||
438 | if test "x$WX_CONFIG_NAME" = x; then | |
439 | AC_MSG_ERROR([The wxrc tests must run after wxWidgets test.]) | |
440 | else | |
441 | ||
442 | AC_MSG_CHECKING([for wxrc]) | |
443 | ||
444 | if test "x$WXRC" = x ; then | |
445 | dnl wx-config --utility is a new addition to wxWidgets: | |
446 | _WX_PRIVATE_CHECK_VERSION(2,5,3) | |
447 | if test -n "$wx_ver_ok"; then | |
448 | WXRC=`$WX_CONFIG_WITH_ARGS --utility=wxrc` | |
449 | fi | |
450 | fi | |
451 | ||
452 | if test "x$WXRC" = x ; then | |
453 | AC_MSG_RESULT([not found]) | |
454 | ifelse([$2], , :, [$2]) | |
455 | else | |
456 | AC_MSG_RESULT([$WXRC]) | |
457 | ifelse([$1], , :, [$1]) | |
458 | fi | |
459 | ||
460 | AC_SUBST(WXRC) | |
461 | fi | |
462 | ]) | |
33e61c47 VZ |
463 | |
464 | dnl --------------------------------------------------------------------------- | |
465 | dnl WX_LIKE_LIBNAME([output-var] [prefix], [name]) | |
466 | dnl | |
467 | dnl Sets the "output-var" variable to the name of a library named with same | |
468 | dnl wxWidgets rule. | |
469 | dnl E.g. for output-var=='lib', name=='test', prefix='mine', sets | |
470 | dnl the $lib variable to: | |
471 | dnl 'mine_gtk2ud_test-2.8' | |
472 | dnl if WX_PORT=gtk2, WX_UNICODE=1, WX_DEBUG=1 and WX_VERSION=28 | |
473 | dnl --------------------------------------------------------------------------- | |
474 | AC_DEFUN([WX_LIKE_LIBNAME], | |
475 | [ | |
476 | wx_temp="$2""_""$WX_PORT" | |
477 | ||
478 | dnl add the [u][d] string | |
479 | if test "$WX_UNICODE" = "1"; then | |
480 | wx_temp="$wx_temp""u" | |
481 | fi | |
482 | if test "$WX_DEBUG" = "1"; then | |
483 | wx_temp="$wx_temp""d" | |
484 | fi | |
485 | ||
486 | dnl complete the name of the lib | |
487 | wx_temp="$wx_temp""_""$3""-$WX_VERSION_MAJOR.$WX_VERSION_MINOR" | |
488 | ||
489 | dnl save it in the user's variable | |
490 | $1=$wx_temp | |
491 | ]) | |
492 | ||
493 | dnl --------------------------------------------------------------------------- | |
494 | dnl WX_ARG_ENABLE_YESNOAUTO/WX_ARG_WITH_YESNOAUTO | |
495 | dnl | |
496 | dnl Two little custom macros which define the ENABLE/WITH configure arguments. | |
497 | dnl Macro arguments: | |
498 | dnl $1 = the name of the --enable / --with feature | |
499 | dnl $2 = the name of the variable associated | |
500 | dnl $3 = the description of that feature | |
501 | dnl $4 = the default value for that feature | |
502 | dnl $5 = additional action to do in case option is given with "yes" value | |
503 | dnl --------------------------------------------------------------------------- | |
504 | AC_DEFUN([WX_ARG_ENABLE_YESNOAUTO], | |
505 | [AC_ARG_ENABLE($1, | |
506 | AC_HELP_STRING([--enable-$1], [$3 (default is $4)]), | |
507 | [], [enableval="$4"]) | |
508 | ||
509 | dnl Show a message to the user about this option | |
510 | AC_MSG_CHECKING([for the --enable-$1 option]) | |
511 | if test "$enableval" = "yes" ; then | |
512 | AC_MSG_RESULT([yes]) | |
513 | $2=1 | |
514 | $5 | |
515 | elif test "$enableval" = "no" ; then | |
516 | AC_MSG_RESULT([no]) | |
517 | $2=0 | |
518 | elif test "$enableval" = "auto" ; then | |
519 | AC_MSG_RESULT([will be automatically detected]) | |
520 | $2="auto" | |
521 | else | |
522 | AC_MSG_ERROR([ | |
523 | Unrecognized option value (allowed values: yes, no, auto) | |
524 | ]) | |
525 | fi | |
526 | ]) | |
527 | ||
528 | AC_DEFUN([WX_ARG_WITH_YESNOAUTO], | |
529 | [AC_ARG_WITH($1, | |
530 | AC_HELP_STRING([--with-$1], [$3 (default is $4)]), | |
531 | [], [withval="$4"]) | |
532 | ||
533 | dnl Show a message to the user about this option | |
534 | AC_MSG_CHECKING([for the --with-$1 option]) | |
535 | if test "$withval" = "yes" ; then | |
536 | AC_MSG_RESULT([yes]) | |
537 | $2=1 | |
538 | $5 | |
539 | dnl NB: by default we don't allow --with-$1=no option | |
540 | dnl since it does not make much sense ! | |
541 | elif test "$6" = "1" -a "$withval" = "no" ; then | |
542 | AC_MSG_RESULT([no]) | |
543 | $2=0 | |
544 | elif test "$withval" = "auto" ; then | |
545 | AC_MSG_RESULT([will be automatically detected]) | |
546 | $2="auto" | |
547 | else | |
548 | AC_MSG_ERROR([ | |
549 | Unrecognized option value (allowed values: yes, auto) | |
550 | ]) | |
551 | fi | |
552 | ]) | |
553 | ||
554 | ||
555 | dnl --------------------------------------------------------------------------- | |
556 | dnl WX_STANDARD_OPTIONS([options-to-add]) | |
557 | dnl | |
558 | dnl Adds to the configure script one or more of the following options: | |
559 | dnl --enable-[debug|unicode|shared|wxshared|wxdebug] | |
560 | dnl --with-[gtk|msw|motif|x11|mac|mgl|dfb] | |
561 | dnl Then checks for their presence and eventually set the DEBUG, UNICODE, SHARED, | |
562 | dnl PORT, WX_SHARED, WX_DEBUG, variables to one of the "yes", "no", "auto" values. | |
563 | dnl | |
564 | dnl Note that e.g. UNICODE != WX_UNICODE; the first is the value of the | |
565 | dnl --enable-unicode option (in boolean format) while the second indicates | |
566 | dnl if wxWidgets was built in Unicode mode (and still is in boolean format). | |
567 | dnl --------------------------------------------------------------------------- | |
568 | AC_DEFUN([WX_STANDARD_OPTIONS], | |
569 | [ | |
570 | ||
571 | dnl the following lines will expand to WX_ARG_ENABLE_YESNOAUTO calls if and only if | |
572 | dnl the $1 argument contains respectively the debug,unicode or shared options. | |
573 | ||
574 | ifelse(index([$1], [debug]), [-1],, | |
575 | [WX_ARG_ENABLE_YESNOAUTO([debug], [DEBUG], [Build in debug mode], [auto])]) | |
576 | ||
577 | ifelse(index([$1], [unicode]), [-1],, | |
578 | [WX_ARG_ENABLE_YESNOAUTO([unicode], [UNICODE], [Build in Unicode mode], [auto])]) | |
579 | ||
580 | ifelse(index([$1], [shared]), [-1],, | |
581 | [WX_ARG_ENABLE_YESNOAUTO([shared], [SHARED], [Build as shared library], [auto])]) | |
582 | ||
583 | dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-toolkit since it's an option | |
584 | dnl which must be able to accept the auto|gtk1|gtk2|msw|... values | |
585 | ifelse(index([$1], [toolkit]), [-1],, | |
586 | [ | |
587 | AC_ARG_WITH([toolkit], | |
588 | AC_HELP_STRING([--with-toolkit], | |
589 | [Build against a specific wxWidgets toolkit (default is auto)]), | |
590 | [], [withval="auto"]) | |
591 | ||
592 | dnl Show a message to the user about this option | |
593 | AC_MSG_CHECKING([for the --with-toolkit option]) | |
594 | if test "$withval" = "auto" ; then | |
595 | AC_MSG_RESULT([will be automatically detected]) | |
596 | TOOLKIT="auto" | |
597 | else | |
598 | TOOLKIT="$withval" | |
599 | ||
600 | dnl PORT must be one of the allowed values | |
601 | if test "$TOOLKIT" != "gtk1" -a "$TOOLKIT" != "gtk2" -a \ | |
602 | "$TOOLKIT" != "msw" -a "$TOOLKIT" != "motif" -a \ | |
603 | "$TOOLKIT" != "x11" -a "$TOOLKIT" != "mac" -a \ | |
604 | "$TOOLKIT" != "mgl" -a "$TOOLKIT" != "dfb" ; then | |
605 | AC_MSG_ERROR([ | |
606 | Unrecognized option value (allowed values: auto, gtk1, gtk2, msw, motif, x11, mac, mgl, dfb) | |
607 | ]) | |
608 | fi | |
609 | ||
610 | AC_MSG_RESULT([$TOOLKIT]) | |
611 | fi | |
612 | ]) | |
613 | ||
614 | dnl ****** IMPORTANT ******* | |
615 | dnl Unlike for the UNICODE setting, you can build your program in | |
616 | dnl shared mode against a static build of wxWidgets. Thus we have the | |
617 | dnl following option which allows these mixtures. E.g. | |
618 | dnl | |
619 | dnl ./configure --disable-shared --with-wxshared | |
620 | dnl | |
621 | dnl will build your library in static mode against the first available | |
622 | dnl shared build of wxWidgets. | |
623 | dnl | |
624 | dnl Note that's not possible to do the viceversa: | |
625 | dnl | |
626 | dnl ./configure --enable-shared --without-wxshared | |
627 | dnl | |
628 | dnl Doing so you would try to build your library in shared mode against a static | |
629 | dnl build of wxWidgets. This is not possible (you would mix PIC and non PIC code) ! | |
630 | dnl A check for this combination of options is in WX_DETECT_STANDARD_OPTION_VALUES | |
631 | dnl (where we know what 'auto' should be expanded to). | |
632 | dnl | |
633 | dnl If you try to build something in ANSI mode against a UNICODE build | |
634 | dnl of wxWidgets or in RELEASE mode against a DEBUG build of wxWidgets, | |
635 | dnl then at best you'll get ton of linking errors ! | |
636 | dnl ************************ | |
637 | ||
638 | ifelse(index([$1], [wxshared]), [-1],, | |
639 | [ | |
640 | WX_ARG_WITH_YESNOAUTO( | |
641 | [wxshared], [WX_SHARED], | |
642 | [Force building against a shared build of wxWidgets, even if --disable-shared is given], | |
643 | [auto], [], [1]) | |
644 | ]) | |
645 | ||
646 | dnl Just like for SHARED and WX_SHARED it may happen that some adventurous | |
647 | dnl peoples will want to mix a wxWidgets release build with a debug build of | |
648 | dnl his app/lib. So, we have both DEBUG and WX_DEBUG variables. | |
649 | ifelse(index([$1], [wxdebug]), [-1],, | |
650 | [ | |
651 | WX_ARG_WITH_YESNOAUTO( | |
652 | [wxdebug], [WX_DEBUG], | |
653 | [Force building against a debug build of wxWidgets, even if --disable-debug is given], | |
654 | [auto], [], [1]) | |
655 | ]) | |
656 | ||
657 | dnl WX_ARG_WITH_YESNOAUTO cannot be used for --with-wxversion since it's an option | |
658 | dnl which must be able to accept the auto|26|27|28... values | |
659 | ifelse(index([$1], [wxversion]), [-1],, | |
660 | [ | |
661 | AC_ARG_WITH([wxversion], | |
662 | AC_HELP_STRING([--with-wxversion], | |
663 | [Build against a specific version of wxWidgets (default is auto)]), | |
664 | [], [withval="auto"]) | |
665 | ||
666 | dnl Show a message to the user about this option | |
667 | AC_MSG_CHECKING([for the --with-wxversion option]) | |
668 | if test "$withval" = "auto" ; then | |
669 | AC_MSG_RESULT([will be automatically detected]) | |
670 | WX_VERSION="auto" | |
671 | else | |
672 | ||
673 | wx_requested_major_version=`echo $withval | \ | |
674 | sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\1/'` | |
675 | wx_requested_minor_version=`echo $withval | \ | |
676 | sed 's/\([[0-9]]*\).\([[0-9]]*\).*/\2/'` | |
677 | ||
678 | dnl both vars above must be exactly 1 digit | |
679 | if test "${#wx_requested_major_version}" != "1" -o \ | |
680 | "${#wx_requested_minor_version}" != "1" ; then | |
681 | AC_MSG_ERROR([ | |
682 | Unrecognized option value (allowed values: auto, 2.6, 2.7, 2.8, 2.9) | |
683 | ]) | |
684 | fi | |
685 | ||
686 | WX_VERSION="$wx_requested_major_version"".""$wx_requested_minor_version" | |
687 | AC_MSG_RESULT([$WX_VERSION]) | |
688 | fi | |
689 | ]) | |
690 | ||
691 | if test "$WX_DEBUG_CONFIGURE" = "1"; then | |
692 | echo "[[dbg]] DEBUG: $DEBUG, WX_DEBUG: $WX_DEBUG" | |
693 | echo "[[dbg]] UNICODE: $UNICODE, WX_UNICODE: $WX_UNICODE" | |
694 | echo "[[dbg]] SHARED: $SHARED, WX_SHARED: $WX_SHARED" | |
695 | echo "[[dbg]] TOOLKIT: $TOOLKIT, WX_TOOLKIT: $WX_TOOLKIT" | |
696 | echo "[[dbg]] VERSION: $VERSION, WX_VERSION: $WX_VERSION" | |
697 | fi | |
698 | ]) | |
699 | ||
700 | ||
701 | dnl --------------------------------------------------------------------------- | |
702 | dnl WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS | |
703 | dnl | |
704 | dnl Sets the WXCONFIG_FLAGS string using the SHARED,DEBUG,UNICODE variable values | |
705 | dnl which are different from "auto". | |
706 | dnl Thus this macro needs to be called only once all options have been set. | |
707 | dnl --------------------------------------------------------------------------- | |
708 | AC_DEFUN([WX_CONVERT_STANDARD_OPTIONS_TO_WXCONFIG_FLAGS], | |
709 | [ | |
710 | if test "$WX_SHARED" = "1" ; then | |
711 | WXCONFIG_FLAGS="--static=no " | |
712 | elif test "$WX_SHARED" = "0" ; then | |
713 | WXCONFIG_FLAGS="--static=yes " | |
714 | fi | |
715 | ||
716 | if test "$WX_DEBUG" = "1" ; then | |
717 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=yes " | |
718 | elif test "$WX_DEBUG" = "0" ; then | |
719 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--debug=no " | |
720 | fi | |
721 | ||
722 | dnl The user should have set WX_UNICODE=UNICODE | |
723 | if test "$WX_UNICODE" = "1" ; then | |
724 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=yes " | |
725 | elif test "$WX_UNICODE" = "0" ; then | |
726 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--unicode=no " | |
727 | fi | |
728 | ||
729 | if test "$TOOLKIT" != "auto" ; then | |
730 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--toolkit=$TOOLKIT " | |
731 | fi | |
732 | ||
733 | if test "$WX_VERSION" != "auto" ; then | |
734 | WXCONFIG_FLAGS="$WXCONFIG_FLAGS""--version=$WX_VERSION " | |
735 | fi | |
736 | ||
737 | dnl strip out the last space of the string | |
738 | WXCONFIG_FLAGS=${WXCONFIG_FLAGS% } | |
739 | ||
740 | if test "$WX_DEBUG_CONFIGURE" = "1"; then | |
741 | echo "[[dbg]] WXCONFIG_FLAGS: $WXCONFIG_FLAGS" | |
742 | fi | |
743 | ]) | |
744 | ||
745 | ||
746 | dnl --------------------------------------------------------------------------- | |
747 | dnl _WX_SELECTEDCONFIG_CHECKFOR([RESULTVAR], [STRING], [MSG] | |
748 | dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) | |
749 | dnl | |
750 | dnl Outputs the given MSG. Then searches the given STRING in the wxWidgets | |
751 | dnl additional CPP flags and put the result of the search in WX_$RESULTVAR | |
752 | dnl also adding the "yes" or "no" message result to MSG. | |
753 | dnl --------------------------------------------------------------------------- | |
754 | AC_DEFUN([_WX_SELECTEDCONFIG_CHECKFOR], | |
755 | [ | |
756 | if test "$$1" = "auto" ; then | |
757 | ||
758 | dnl The user does not have particular preferences for this option; | |
759 | dnl so we will detect the wxWidgets relative build setting and use it | |
760 | AC_MSG_CHECKING([$3]) | |
761 | ||
762 | dnl set WX_$1 variable to 1 if the $WX_SELECTEDCONFIG contains the $2 | |
763 | dnl string or to 0 otherwise. | |
764 | dnl NOTE: 'expr match STRING REGEXP' cannot be used since on Mac it | |
765 | dnl doesn't work; we use 'expr STRING : REGEXP' instead | |
766 | WX_$1=$(expr "$WX_SELECTEDCONFIG" : ".*$2.*") | |
767 | ||
768 | if test "$WX_$1" != "0"; then | |
769 | WX_$1=1 | |
770 | AC_MSG_RESULT([yes]) | |
771 | ifelse([$4], , :, [$4]) | |
772 | else | |
773 | WX_$1=0 | |
774 | AC_MSG_RESULT([no]) | |
775 | ifelse([$5], , :, [$5]) | |
776 | fi | |
777 | else | |
778 | ||
779 | dnl Use the setting given by the user | |
780 | WX_$1=$$1 | |
781 | fi | |
782 | ]) | |
783 | ||
784 | dnl --------------------------------------------------------------------------- | |
785 | dnl WX_DETECT_STANDARD_OPTION_VALUES | |
786 | dnl | |
787 | dnl Detects the values of the following variables: | |
788 | dnl 1) WX_VERSION | |
789 | dnl 2) WX_UNICODE | |
790 | dnl 3) WX_DEBUG | |
791 | dnl 4) WX_SHARED (and also WX_STATIC) | |
792 | dnl 5) WX_PORT | |
793 | dnl from the previously selected wxWidgets build; this macro in fact must be | |
794 | dnl called *after* calling the WX_CONFIG_CHECK macro. | |
795 | dnl | |
796 | dnl Note that the WX_VERSION_MAJOR, WX_VERSION_MINOR symbols are already set | |
797 | dnl by WX_CONFIG_CHECK macro | |
798 | dnl --------------------------------------------------------------------------- | |
799 | AC_DEFUN([WX_DETECT_STANDARD_OPTION_VALUES], | |
800 | [ | |
801 | WX_VERSION="$WX_VERSION_MAJOR""$WX_VERSION_MINOR" | |
802 | if test $WX_VERSION -lt 26 ; then | |
803 | ||
804 | AC_MSG_ERROR([ | |
805 | Cannot detect the wxWidgets configuration for the selected wxWidgets build | |
806 | since its version is $WX_VERSION_FULL < 2.6.0; please install a newer | |
807 | version of wxWidgets. | |
808 | ]) | |
809 | fi | |
810 | ||
811 | dnl The wx-config we are using understands the "--selected_config" | |
812 | dnl option which returns an easy-parseable string ! | |
813 | WX_SELECTEDCONFIG=$($WX_CONFIG_WITH_ARGS --selected_config) | |
814 | ||
815 | if test "$WX_DEBUG_CONFIGURE" = "1"; then | |
816 | echo "[[dbg]] Using wx-config --selected-config" | |
817 | echo "[[dbg]] WX_SELECTEDCONFIG: $WX_SELECTEDCONFIG" | |
818 | fi | |
819 | ||
820 | ||
821 | dnl we could test directly for WX_SHARED with a line like: | |
822 | dnl _WX_SELECTEDCONFIG_CHECKFOR([SHARED], [shared], | |
823 | dnl [if wxWidgets was built in SHARED mode]) | |
824 | dnl but wx-config --selected-config DOES NOT outputs the 'shared' | |
825 | dnl word when wx was built in shared mode; it rather outputs the | |
826 | dnl 'static' word when built in static mode. | |
827 | if test $WX_SHARED = "1"; then | |
828 | STATIC=0 | |
829 | elif test $WX_SHARED = "0"; then | |
830 | STATIC=1 | |
831 | elif test $WX_SHARED = "auto"; then | |
832 | STATIC="auto" | |
833 | fi | |
834 | ||
835 | dnl Now set the WX_UNICODE, WX_DEBUG, WX_STATIC variables | |
836 | _WX_SELECTEDCONFIG_CHECKFOR([UNICODE], [unicode], | |
837 | [if wxWidgets was built with UNICODE enabled]) | |
838 | _WX_SELECTEDCONFIG_CHECKFOR([DEBUG], [debug], | |
839 | [if wxWidgets was built in DEBUG mode]) | |
840 | _WX_SELECTEDCONFIG_CHECKFOR([STATIC], [static], | |
841 | [if wxWidgets was built in STATIC mode]) | |
842 | ||
843 | dnl init WX_SHARED from WX_STATIC | |
844 | if test "$WX_STATIC" != "0"; then | |
845 | WX_SHARED=0 | |
846 | else | |
847 | WX_SHARED=1 | |
848 | fi | |
849 | ||
850 | AC_SUBST(WX_UNICODE) | |
851 | AC_SUBST(WX_DEBUG) | |
852 | AC_SUBST(WX_SHARED) | |
853 | ||
854 | dnl detect the WX_PORT to use | |
855 | if test "$TOOLKIT" = "auto" ; then | |
856 | ||
857 | dnl The user does not have particular preferences for this option; | |
858 | dnl so we will detect the wxWidgets relative build setting and use it | |
859 | AC_MSG_CHECKING([which wxWidgets toolkit was selected]) | |
860 | ||
861 | WX_GTKPORT1=$(expr "$WX_SELECTEDCONFIG" : ".*gtk1.*") | |
862 | WX_GTKPORT2=$(expr "$WX_SELECTEDCONFIG" : ".*gtk2.*") | |
863 | WX_MSWPORT=$(expr "$WX_SELECTEDCONFIG" : ".*msw.*") | |
864 | WX_MOTIFPORT=$(expr "$WX_SELECTEDCONFIG" : ".*motif.*") | |
865 | WX_MACPORT=$(expr "$WX_SELECTEDCONFIG" : ".*mac.*") | |
866 | WX_X11PORT=$(expr "$WX_SELECTEDCONFIG" : ".*x11.*") | |
867 | WX_MGLPORT=$(expr "$WX_SELECTEDCONFIG" : ".*mgl.*") | |
868 | WX_DFBPORT=$(expr "$WX_SELECTEDCONFIG" : ".*dfb.*") | |
869 | ||
870 | WX_PORT="unknown" | |
871 | if test "$WX_GTKPORT1" != "0"; then WX_PORT="gtk1"; fi | |
872 | if test "$WX_GTKPORT2" != "0"; then WX_PORT="gtk2"; fi | |
873 | if test "$WX_MSWPORT" != "0"; then WX_PORT="msw"; fi | |
874 | if test "$WX_MOTIFPORT" != "0"; then WX_PORT="motif"; fi | |
875 | if test "$WX_MACPORT" != "0"; then WX_PORT="mac"; fi | |
876 | if test "$WX_X11PORT" != "0"; then WX_PORT="x11"; fi | |
877 | if test "$WX_MGLPORT" != "0"; then WX_PORT="mgl"; fi | |
878 | if test "$WX_DFBPORT" != "0"; then WX_PORT="dfb"; fi | |
879 | ||
880 | dnl check at least one of the WX_*PORT has been set ! | |
881 | ||
882 | if test "$WX_PORT" = "unknown" ; then | |
883 | AC_MSG_ERROR([ | |
884 | Cannot detect the currently installed wxWidgets port ! | |
885 | Please check your 'wx-config --cxxflags'... | |
886 | ]) | |
887 | fi | |
888 | ||
889 | AC_MSG_RESULT([$WX_PORT]) | |
890 | else | |
891 | ||
892 | dnl Use the setting given by the user | |
893 | if test -z "$TOOLKIT" ; then | |
894 | WX_PORT=$TOOLKIT | |
895 | else | |
896 | dnl try with PORT | |
897 | WX_PORT=$PORT | |
898 | fi | |
899 | fi | |
900 | ||
901 | AC_SUBST(WX_PORT) | |
902 | ||
903 | if test "$WX_DEBUG_CONFIGURE" = "1"; then | |
904 | echo "[[dbg]] Values of all WX_* options after final detection:" | |
905 | echo "[[dbg]] WX_DEBUG: $WX_DEBUG" | |
906 | echo "[[dbg]] WX_UNICODE: $WX_UNICODE" | |
907 | echo "[[dbg]] WX_SHARED: $WX_SHARED" | |
908 | echo "[[dbg]] WX_VERSION: $WX_VERSION" | |
909 | echo "[[dbg]] WX_PORT: $WX_PORT" | |
910 | fi | |
911 | ||
912 | dnl Avoid problem described in the WX_STANDARD_OPTIONS which happens when | |
913 | dnl the user gives the options: | |
914 | dnl ./configure --enable-shared --without-wxshared | |
915 | dnl or just do | |
916 | dnl ./configure --enable-shared | |
917 | dnl but there is only a static build of wxWidgets available. | |
918 | if test "$WX_SHARED" = "0" -a "$SHARED" = "1"; then | |
919 | AC_MSG_ERROR([ | |
920 | Cannot build shared library against a static build of wxWidgets ! | |
921 | This error happens because the wxWidgets build which was selected | |
922 | has been detected as static while you asked to build $PACKAGE_NAME | |
923 | as shared library and this is not possible. | |
924 | Use the '--disable-shared' option to build $PACKAGE_NAME | |
925 | as static library or '--with-wxshared' to use wxWidgets as shared library. | |
926 | ]) | |
927 | fi | |
928 | ||
929 | dnl now we can finally update the DEBUG,UNICODE,SHARED options | |
930 | dnl to their final values if they were set to 'auto' | |
931 | if test "$DEBUG" = "auto"; then | |
932 | DEBUG=$WX_DEBUG | |
933 | ||
934 | dnl in case user wants a BUILD=debug/release var... | |
935 | if test "$DEBUG" = "1"; then | |
936 | BUILD="debug" | |
937 | elif test "$DEBUG" = ""; then | |
938 | BUILD="release" | |
939 | fi | |
940 | fi | |
941 | if test "$UNICODE" = "auto"; then | |
942 | UNICODE=$WX_UNICODE | |
943 | fi | |
944 | if test "$SHARED" = "auto"; then | |
945 | SHARED=$WX_SHARED | |
946 | fi | |
947 | if test "$TOOLKIT" = "auto"; then | |
948 | TOOLKIT=$WX_PORT | |
949 | fi | |
950 | ||
951 | dnl respect the DEBUG variable adding the optimize/debug flags | |
952 | dnl NOTE: the CXXFLAGS are merged together with the CPPFLAGS so we | |
953 | dnl don't need to set them, too | |
954 | if test "$DEBUG" = "1"; then | |
955 | CXXFLAGS="$CXXFLAGS -g -O0" | |
956 | CFLAGS="$CFLAGS -g -O0" | |
957 | else | |
958 | CXXFLAGS="$CXXFLAGS -O2" | |
959 | CFLAGS="$CFLAGS -O2" | |
960 | fi | |
961 | ]) | |
962 | ||
963 | dnl --------------------------------------------------------------------------- | |
964 | dnl WX_BOOLOPT_SUMMARY([name of the boolean variable to show summary for], | |
965 | dnl [what to print when var is 1], | |
966 | dnl [what to print when var is 0]) | |
967 | dnl | |
968 | dnl Prints $2 when variable $1 == 1 and prints $3 when variable $1 == 0. | |
969 | dnl This macro mainly exists just to make configure.ac scripts more readable. | |
970 | dnl | |
971 | dnl NOTE: you need to use the [" my message"] syntax for 2nd and 3rd arguments | |
972 | dnl if you want that m4 avoid to throw away the spaces prefixed to the | |
973 | dnl argument value. | |
974 | dnl --------------------------------------------------------------------------- | |
975 | AC_DEFUN([WX_BOOLOPT_SUMMARY], | |
976 | [ | |
977 | if test "x$$1" = "x1" ; then | |
978 | echo $2 | |
979 | elif test "x$$1" = "x0" ; then | |
980 | echo $3 | |
981 | else | |
982 | echo "$1 is $$1" | |
983 | fi | |
984 | ]) | |
985 | ||
986 | dnl --------------------------------------------------------------------------- | |
987 | dnl WX_STANDARD_OPTIONS_SUMMARY_MSG | |
988 | dnl | |
989 | dnl Shows a summary message to the user about the WX_* variable contents. | |
990 | dnl This macro is used typically at the end of the configure script. | |
991 | dnl --------------------------------------------------------------------------- | |
992 | AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG], | |
993 | [ | |
994 | echo | |
995 | echo " The wxWidgets build which will be used by $PACKAGE_NAME $PACKAGE_VERSION" | |
996 | echo " has the following settings:" | |
997 | WX_BOOLOPT_SUMMARY([WX_DEBUG], [" - DEBUG build"], [" - RELEASE build"]) | |
998 | WX_BOOLOPT_SUMMARY([WX_UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) | |
999 | WX_BOOLOPT_SUMMARY([WX_SHARED], [" - SHARED mode"], [" - STATIC mode"]) | |
1000 | echo " - VERSION: $WX_VERSION_FULL" | |
1001 | echo " - PORT: $WX_PORT" | |
1002 | ]) | |
1003 | ||
1004 | ||
1005 | dnl --------------------------------------------------------------------------- | |
1006 | dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN, WX_STANDARD_OPTIONS_SUMMARY_MSG_END | |
1007 | dnl | |
1008 | dnl Like WX_STANDARD_OPTIONS_SUMMARY_MSG macro but these two macros also gives info | |
1009 | dnl about the configuration of the package which used the wxpresets. | |
1010 | dnl | |
1011 | dnl Typical usage: | |
1012 | dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN | |
1013 | dnl echo " - Package setting 1: $SETTING1" | |
1014 | dnl echo " - Package setting 2: $SETTING1" | |
1015 | dnl ... | |
1016 | dnl WX_STANDARD_OPTIONS_SUMMARY_MSG_END | |
1017 | dnl | |
1018 | dnl --------------------------------------------------------------------------- | |
1019 | AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_BEGIN], | |
1020 | [ | |
1021 | echo | |
1022 | echo " ----------------------------------------------------------------" | |
1023 | echo " Configuration for $PACKAGE_NAME $PACKAGE_VERSION successfully completed." | |
1024 | echo " Summary of main configuration settings for $PACKAGE_NAME:" | |
1025 | WX_BOOLOPT_SUMMARY([DEBUG], [" - DEBUG build"], [" - RELEASE build"]) | |
1026 | WX_BOOLOPT_SUMMARY([UNICODE], [" - UNICODE mode"], [" - ANSI mode"]) | |
1027 | WX_BOOLOPT_SUMMARY([SHARED], [" - SHARED mode"], [" - STATIC mode"]) | |
1028 | ]) | |
1029 | ||
1030 | AC_DEFUN([WX_STANDARD_OPTIONS_SUMMARY_MSG_END], | |
1031 | [ | |
1032 | WX_STANDARD_OPTIONS_SUMMARY_MSG | |
1033 | echo | |
1034 | echo " Now, just run make." | |
1035 | echo " ----------------------------------------------------------------" | |
1036 | echo | |
1037 | ]) | |
1038 | ||
1039 | ||
1040 | dnl --------------------------------------------------------------------------- | |
1041 | dnl Deprecated macro wrappers | |
1042 | dnl --------------------------------------------------------------------------- | |
1043 | ||
1044 | AC_DEFUN([AM_OPTIONS_WXCONFIG], [WX_CONFIG_OPTIONS]) | |
fb5b1321 VZ |
1045 | AC_DEFUN([AM_PATH_WXCONFIG], [ |
1046 | WX_CONFIG_CHECK([$1],[$2],[$3],[$4],[$5]) | |
1047 | ]) | |
33e61c47 VZ |
1048 | |
1049 |