]> git.saurik.com Git - wxWidgets.git/blob - configure.in
BookCtrl event handler added to default book layer.
[wxWidgets.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION($Id$)dnl
3
4 AC_PREREQ(2.58)
5
6 dnl ---------------------------------------------------------------------------
7 dnl
8 dnl Top-level configure.in for wxWidgets by Robert Roebling, Phil Blecker,
9 dnl Vadim Zeitlin and Ron Lee
10 dnl
11 dnl This script is under the wxWidgets licence.
12 dnl
13 dnl Version: $Id$
14 dnl ---------------------------------------------------------------------------
15
16 dnl ---------------------------------------------------------------------------
17 dnl initialization
18 dnl ---------------------------------------------------------------------------
19
20 AC_INIT([wxWidgets], [2.7.0], [wx-dev@lists.wxwidgets.org])
21
22 dnl the file passed to AC_CONFIG_SRCDIR should be specific to our package
23 AC_CONFIG_SRCDIR([wx-config.in])
24
25 dnl sets build, host, target variables and the same with _alias
26 AC_CANONICAL_BUILD
27 AC_CANONICAL_HOST
28 AC_CANONICAL_TARGET
29
30
31 dnl When making releases do:
32 dnl
33 dnl wx_release_number += 1
34
35 wx_major_version_number=2
36 wx_minor_version_number=7
37 wx_release_number=0
38 wx_subrelease_number=1
39
40 WX_RELEASE=$wx_major_version_number.$wx_minor_version_number
41 WX_VERSION=$WX_RELEASE.$wx_release_number
42 WX_SUBVERSION=$WX_VERSION.$wx_subrelease_number
43
44 WX_MSW_VERSION=$wx_major_version_number$wx_minor_version_number$wx_release_number
45
46
47
48 dnl ------------------------------------------------------------------------
49 dnl Check platform (host system)
50 dnl ------------------------------------------------------------------------
51
52 dnl OS (assume Unix)
53 USE_UNIX=1
54 USE_OS2=0
55 USE_WIN32=0
56 USE_DOS=0
57 USE_BEOS=0
58 USE_MAC=0
59
60 dnl Unix kind
61 USE_AIX=
62 USE_BSD= dnl any BSD
63 USE_DARWIN= dnl a.k.a. Mac OS X
64 USE_FREEBSD=
65 USE_GNU= dnl GNU/Hurd
66 USE_HPUX=
67 USE_LINUX=
68 USE_NETBSD=
69 USE_OPENBSD=
70 USE_OSF= dnl OSF/1 (obsolete?)
71 USE_SGI=
72 USE_SOLARIS= dnl Solaris ("SunOS" >= 5)
73 USE_SUN= dnl SunOS or Solaris
74 USE_SUNOS= dnl old/real SunOS (obsolete)
75 USE_SVR4= dnl SysV R4
76 USE_SYSV= dnl any System V
77 USE_VMS=
78 USE_ULTRIX=
79 USE_UNIXWARE=
80
81 dnl hardware platform
82 USE_ALPHA=
83
84 dnl on some platforms xxx_r() functions are declared inside "#ifdef
85 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
86 dnl than checking it during run-time
87 NEEDS_D_REENTRANT_FOR_R_FUNCS=0
88
89 dnl the list of all available toolkits
90 dnl
91 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
92 ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11 DFB"
93
94 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
95 dnl which are either yes or no
96 DEFAULT_wxUSE_COCOA=0
97 DEFAULT_wxUSE_GTK=0
98 DEFAULT_wxUSE_MAC=0
99 DEFAULT_wxUSE_MGL=0
100 DEFAULT_wxUSE_MICROWIN=0
101 DEFAULT_wxUSE_MOTIF=0
102 DEFAULT_wxUSE_MSW=0
103 DEFAULT_wxUSE_PM=0
104 DEFAULT_wxUSE_X11=0
105 DEFAULT_wxUSE_DFB=0
106
107 dnl these are the values which are really default for the given platform -
108 dnl they're not cached and are only used if no --with-toolkit was given *and*
109 dnl nothing was found in the cache
110 DEFAULT_DEFAULT_wxUSE_COCOA=0
111 DEFAULT_DEFAULT_wxUSE_GTK=0
112 DEFAULT_DEFAULT_wxUSE_MAC=0
113 DEFAULT_DEFAULT_wxUSE_MGL=0
114 DEFAULT_DEFAULT_wxUSE_MICROWIN=0
115 DEFAULT_DEFAULT_wxUSE_MOTIF=0
116 DEFAULT_DEFAULT_wxUSE_MSW=0
117 DEFAULT_DEFAULT_wxUSE_PM=0
118 DEFAULT_DEFAULT_wxUSE_X11=0
119 DEFAULT_DEFAULT_wxUSE_DFB=0
120
121 PROGRAM_EXT=
122 SO_SUFFIX=so
123 SAMPLES_RPATH_FLAG=
124 SAMPLES_RPATH_POSTLINK=
125
126 DEFAULT_STD_FLAG=yes
127
128 dnl to support a new system, you need to add its canonical name (as determined
129 dnl by config.sub or specified by the configure command line) to this "case"
130 dnl and also define the shared library flags below - search for
131 dnl SHARED_LIB_SETUP to find the exact place
132 case "${host}" in
133 *-hp-hpux* )
134 USE_HPUX=1
135 DEFAULT_DEFAULT_wxUSE_MOTIF=1
136 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
137 SO_SUFFIX=sl
138 AC_DEFINE(__HPUX__)
139
140 dnl many standard declarations in HP-UX headers are only included if either
141 dnl _HPUX_SOURCE is defined, see stdsyms(5)
142 CPPFLAGS="-D_HPUX_SOURCE $CPPFLAGS"
143 ;;
144 *-*-linux* )
145 USE_LINUX=1
146 AC_DEFINE(__LINUX__)
147 TMP=`uname -m`
148 if test "x$TMP" = "xalpha"; then
149 USE_ALPHA=1
150 AC_DEFINE(__ALPHA__)
151 fi
152 DEFAULT_DEFAULT_wxUSE_GTK=1
153 ;;
154 *-*-gnu* | *-*-k*bsd*-gnu )
155 USE_GNU=1
156 TMP=`uname -m`
157 if test "x$TMP" = "xalpha"; then
158 USE_ALPHA=1
159 AC_DEFINE(__ALPHA__)
160 fi
161 DEFAULT_DEFAULT_wxUSE_GTK=1
162 ;;
163 *-*-irix5* | *-*-irix6* )
164 USE_SGI=1
165 USE_SVR4=1
166 AC_DEFINE(__SGI__)
167 AC_DEFINE(__SVR4__)
168 DEFAULT_DEFAULT_wxUSE_MOTIF=1
169 ;;
170 *-*-solaris2* )
171 USE_SUN=1
172 USE_SOLARIS=1
173 USE_SVR4=1
174 AC_DEFINE(__SUN__)
175 AC_DEFINE(__SOLARIS__)
176 AC_DEFINE(__SVR4__)
177 DEFAULT_DEFAULT_wxUSE_MOTIF=1
178 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
179 ;;
180 *-*-sunos4* )
181 USE_SUN=1
182 USE_SUNOS=1
183 USE_BSD=1
184 AC_DEFINE(__SUN__)
185 AC_DEFINE(__SUNOS__)
186 AC_DEFINE(__BSD__)
187 DEFAULT_DEFAULT_wxUSE_MOTIF=1
188 ;;
189 *-*-freebsd*)
190 USE_BSD=1
191 USE_FREEBSD=1
192 AC_DEFINE(__FREEBSD__)
193 AC_DEFINE(__BSD__)
194 DEFAULT_DEFAULT_wxUSE_GTK=1
195 ;;
196 *-*-openbsd*|*-*-mirbsd*)
197 USE_BSD=1
198 USE_OPENBSD=1
199 AC_DEFINE(__OPENBSD__)
200 AC_DEFINE(__BSD__)
201 DEFAULT_DEFAULT_wxUSE_GTK=1
202 ;;
203 *-*-netbsd*)
204 USE_BSD=1
205 USE_NETBSD=1
206 AC_DEFINE(__NETBSD__)
207 AC_DEFINE(__BSD__)
208 DEFAULT_DEFAULT_wxUSE_GTK=1
209 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
210
211 dnl some standard declarations in NetBSD headers are only included if
212 dnl _NETBSD_SOURCE and _LIBC are defined, e.g. getservbyname_r in netdb.h
213 CPPFLAGS="-D_NETBSD_SOURCE -D_LIBC $CPPFLAGS"
214 ;;
215 *-*-osf* )
216 USE_ALPHA=1
217 USE_OSF=1
218 AC_DEFINE(__ALPHA__)
219 AC_DEFINE(__OSF__)
220 DEFAULT_DEFAULT_wxUSE_MOTIF=1
221 NEEDS_D_REENTRANT_FOR_R_FUNCS=1
222 ;;
223 *-*-dgux5* )
224 USE_ALPHA=1
225 USE_SVR4=1
226 AC_DEFINE(__ALPHA__)
227 AC_DEFINE(__SVR4__)
228 DEFAULT_DEFAULT_wxUSE_MOTIF=1
229 ;;
230 *-*-sysv5* )
231 USE_SYSV=1
232 USE_SVR4=1
233 AC_DEFINE(__SYSV__)
234 AC_DEFINE(__SVR4__)
235 DEFAULT_DEFAULT_wxUSE_MOTIF=1
236 ;;
237 *-*-aix* )
238 USE_AIX=1
239 USE_SYSV=1
240 USE_SVR4=1
241 dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
242 dnl
243 dnl Both archive libraries and shared libraries on AIX have an .a
244 dnl extension. This will explain why you can't link with an .so and
245 dnl why it works with the name changed to .a.
246 SO_SUFFIX=a
247 AC_DEFINE(__AIX__)
248 AC_DEFINE(__SYSV__)
249 AC_DEFINE(__SVR4__)
250 DEFAULT_DEFAULT_wxUSE_MOTIF=1
251 ;;
252
253 *-*-*UnixWare*)
254 USE_SYSV=1
255 USE_SVR4=1
256 USE_UNIXWARE=1
257 AC_DEFINE(__UNIXWARE__)
258 ;;
259
260 *-*-cygwin* | *-*-mingw32* )
261 dnl MBN: some of the defines have been moved after toolkit detection
262 dnl because for wxMotif/wxGTK/wxX11 to build on Cygwin
263 dnl USE_UNIX must be set and not USE_WIN32
264 SO_SUFFIX=dll
265 PROGRAM_EXT=".exe"
266 DEFAULT_DEFAULT_wxUSE_MSW=1
267 DEFAULT_STD_FLAG=no
268 ;;
269
270 *-pc-msdosdjgpp )
271 USE_UNIX=0
272 USE_DOS=1
273 AC_DEFINE(__DOS__)
274 PROGRAM_EXT=".exe"
275 DEFAULT_DEFAULT_wxUSE_MGL=1
276 ;;
277
278 *-pc-os2_emx | *-pc-os2-emx )
279 AC_DEFINE(__EMX__)
280 USE_OS2=1
281 AC_DEFINE(__OS2__)
282 PROGRAM_EXT=".exe"
283 DEFAULT_DEFAULT_wxUSE_PM=1
284 dnl "c++" wrapper is not always available, so always use plain gcc.
285 CXX=gcc
286 LDFLAGS="$LDFLAGS -Zcrtdll"
287 dnl
288 dnl Some special code that's automatically added by autoconf-2.57 for OS/2
289 dnl and hopefully also by autoconf-2.58 and newer on all other platforms.
290 dnl For now however, we still need it to make sure the configure script
291 dnl works on OS/2 no matter what platform it is generated on.
292 ac_executable_extensions=".exe"
293 export ac_executable_extensions
294 dnl This strange code is necessary to deal with handling of
295 dnl backslashes by ksh and pdksh's sh variant.
296 ac_save_IFS="$IFS"
297 IFS='\\'
298 ac_TEMP_PATH=
299 for ac_dir in $PATH; do
300 IFS=$ac_save_IFS
301 if test -z "$ac_TEMP_PATH"; then
302 ac_TEMP_PATH="$ac_dir"
303 else
304 ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir"
305 fi
306 done
307 export PATH="$ac_TEMP_PATH"
308 unset ac_TEMP_PATH
309 DEFAULT_STD_FLAG=no
310 ;;
311
312 *-*-darwin* )
313 dnl Darwin based distributions (including Mac OS X)
314 USE_BSD=1
315 USE_DARWIN=1
316 SO_SUFFIX=dylib
317 AC_DEFINE(__BSD__)
318 AC_DEFINE(__DARWIN__)
319 AC_DEFINE(TARGET_CARBON)
320 DEFAULT_DEFAULT_wxUSE_MAC=1
321 DEFAULT_STD_FLAG=no
322 ;;
323 powerpc-apple-macos* )
324 dnl Classic Mac OS (< X)
325 USE_UNIX=0
326 dnl For some reason the test that should be cross-compiler capable fails
327 dnl However, there is no doubt that MacOS PowerPC is big endian.
328 ac_cv_c_bigendian=yes
329 SO_SUFFIX=shlib
330 dnl AC_DEFINE(TARGET_CARBON)
331 dnl platform.h needs TARGET_CARBON before setup.h, we'll add it to CPPFLAGS
332 DEFAULT_DEFAULT_wxUSE_MAC=1
333 DEFAULT_STD_FLAG=no
334 ;;
335
336 *-*-beos* )
337 dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
338 USE_BEOS=1
339 AC_DEFINE(__BEOS__)
340 ;;
341
342 *)
343 AC_MSG_WARN([*** System type ${host} is unknown, assuming generic Unix and continuing nevertheless.])
344 AC_MSG_WARN([*** Please report the build results to wx-dev@lists.wxwidgets.org.])
345
346 DEFAULT_DEFAULT_wxUSE_X11=1
347 DEFAULT_wxUSE_SHARED=no
348 esac
349
350 dnl ---------------------------------------------------------------------------
351 dnl command line options for configure
352 dnl ---------------------------------------------------------------------------
353
354 dnl the default values for all options - we collect them all here to simplify
355 dnl modification of the default values (for example, if the defaults for some
356 dnl platform should be changed, it can be done here too)
357 dnl
358 dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above
359
360 WX_ARG_CACHE_INIT
361
362 dnl useful to test the compilation with minimum options, define as 0 for normal
363 dnl usage
364 DEBUG_CONFIGURE=0
365 if test $DEBUG_CONFIGURE = 1; then
366 DEFAULT_wxUSE_UNIVERSAL=no
367 DEFAULT_wxUSE_STL=no
368
369 DEFAULT_wxUSE_NANOX=no
370
371 DEFAULT_wxUSE_THREADS=yes
372
373 DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes}
374 DEFAULT_wxUSE_OPTIMISE=no
375 DEFAULT_wxUSE_PROFILE=no
376 DEFAULT_wxUSE_NO_DEPS=no
377 DEFAULT_wxUSE_NO_RTTI=no
378 DEFAULT_wxUSE_NO_EXCEPTIONS=no
379 DEFAULT_wxUSE_UNIVERSAL_BINARY=no
380 DEFAULT_wxUSE_RPATH=yes
381 DEFAULT_wxUSE_PERMISSIVE=no
382 DEFAULT_wxUSE_DEBUG_FLAG=yes
383 DEFAULT_wxUSE_DEBUG_INFO=yes
384 DEFAULT_wxUSE_DEBUG_GDB=yes
385 DEFAULT_wxUSE_MEM_TRACING=no
386 DEFAULT_wxUSE_DEBUG_CONTEXT=no
387 DEFAULT_wxUSE_DMALLOC=no
388 DEFAULT_wxUSE_APPLE_IEEE=no
389
390 DEFAULT_wxUSE_EXCEPTIONS=no
391 DEFAULT_wxUSE_LOG=yes
392 DEFAULT_wxUSE_LOGWINDOW=no
393 DEFAULT_wxUSE_LOGGUI=no
394 DEFAULT_wxUSE_LOGDIALOG=no
395
396 DEFAULT_wxUSE_GUI=yes
397 DEFAULT_wxUSE_CONTROLS=no
398
399 DEFAULT_wxUSE_REGEX=no
400 DEFAULT_wxUSE_XML=no
401 DEFAULT_wxUSE_EXPAT=no
402 DEFAULT_wxUSE_ZLIB=no
403 DEFAULT_wxUSE_LIBPNG=no
404 DEFAULT_wxUSE_LIBJPEG=no
405 DEFAULT_wxUSE_LIBTIFF=no
406 DEFAULT_wxUSE_LIBXPM=no
407 DEFAULT_wxUSE_LIBMSPACK=no
408 DEFAULT_wxUSE_LIBSDL=no
409 DEFAULT_wxUSE_LIBGNOMEPRINT=no
410 DEFAULT_wxUSE_LIBGNOMEVFS=no
411 DEFAULT_wxUSE_LIBHILDON=no
412 DEFAULT_wxUSE_ODBC=no
413 DEFAULT_wxUSE_OPENGL=no
414
415 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
416 DEFAULT_wxUSE_STACKWALKER=no
417 DEFAULT_wxUSE_DEBUGREPORT=no
418 DEFAULT_wxUSE_SNGLINST_CHECKER=no
419 DEFAULT_wxUSE_STD_IOSTREAM=no
420 DEFAULT_wxUSE_STD_STRING=no
421 DEFAULT_wxUSE_CMDLINE_PARSER=no
422 DEFAULT_wxUSE_DATETIME=no
423 DEFAULT_wxUSE_TIMER=no
424 DEFAULT_wxUSE_STOPWATCH=no
425 DEFAULT_wxUSE_FILE=no
426 DEFAULT_wxUSE_FFILE=no
427 DEFAULT_wxUSE_STDPATHS=no
428 DEFAULT_wxUSE_TEXTBUFFER=no
429 DEFAULT_wxUSE_TEXTFILE=no
430 DEFAULT_wxUSE_SOUND=no
431 DEFAULT_wxUSE_MEDIACTRL=no
432 DEFAULT_wxUSE_GSTREAMER8=no
433 DEFAULT_wxUSE_PRINTF_POS_PARAMS=no
434 DEFAULT_wxUSE_INTL=no
435 DEFAULT_wxUSE_CONFIG=no
436 DEFAULT_wxUSE_FONTMAP=no
437 DEFAULT_wxUSE_STREAMS=no
438 DEFAULT_wxUSE_SOCKETS=no
439 DEFAULT_wxUSE_OLE=no
440 DEFAULT_wxUSE_DATAOBJ=no
441 DEFAULT_wxUSE_DIALUP_MANAGER=no
442 DEFAULT_wxUSE_JOYSTICK=no
443 DEFAULT_wxUSE_DYNLIB_CLASS=no
444 DEFAULT_wxUSE_DYNAMIC_LOADER=no
445 DEFAULT_wxUSE_LONGLONG=no
446 DEFAULT_wxUSE_GEOMETRY=no
447
448 DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
449 DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
450 DEFAULT_wxUSE_POSTSCRIPT=no
451
452 DEFAULT_wxUSE_CLIPBOARD=no
453 DEFAULT_wxUSE_TOOLTIPS=no
454 DEFAULT_wxUSE_DRAG_AND_DROP=no
455 DEFAULT_wxUSE_DRAGIMAGE=no
456 DEFAULT_wxUSE_SPLINES=no
457 DEFAULT_wxUSE_MOUSEWHEEL=no
458
459 DEFAULT_wxUSE_MDI=no
460 DEFAULT_wxUSE_MDI_ARCHITECTURE=no
461 DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
462 DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
463
464 DEFAULT_wxUSE_RESOURCES=no
465 DEFAULT_wxUSE_CONSTRAINTS=no
466 DEFAULT_wxUSE_IPC=no
467 DEFAULT_wxUSE_HELP=no
468 DEFAULT_wxUSE_MS_HTML_HELP=no
469 DEFAULT_wxUSE_WXHTML_HELP=no
470 DEFAULT_wxUSE_TREELAYOUT=no
471 DEFAULT_wxUSE_METAFILE=no
472 DEFAULT_wxUSE_MIMETYPE=no
473 DEFAULT_wxUSE_SYSTEM_OPTIONS=no
474 DEFAULT_wxUSE_PROTOCOL=no
475 DEFAULT_wxUSE_PROTOCOL_HTTP=no
476 DEFAULT_wxUSE_PROTOCOL_FTP=no
477 DEFAULT_wxUSE_PROTOCOL_FILE=no
478 DEFAULT_wxUSE_URL=no
479 DEFAULT_wxUSE_VARIANT=no
480
481 DEFAULT_wxUSE_COMMONDLGS=no
482 DEFAULT_wxUSE_CHOICEDLG=no
483 DEFAULT_wxUSE_COLOURDLG=no
484 DEFAULT_wxUSE_DIRDLG=no
485 DEFAULT_wxUSE_FILEDLG=no
486 DEFAULT_wxUSE_FINDREPLDLG=no
487 DEFAULT_wxUSE_FONTDLG=no
488 DEFAULT_wxUSE_MSGDLG=no
489 DEFAULT_wxUSE_NUMBERDLG=no
490 DEFAULT_wxUSE_TEXTDLG=no
491 DEFAULT_wxUSE_SPLASH=no
492 DEFAULT_wxUSE_STARTUP_TIPS=no
493 DEFAULT_wxUSE_PROGRESSDLG=no
494 DEFAULT_wxUSE_WIZARDDLG=no
495
496 DEFAULT_wxUSE_MENUS=no
497 DEFAULT_wxUSE_MINIFRAME=no
498 DEFAULT_wxUSE_HTML=no
499 DEFAULT_wxUSE_RICHTEXT=no
500 DEFAULT_wxUSE_XRC=no
501 DEFAULT_wxUSE_AUI=no
502 DEFAULT_wxUSE_WEBKIT=no
503 DEFAULT_wxUSE_FILESYSTEM=no
504 DEFAULT_wxUSE_FS_INET=no
505 DEFAULT_wxUSE_FS_ZIP=no
506 DEFAULT_wxUSE_BUSYINFO=no
507 DEFAULT_wxUSE_ARCHIVE_STREAMS=no
508 DEFAULT_wxUSE_ZIPSTREAM=no
509 DEFAULT_wxUSE_VALIDATORS=no
510
511 DEFAULT_wxUSE_ACCEL=no
512 DEFAULT_wxUSE_BUTTON=no
513 DEFAULT_wxUSE_BMPBUTTON=no
514 DEFAULT_wxUSE_BITMAPCOMBOBOX=no
515 DEFAULT_wxUSE_CALCTRL=no
516 DEFAULT_wxUSE_CARET=no
517 DEFAULT_wxUSE_CHECKBOX=no
518 DEFAULT_wxUSE_CHECKLST=no
519 DEFAULT_wxUSE_CHOICE=no
520 DEFAULT_wxUSE_CHOICEBOOK=no
521 DEFAULT_wxUSE_COLOURPICKERCTRL=no
522 DEFAULT_wxUSE_COMBOBOX=no
523 DEFAULT_wxUSE_COMBOCTRL=no
524 DEFAULT_wxUSE_DATEPICKCTRL=no
525 DEFAULT_wxUSE_DISPLAY=no
526 DEFAULT_wxUSE_DIRPICKERCTRL=no
527 DEFAULT_wxUSE_FILEPICKERCTRL=no
528 DEFAULT_wxUSE_FONTPICKERCTRL=no
529 DEFAULT_wxUSE_GAUGE=no
530 DEFAULT_wxUSE_GRAPHICS_CONTEXT=no
531 DEFAULT_wxUSE_GRID=no
532 DEFAULT_wxUSE_HYPERLINKCTRL=no
533 DEFAULT_wxUSE_DATAVIEWCTRL=no
534 DEFAULT_wxUSE_IMAGLIST=no
535 DEFAULT_wxUSE_LISTBOOK=no
536 DEFAULT_wxUSE_LISTBOX=no
537 DEFAULT_wxUSE_LISTCTRL=no
538 DEFAULT_wxUSE_NOTEBOOK=no
539 DEFAULT_wxUSE_ODCOMBOBOX=no
540 DEFAULT_wxUSE_RADIOBOX=no
541 DEFAULT_wxUSE_RADIOBTN=no
542 DEFAULT_wxUSE_SASH=no
543 DEFAULT_wxUSE_SCROLLBAR=no
544 DEFAULT_wxUSE_SLIDER=no
545 DEFAULT_wxUSE_SPINBTN=no
546 DEFAULT_wxUSE_SPINCTRL=no
547 DEFAULT_wxUSE_SPLITTER=no
548 DEFAULT_wxUSE_STATBMP=no
549 DEFAULT_wxUSE_STATBOX=no
550 DEFAULT_wxUSE_STATLINE=no
551 DEFAULT_wxUSE_STATTEXT=no
552 DEFAULT_wxUSE_STATUSBAR=yes
553 DEFAULT_wxUSE_TAB_DIALOG=no
554 DEFAULT_wxUSE_TEXTCTRL=no
555 DEFAULT_wxUSE_TOGGLEBTN=no
556 DEFAULT_wxUSE_TOOLBAR=no
557 DEFAULT_wxUSE_TOOLBAR_NATIVE=no
558 DEFAULT_wxUSE_TREEBOOK=no
559 DEFAULT_wxUSE_TOOLBOOK=no
560 DEFAULT_wxUSE_TREECTRL=no
561 DEFAULT_wxUSE_POPUPWIN=no
562 DEFAULT_wxUSE_TIPWINDOW=no
563
564 DEFAULT_wxUSE_UNICODE=no
565 DEFAULT_wxUSE_UNICODE_MSLU=no
566 DEFAULT_wxUSE_WCSRTOMBS=no
567
568 DEFAULT_wxUSE_PALETTE=no
569 DEFAULT_wxUSE_IMAGE=no
570 DEFAULT_wxUSE_GIF=no
571 DEFAULT_wxUSE_PCX=no
572 DEFAULT_wxUSE_PNM=no
573 DEFAULT_wxUSE_IFF=no
574 DEFAULT_wxUSE_XPM=no
575 DEFAULT_wxUSE_ICO_CUR=no
576 DEFAULT_wxUSE_ACCESSIBILITY=no
577
578 DEFAULT_wxUSE_MONOLITHIC=no
579 DEFAULT_wxUSE_PLUGINS=no
580 DEFAULT_wxUSE_OFFICIAL_BUILD=no
581 else
582 DEFAULT_wxUSE_UNIVERSAL=no
583 DEFAULT_wxUSE_STL=no
584
585 DEFAULT_wxUSE_NANOX=no
586
587 DEFAULT_wxUSE_THREADS=yes
588
589 DEFAULT_wxUSE_SHARED=${DEFAULT_wxUSE_SHARED:-yes}
590 DEFAULT_wxUSE_OPTIMISE=yes
591 DEFAULT_wxUSE_PROFILE=no
592 DEFAULT_wxUSE_NO_DEPS=no
593 DEFAULT_wxUSE_NO_RTTI=no
594 DEFAULT_wxUSE_NO_EXCEPTIONS=no
595 DEFAULT_wxUSE_UNIVERSAL_BINARY=no
596 DEFAULT_wxUSE_RPATH=yes
597 DEFAULT_wxUSE_PERMISSIVE=no
598 DEFAULT_wxUSE_DEBUG_FLAG=no
599 DEFAULT_wxUSE_DEBUG_INFO=no
600 DEFAULT_wxUSE_DEBUG_GDB=no
601 DEFAULT_wxUSE_MEM_TRACING=no
602 DEFAULT_wxUSE_DEBUG_CONTEXT=no
603 DEFAULT_wxUSE_DMALLOC=no
604 DEFAULT_wxUSE_APPLE_IEEE=yes
605
606 DEFAULT_wxUSE_EXCEPTIONS=yes
607 DEFAULT_wxUSE_LOG=yes
608 DEFAULT_wxUSE_LOGWINDOW=yes
609 DEFAULT_wxUSE_LOGGUI=yes
610 DEFAULT_wxUSE_LOGDIALOG=yes
611
612 DEFAULT_wxUSE_GUI=yes
613
614 DEFAULT_wxUSE_REGEX=yes
615 DEFAULT_wxUSE_XML=yes
616 DEFAULT_wxUSE_EXPAT=yes
617 DEFAULT_wxUSE_ZLIB=yes
618 DEFAULT_wxUSE_LIBPNG=yes
619 DEFAULT_wxUSE_LIBJPEG=yes
620 DEFAULT_wxUSE_LIBTIFF=yes
621 DEFAULT_wxUSE_LIBXPM=yes
622 DEFAULT_wxUSE_LIBMSPACK=yes
623 DEFAULT_wxUSE_LIBSDL=no
624 DEFAULT_wxUSE_LIBGNOMEPRINT=no
625 DEFAULT_wxUSE_LIBGNOMEVFS=no
626 DEFAULT_wxUSE_LIBHILDON=no
627 DEFAULT_wxUSE_ODBC=no
628 DEFAULT_wxUSE_OPENGL=no
629
630 DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
631 DEFAULT_wxUSE_STACKWALKER=yes
632 DEFAULT_wxUSE_DEBUGREPORT=yes
633 DEFAULT_wxUSE_SNGLINST_CHECKER=yes
634 DEFAULT_wxUSE_STD_IOSTREAM=$DEFAULT_STD_FLAG
635 DEFAULT_wxUSE_STD_STRING=$DEFAULT_STD_FLAG
636 DEFAULT_wxUSE_CMDLINE_PARSER=yes
637 DEFAULT_wxUSE_DATETIME=yes
638 DEFAULT_wxUSE_TIMER=yes
639 DEFAULT_wxUSE_STOPWATCH=yes
640 DEFAULT_wxUSE_FILE=yes
641 DEFAULT_wxUSE_FFILE=yes
642 DEFAULT_wxUSE_STDPATHS=yes
643 DEFAULT_wxUSE_TEXTBUFFER=yes
644 DEFAULT_wxUSE_TEXTFILE=yes
645 DEFAULT_wxUSE_SOUND=yes
646 DEFAULT_wxUSE_MEDIACTRL=no
647 DEFAULT_wxUSE_GSTREAMER8=no
648 DEFAULT_wxUSE_PRINTF_POS_PARAMS=yes
649 DEFAULT_wxUSE_INTL=yes
650 DEFAULT_wxUSE_CONFIG=yes
651 DEFAULT_wxUSE_FONTMAP=yes
652 DEFAULT_wxUSE_STREAMS=yes
653 DEFAULT_wxUSE_SOCKETS=yes
654 DEFAULT_wxUSE_OLE=yes
655 DEFAULT_wxUSE_DATAOBJ=yes
656 DEFAULT_wxUSE_DIALUP_MANAGER=yes
657 DEFAULT_wxUSE_JOYSTICK=yes
658 DEFAULT_wxUSE_DYNLIB_CLASS=yes
659 DEFAULT_wxUSE_DYNAMIC_LOADER=yes
660 DEFAULT_wxUSE_LONGLONG=yes
661 DEFAULT_wxUSE_GEOMETRY=yes
662
663 DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
664 DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
665 DEFAULT_wxUSE_POSTSCRIPT=yes
666
667 DEFAULT_wxUSE_CLIPBOARD=yes
668 DEFAULT_wxUSE_TOOLTIPS=yes
669 DEFAULT_wxUSE_DRAG_AND_DROP=yes
670 DEFAULT_wxUSE_DRAGIMAGE=yes
671 DEFAULT_wxUSE_SPLINES=yes
672 DEFAULT_wxUSE_MOUSEWHEEL=yes
673
674 DEFAULT_wxUSE_MDI=yes
675 DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
676 DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
677 DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
678
679 DEFAULT_wxUSE_RESOURCES=no
680 DEFAULT_wxUSE_CONSTRAINTS=yes
681 DEFAULT_wxUSE_IPC=yes
682 DEFAULT_wxUSE_HELP=yes
683 DEFAULT_wxUSE_MS_HTML_HELP=yes
684 DEFAULT_wxUSE_WXHTML_HELP=yes
685 DEFAULT_wxUSE_TREELAYOUT=yes
686 DEFAULT_wxUSE_METAFILE=yes
687 DEFAULT_wxUSE_MIMETYPE=yes
688 DEFAULT_wxUSE_SYSTEM_OPTIONS=yes
689 DEFAULT_wxUSE_PROTOCOL=yes
690 DEFAULT_wxUSE_PROTOCOL_HTTP=yes
691 DEFAULT_wxUSE_PROTOCOL_FTP=yes
692 DEFAULT_wxUSE_PROTOCOL_FILE=yes
693 DEFAULT_wxUSE_URL=yes
694 DEFAULT_wxUSE_VARIANT=yes
695
696 DEFAULT_wxUSE_COMMONDLGS=yes
697 DEFAULT_wxUSE_CHOICEDLG=yes
698 DEFAULT_wxUSE_COLOURDLG=yes
699 DEFAULT_wxUSE_DIRDLG=yes
700 DEFAULT_wxUSE_FILEDLG=yes
701 DEFAULT_wxUSE_FINDREPLDLG=yes
702 DEFAULT_wxUSE_FONTDLG=yes
703 DEFAULT_wxUSE_MSGDLG=yes
704 DEFAULT_wxUSE_NUMBERDLG=yes
705 DEFAULT_wxUSE_TEXTDLG=yes
706 DEFAULT_wxUSE_SPLASH=yes
707 DEFAULT_wxUSE_STARTUP_TIPS=yes
708 DEFAULT_wxUSE_PROGRESSDLG=yes
709 DEFAULT_wxUSE_WIZARDDLG=yes
710
711 DEFAULT_wxUSE_MENUS=yes
712 DEFAULT_wxUSE_MINIFRAME=yes
713 DEFAULT_wxUSE_HTML=yes
714 DEFAULT_wxUSE_RICHTEXT=yes
715 DEFAULT_wxUSE_XRC=yes
716 DEFAULT_wxUSE_AUI=yes
717 DEFAULT_wxUSE_WEBKIT=yes
718 DEFAULT_wxUSE_FILESYSTEM=yes
719 DEFAULT_wxUSE_FS_INET=yes
720 DEFAULT_wxUSE_FS_ZIP=yes
721 DEFAULT_wxUSE_BUSYINFO=yes
722 DEFAULT_wxUSE_ARCHIVE_STREAMS=yes
723 DEFAULT_wxUSE_ZIPSTREAM=yes
724 DEFAULT_wxUSE_VALIDATORS=yes
725
726 DEFAULT_wxUSE_ACCEL=yes
727 DEFAULT_wxUSE_BUTTON=yes
728 DEFAULT_wxUSE_BMPBUTTON=yes
729 DEFAULT_wxUSE_BITMAPCOMBOBOX=yes
730 DEFAULT_wxUSE_CALCTRL=yes
731 DEFAULT_wxUSE_CARET=yes
732 DEFAULT_wxUSE_CHECKBOX=yes
733 DEFAULT_wxUSE_CHECKLST=yes
734 DEFAULT_wxUSE_CHOICE=yes
735 DEFAULT_wxUSE_CHOICEBOOK=yes
736 DEFAULT_wxUSE_COLOURPICKERCTRL=yes
737 DEFAULT_wxUSE_COMBOBOX=yes
738 DEFAULT_wxUSE_COMBOCTRL=yes
739 DEFAULT_wxUSE_DATEPICKCTRL=yes
740 DEFAULT_wxUSE_DISPLAY=yes
741 DEFAULT_wxUSE_DIRPICKERCTRL=yes
742 DEFAULT_wxUSE_FILEPICKERCTRL=yes
743 DEFAULT_wxUSE_FONTPICKERCTRL=yes
744 DEFAULT_wxUSE_GAUGE=yes
745 DEFAULT_wxUSE_GRID=yes
746 DEFAULT_wxUSE_GRAPHICS_CONTEXT=no
747 DEFAULT_wxUSE_HYPERLINKCTRL=yes
748 DEFAULT_wxUSE_DATAVIEWCTRL=no
749 DEFAULT_wxUSE_IMAGLIST=yes
750 DEFAULT_wxUSE_LISTBOOK=yes
751 DEFAULT_wxUSE_LISTBOX=yes
752 DEFAULT_wxUSE_LISTCTRL=yes
753 DEFAULT_wxUSE_NOTEBOOK=yes
754 DEFAULT_wxUSE_ODCOMBOBOX=yes
755 DEFAULT_wxUSE_RADIOBOX=yes
756 DEFAULT_wxUSE_RADIOBTN=yes
757 DEFAULT_wxUSE_SASH=yes
758 DEFAULT_wxUSE_SCROLLBAR=yes
759 DEFAULT_wxUSE_SLIDER=yes
760 DEFAULT_wxUSE_SPINBTN=yes
761 DEFAULT_wxUSE_SPINCTRL=yes
762 DEFAULT_wxUSE_SPLITTER=yes
763 DEFAULT_wxUSE_STATBMP=yes
764 DEFAULT_wxUSE_STATBOX=yes
765 DEFAULT_wxUSE_STATLINE=yes
766 DEFAULT_wxUSE_STATTEXT=yes
767 DEFAULT_wxUSE_STATUSBAR=yes
768 DEFAULT_wxUSE_TAB_DIALOG=no
769 DEFAULT_wxUSE_TEXTCTRL=yes
770 DEFAULT_wxUSE_TOGGLEBTN=yes
771 DEFAULT_wxUSE_TOOLBAR=yes
772 DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
773 DEFAULT_wxUSE_TREEBOOK=yes
774 DEFAULT_wxUSE_TOOLBOOK=yes
775 DEFAULT_wxUSE_TREECTRL=yes
776 DEFAULT_wxUSE_POPUPWIN=yes
777 DEFAULT_wxUSE_TIPWINDOW=yes
778
779 DEFAULT_wxUSE_UNICODE=no
780 DEFAULT_wxUSE_UNICODE_MSLU=yes
781 DEFAULT_wxUSE_WCSRTOMBS=no
782
783 DEFAULT_wxUSE_PALETTE=yes
784 DEFAULT_wxUSE_IMAGE=yes
785 DEFAULT_wxUSE_GIF=yes
786 DEFAULT_wxUSE_PCX=yes
787 DEFAULT_wxUSE_IFF=no
788 DEFAULT_wxUSE_PNM=yes
789 DEFAULT_wxUSE_XPM=yes
790 DEFAULT_wxUSE_ICO_CUR=yes
791 DEFAULT_wxUSE_ACCESSIBILITY=no
792
793 DEFAULT_wxUSE_MONOLITHIC=no
794 DEFAULT_wxUSE_PLUGINS=no
795 DEFAULT_wxUSE_OFFICIAL_BUILD=no
796
797 dnl Applicable only when --with-gtk was used:
798 DEFAULT_wxUSE_GTK2=yes
799 fi
800
801
802 dnl WX_ARG_WITH should be used to select whether an external package will be
803 dnl used or not, to configure compile-time features of this package itself,
804 dnl use WX_ARG_ENABLE instead
805
806 dnl ============================
807 dnl external package dependecies
808 dnl ============================
809
810 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
811 dnl these values manually
812 for toolkit in `echo $ALL_TOOLKITS`; do
813 LINE=`grep "wxUSE_$toolkit=" ${wx_arg_cache_file}`
814 if test "x$LINE" != "x" ; then
815 has_toolkit_in_cache=1
816 eval "DEFAULT_$LINE"
817 eval "CACHE_$toolkit=1"
818
819 LINE=`grep "wx${toolkit}_VERSION=" ${wx_arg_cache_file}`
820 if test "x$LINE" != "x" ; then
821 eval "DEFAULT_$LINE"
822 fi
823 fi
824 done
825
826 dnl ---------------------------------------------------------------------------
827 dnl --disable-gui will build only non-GUI part of wxWidgets: check for this
828 dnl first to disable many other switches if it's given
829 dnl
830 dnl NB: this is still in testing stage, don't use if you don't know what you're
831 dnl doing
832 dnl ---------------------------------------------------------------------------
833
834 WX_ARG_ENABLE(gui, [ --enable-gui use GUI classes], wxUSE_GUI)
835 WX_ARG_ENABLE(monolithic, [ --enable-monolithic build wxWidgets as single library], wxUSE_MONOLITHIC)
836 WX_ARG_ENABLE(plugins, [ --enable-plugins build parts of wxWidgets as loadable components], wxUSE_PLUGINS)
837 WX_ARG_WITH(subdirs, [ --without-subdirs don't generate makefiles for samples/demos/...], wxWITH_SUBDIRS, without)
838
839 if test "$wxUSE_GUI" = "yes"; then
840
841 WX_ARG_ENABLE(universal, [ --enable-universal use wxWidgets GUI controls instead of native ones], wxUSE_UNIVERSAL)
842 AC_ARG_WITH(gtk, [[ --with-gtk[=VERSION] use GTK+, VERSION can be 2 (default), 1 or "any"]], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
843 AC_ARG_WITH(motif, [ --with-motif use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
844 AC_ARG_WITH(mac, [ --with-mac use Mac OS X], [wxUSE_MAC="$withval" CACHE_MAC=1 TOOLKIT_GIVEN=1])
845 AC_ARG_WITH(cocoa, [ --with-cocoa use Cocoa], [wxUSE_COCOA="$withval" CACHE_COCOA=1 TOOLKIT_GIVEN=1])
846 AC_ARG_WITH(wine, [ --with-wine use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
847 AC_ARG_WITH(msw, [ --with-msw use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
848 AC_ARG_WITH(pm, [ --with-pm use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
849 AC_ARG_WITH(mgl, [ --with-mgl use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
850 AC_ARG_WITH(directfb, [ --with-directfb use DirectFB], [wxUSE_DFB="$withval" wxUSE_UNIVERSAL="yes" CACHE_DFB=1 TOOLKIT_GIVEN=1])
851 AC_ARG_WITH(microwin, [ --with-microwin use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
852 AC_ARG_WITH(x11, [ --with-x11 use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
853 WX_ARG_ENABLE(nanox, [ --enable-nanox use NanoX], wxUSE_NANOX)
854
855 AC_ARG_ENABLE(gtk2, [ --disable-gtk2 use GTK+ 1.2 instead of 2.0], [wxUSE_GTK2="$enableval"])
856 WX_ARG_ENABLE(gpe, [ --enable-gpe use GNOME PDA Environment features if possible], wxUSE_GPE)
857
858 WX_ARG_SYS_WITH(libpng, [ --with-libpng use libpng (PNG image format)], wxUSE_LIBPNG)
859 WX_ARG_SYS_WITH(libjpeg, [ --with-libjpeg use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
860 WX_ARG_SYS_WITH(libtiff, [ --with-libtiff use libtiff (TIFF file format)], wxUSE_LIBTIFF)
861 WX_ARG_SYS_WITH(libxpm, [ --with-libxpm use libxpm (XPM file format)], wxUSE_LIBXPM)
862 WX_ARG_WITH(libmspack, [ --with-libmspack use libmspack (CHM help files loading)], wxUSE_LIBMSPACK)
863 WX_ARG_WITH(sdl, [ --with-sdl use SDL for audio on Unix], wxUSE_LIBSDL)
864 WX_ARG_WITH(gnomeprint, [ --with-gnomeprint use GNOME print for printing under GNOME], wxUSE_LIBGNOMEPRINT)
865 WX_ARG_WITH(gnomevfs, [ --with-gnomevfs use GNOME VFS for associating MIME types], wxUSE_LIBGNOMEVFS)
866 WX_ARG_WITH(hildon, [ --with-hildon use Hildon framework for Nokia 770], wxUSE_LIBHILDON)
867 WX_ARG_WITH(opengl, [ --with-opengl use OpenGL (or Mesa)], wxUSE_OPENGL)
868
869 if test "$wxUSE_UNIVERSAL" = "yes"; then
870 AC_ARG_WITH(themes, [ --with-themes=all|list use only the specified comma-separated list of wxUniversal themes], [wxUNIV_THEMES="$withval"])
871 fi
872
873 fi
874 dnl for GUI only
875
876 WX_ARG_WITH(dmalloc, [ --with-dmalloc use dmalloc library (http://dmalloc.com/)], wxUSE_DMALLOC)
877 WX_ARG_SYS_WITH(regex, [ --with-regex enable support for wxRegEx class], wxUSE_REGEX)
878 WX_ARG_SYS_WITH(zlib, [ --with-zlib use zlib for LZW compression], wxUSE_ZLIB)
879 WX_ARG_SYS_WITH(odbc, [ --with-odbc use the IODBC and wxODBC classes], wxUSE_ODBC)
880 WX_ARG_SYS_WITH(expat, [ --with-expat enable XML support using expat parser], wxUSE_EXPAT)
881
882 dnl ---------------------------------------------------------------------------
883 dnl compile options
884 dnl ---------------------------------------------------------------------------
885
886 WX_ARG_ENABLE(shared, [ --enable-shared create shared library code], wxUSE_SHARED)
887 WX_ARG_ENABLE(optimise, [ --enable-optimise create optimised code], wxUSE_OPTIMISE)
888 WX_ARG_ENABLE(debug, [ --enable-debug same as debug_flag and debug_info], wxUSE_DEBUG)
889 WX_ARG_ENABLE(stl, [ --enable-stl use STL for containers], wxUSE_STL)
890 if test "$USE_OS2" = "1"; then
891 DEFAULT_wxUSE_OMF=no
892 WX_ARG_ENABLE(omf, [ --enable-omf use OMF object format], wxUSE_OMF)
893 fi
894
895 if test "$wxUSE_DEBUG" = "yes"; then
896 DEFAULT_wxUSE_DEBUG_FLAG=yes
897 DEFAULT_wxUSE_DEBUG_INFO=yes
898 BUILD=debug
899 elif test "$wxUSE_DEBUG" = "no"; then
900 DEFAULT_wxUSE_DEBUG_FLAG=no
901 DEFAULT_wxUSE_DEBUG_INFO=no
902 BUILD=release
903 fi
904
905 WX_ARG_ENABLE(debug_flag, [ --enable-debug_flag set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
906 WX_ARG_ENABLE(debug_info, [ --enable-debug_info create code with debugging information], wxUSE_DEBUG_INFO)
907 WX_ARG_ENABLE(debug_gdb, [ --enable-debug_gdb create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
908 WX_ARG_ENABLE(debug_cntxt, [ --enable-debug_cntxt use wxDebugContext], wxUSE_DEBUG_CONTEXT)
909 WX_ARG_ENABLE(mem_tracing, [ --enable-mem_tracing create code with memory tracing], wxUSE_MEM_TRACING)
910 WX_ARG_ENABLE(profile, [ --enable-profile create code with profiling information], wxUSE_PROFILE)
911 WX_ARG_ENABLE(no_rtti, [ --enable-no_rtti create code without RTTI information], wxUSE_NO_RTTI)
912 WX_ARG_ENABLE(no_exceptions, [ --enable-no_exceptions create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
913 WX_ARG_ENABLE(permissive, [ --enable-permissive compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
914 WX_ARG_ENABLE(no_deps, [ --enable-no_deps create code without dependency information], wxUSE_NO_DEPS)
915 WX_ARG_ENABLE_PARAM(universal_binary, [[ --enable-universal_binary[=SDK] create Mac PowerPC and Intel Universal binary (not yet working)]], wxUSE_UNIVERSAL_BINARY)
916
917 WX_ARG_ENABLE(compat24, [ --enable-compat24 enable wxWidgets 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, enable)
918 WX_ARG_ENABLE(compat26, [ --disable-compat26 disable wxWidgets 2.6 compatibility], WXWIN_COMPATIBILITY_2_6, disable)
919
920 WX_ARG_ENABLE(rpath, [ --disable-rpath disable use of rpath for uninstalled builds], wxUSE_RPATH)
921
922
923 dnl ---------------------------------------------------------------------------
924 dnl (small) optional non GUI classes
925 dnl ---------------------------------------------------------------------------
926
927 WX_ARG_ENABLE(intl, [ --enable-intl use internationalization system], wxUSE_INTL)
928 WX_ARG_ENABLE(config, [ --enable-config use wxConfig (and derived) classes], wxUSE_CONFIG)
929
930 WX_ARG_ENABLE(protocols, [ --enable-protocols use wxProtocol and derived classes], wxUSE_PROTOCOL)
931 WX_ARG_ENABLE(ftp, [ --enable-ftp use wxFTP (requires wxProtocol], wxUSE_PROTOCOL_FTP)
932 WX_ARG_ENABLE(http, [ --enable-http use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
933 WX_ARG_ENABLE(fileproto, [ --enable-fileproto use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
934 WX_ARG_ENABLE(sockets, [ --enable-sockets use socket/network classes], wxUSE_SOCKETS)
935 WX_ARG_ENABLE(ole, [ --enable-ole use OLE classes (Win32 only)], wxUSE_OLE)
936 WX_ARG_ENABLE(dataobj, [ --enable-dataobj use data object classes], wxUSE_DATAOBJ)
937
938 WX_ARG_ENABLE(ipc, [ --enable-ipc use interprocess communication (wxSocket etc.)], wxUSE_IPC)
939
940 dnl please keep the settings below in alphabetical order
941 WX_ARG_ENABLE(apple_ieee, [ --enable-apple_ieee use the Apple IEEE codec], wxUSE_APPLE_IEEE)
942 WX_ARG_ENABLE(arcstream, [ --enable-arcstream use wxArchive streams], wxUSE_ARCHIVE_STREAMS)
943 WX_ARG_ENABLE(backtrace, [ --enable-backtrace use wxStackWalker class for getting backtraces], wxUSE_STACKWALKER)
944 WX_ARG_ENABLE(catch_segvs, [ --enable-catch_segvs catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
945 WX_ARG_ENABLE(cmdline, [ --enable-cmdline use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
946 WX_ARG_ENABLE(datetime, [ --enable-datetime use wxDateTime class], wxUSE_DATETIME)
947 WX_ARG_ENABLE(debugreport, [ --enable-debugreport use wxDebugReport class], wxUSE_DEBUGREPORT)
948 WX_ARG_ENABLE(dialupman, [ --enable-dialupman use dialup network classes], wxUSE_DIALUP_MANAGER)
949 WX_ARG_ENABLE(dynlib, [ --enable-dynlib use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
950 WX_ARG_ENABLE(dynamicloader, [ --enable-dynamicloader use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER)
951 WX_ARG_ENABLE(exceptions, [ --enable-exceptions build exception-safe library], wxUSE_EXCEPTIONS)
952 WX_ARG_ENABLE(ffile, [ --enable-ffile use wxFFile class], wxUSE_FFILE)
953 WX_ARG_ENABLE(file, [ --enable-file use wxFile class], wxUSE_FILE)
954 WX_ARG_ENABLE(filesystem, [ --enable-filesystem use virtual file systems classes], wxUSE_FILESYSTEM)
955 WX_ARG_ENABLE(fontmap, [ --enable-fontmap use font encodings conversion classes], wxUSE_FONTMAP)
956 WX_ARG_ENABLE(fs_inet, [ --enable-fs_inet use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
957 WX_ARG_ENABLE(fs_zip, [ --enable-fs_zip use virtual ZIP filesystems], wxUSE_FS_ZIP)
958 WX_ARG_ENABLE(geometry, [ --enable-geometry use geometry class], wxUSE_GEOMETRY)
959 WX_ARG_ENABLE(log, [ --enable-log use logging system], wxUSE_LOG)
960 WX_ARG_ENABLE(longlong, [ --enable-longlong use wxLongLong class], wxUSE_LONGLONG)
961 WX_ARG_ENABLE(mimetype, [ --enable-mimetype use wxMimeTypesManager], wxUSE_MIMETYPE)
962 WX_ARG_ENABLE(mslu, [ --enable-mslu use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
963 WX_ARG_ENABLE(snglinst, [ --enable-snglinst use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER)
964 WX_ARG_ENABLE(std_iostreams, [ --enable-std_iostreams use standard C++ stream classes], wxUSE_STD_IOSTREAM)
965 WX_ARG_ENABLE(std_string, [ --enable-std_string use standard C++ string classes], wxUSE_STD_STRING)
966 WX_ARG_ENABLE(stdpaths, [ --enable-stdpaths use wxStandardPaths class], wxUSE_STDPATHS)
967 WX_ARG_ENABLE(stopwatch, [ --enable-stopwatch use wxStopWatch class], wxUSE_STOPWATCH)
968 WX_ARG_ENABLE(streams, [ --enable-streams use wxStream etc classes], wxUSE_STREAMS)
969 WX_ARG_ENABLE(system_options,[ --enable-sysoptions use wxSystemOptions], wxUSE_SYSTEM_OPTIONS)
970 WX_ARG_ENABLE(textbuf, [ --enable-textbuf use wxTextBuffer class], wxUSE_TEXTBUFFER)
971 WX_ARG_ENABLE(textfile, [ --enable-textfile use wxTextFile class], wxUSE_TEXTFILE)
972 WX_ARG_ENABLE(timer, [ --enable-timer use wxTimer class], wxUSE_TIMER)
973 WX_ARG_ENABLE(unicode, [ --enable-unicode compile wxString with Unicode support], wxUSE_UNICODE)
974 WX_ARG_ENABLE(sound, [ --enable-sound use wxSound class], wxUSE_SOUND)
975 WX_ARG_ENABLE(mediactrl, [ --enable-mediactrl use wxMediaCtrl class], wxUSE_MEDIACTRL)
976 WX_ARG_ENABLE(gstreamer8, [ --enable-gstreamer8 force GStreamer 0.8 instead of 0.10 with the wxMediaCtrl class on unix], wxUSE_GSTREAMER8)
977 WX_ARG_ENABLE(printfposparam,[ --enable-printfposparam use wxVsnprintf() which supports positional parameters], wxUSE_PRINTF_POS_PARAMS)
978 WX_ARG_ENABLE(zipstream, [ --enable-zipstream use wxZip streams], wxUSE_ZIPSTREAM)
979
980 WX_ARG_ENABLE(url, [ --enable-url use wxURL class], wxUSE_URL)
981 WX_ARG_ENABLE(variant, [ --enable-variant use wxVariant class], wxUSE_VARIANT)
982 WX_ARG_ENABLE(protocol, [ --enable-protocol use wxProtocol class], wxUSE_PROTOCOL)
983 WX_ARG_ENABLE(protocol_http, [ --enable-protocol-http HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP)
984 WX_ARG_ENABLE(protocol_ftp, [ --enable-protocol-ftp FTP support in wxProtocol], wxUSE_PROTOCOL_FTP)
985 WX_ARG_ENABLE(protocol_file, [ --enable-protocol-file FILE support in wxProtocol], wxUSE_PROTOCOL_FILE)
986
987
988 dnl ---------------------------------------------------------------------------
989 dnl "big" options (i.e. those which change a lot of things throughout the library)
990 dnl ---------------------------------------------------------------------------
991
992 WX_ARG_ENABLE(threads, [ --enable-threads use threads], wxUSE_THREADS)
993
994 if test "$wxUSE_GUI" = "yes"; then
995
996 dnl ---------------------------------------------------------------------------
997 dnl "big" GUI options
998 dnl ---------------------------------------------------------------------------
999
1000 WX_ARG_ENABLE(docview, [ --enable-docview use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
1001 WX_ARG_ENABLE(help, [ --enable-help use help subsystem], wxUSE_HELP)
1002 WX_ARG_ENABLE(mshtmlhelp, [ --enable-mshtmlhelp use MS HTML Help (win32)], wxUSE_MS_HTML_HELP)
1003 WX_ARG_ENABLE(html, [ --enable-html use wxHTML sub-library], wxUSE_HTML)
1004 WX_ARG_ENABLE(htmlhelp, [ --enable-htmlhelp use wxHTML-based help], wxUSE_WXHTML_HELP)
1005 WX_ARG_ENABLE(xrc, [ --enable-xrc use XRC resources sub-library], wxUSE_XRC)
1006 WX_ARG_ENABLE(aui, [ --enable-aui use AUI docking library], wxUSE_AUI)
1007 WX_ARG_ENABLE(constraints, [ --enable-constraints use layout-constraints system], wxUSE_CONSTRAINTS)
1008 WX_ARG_ENABLE(printarch, [ --enable-printarch use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
1009 WX_ARG_ENABLE(mdi, [ --enable-mdi use multiple document interface architecture], wxUSE_MDI)
1010 WX_ARG_ENABLE(mdidoc, [ --enable-mdidoc use docview architecture with MDI], wxUSE_MDI_ARCHITECTURE)
1011 WX_ARG_ENABLE(loggui, [ --enable-loggui use standard GUI logger], wxUSE_LOGGUI)
1012 WX_ARG_ENABLE(logwin, [ --enable-logwin use wxLogWindow], wxUSE_LOGWINDOW)
1013 WX_ARG_ENABLE(logdialog, [ --enable-logdialog use wxLogDialog], wxUSE_LOGDIALOG)
1014 WX_ARG_ENABLE(webkit, [ --enable-webkit use wxWebKitCtrl (Mac)], wxUSE_WEBKIT)
1015 WX_ARG_ENABLE(html, [ --enable-richtext use wxRichTextCtrl], wxUSE_RICHTEXT)
1016 WX_ARG_ENABLE(graphics_ctx, [ --enable-graphics_ctx use graphics context 2D drawing API], wxUSE_GRAPHICS_CONTEXT)
1017
1018 dnl ---------------------------------------------------------------------------
1019 dnl PostScript options
1020 dnl ---------------------------------------------------------------------------
1021 WX_ARG_ENABLE(postscript, [ --enable-postscript use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
1022
1023 dnl VZ: these options seem to be always on, if someone wants to change it please do
1024 dnl WX_ARG_ENABLE(PS-normalized, [ --enable-PS-normalized use normalized PS fonts], dnl wxUSE_NORMALIZED_PS_FONTS)
1025 dnl WX_ARG_ENABLE(afmfonts, [ --enable-afmfonts use Adobe Font Metric Font table], dnl wxUSE_AFM_FOR_POSTSCRIPT)
1026
1027 dnl ---------------------------------------------------------------------------
1028 dnl resources
1029 dnl ---------------------------------------------------------------------------
1030
1031 WX_ARG_ENABLE(prologio, [ --enable-prologio not available; see contrib], wxUSE_PROLOGIO)
1032 WX_ARG_ENABLE(resources, [ --enable-resources not available; see contrib], wxUSE_RESOURCES)
1033
1034 dnl ---------------------------------------------------------------------------
1035 dnl IPC &c
1036 dnl ---------------------------------------------------------------------------
1037
1038 WX_ARG_ENABLE(clipboard, [ --enable-clipboard use wxClipboard class], wxUSE_CLIPBOARD)
1039 WX_ARG_ENABLE(dnd, [ --enable-dnd use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
1040 WX_ARG_ENABLE(metafile, [ --enable-metafile use win32 metafiles], wxUSE_METAFILE)
1041
1042 dnl WX_ARG_ENABLE(treelayout, [ --enable-treelayout use wxTreeLayout class], wxUSE_TREELAYOUT)
1043
1044 dnl ---------------------------------------------------------------------------
1045 dnl optional GUI controls (in alphabetical order except the first one)
1046 dnl ---------------------------------------------------------------------------
1047
1048 WX_ARG_ENABLE(controls, [ --enable-controls use all usual controls], wxUSE_CONTROLS)
1049
1050 dnl even with --enable-controls, some may be disabled by giving
1051 dnl --disable-<control> later on the command line - but by default all will be
1052 dnl used (and vice versa)
1053 if test "$wxUSE_CONTROLS" = "yes"; then
1054 DEFAULT_wxUSE_ACCEL=yes
1055 DEFAULT_wxUSE_BMPBUTTON=yes
1056 DEFAULT_wxUSE_BUTTON=yes
1057 DEFAULT_wxUSE_CALCTRL=yes
1058 DEFAULT_wxUSE_CARET=yes
1059 DEFAULT_wxUSE_COMBOBOX=yes
1060 DEFAULT_wxUSE_CHECKBOX=yes
1061 DEFAULT_wxUSE_CHECKLISTBOX=yes
1062 DEFAULT_wxUSE_CHOICE=yes
1063 DEFAULT_wxUSE_CHOICEBOOK=yes
1064 DEFAULT_wxUSE_COLOURPICKERCTRL=yes
1065 DEFAULT_wxUSE_COMBOBOX=yes
1066 DEFAULT_wxUSE_DATEPICKCTRL=yes
1067 DEFAULT_wxUSE_DISPLAY=yes
1068 DEFAULT_wxUSE_DIRPICKERCTRL=yes
1069 DEFAULT_wxUSE_FILEPICKERCTRL=yes
1070 DEFAULT_wxUSE_FONTPICKERCTRL=yes
1071 DEFAULT_wxUSE_GAUGE=yes
1072 DEFAULT_wxUSE_GRID=yes
1073 DEFAULT_wxUSE_HYPERLINKCTRL=yes
1074 DEFAULT_wxUSE_DATAVIEWCTRL=no
1075 DEFAULT_wxUSE_IMAGLIST=yes
1076 DEFAULT_wxUSE_LISTBOOK=yes
1077 DEFAULT_wxUSE_LISTBOX=yes
1078 DEFAULT_wxUSE_LISTCTRL=yes
1079 DEFAULT_wxUSE_NOTEBOOK=yes
1080 DEFAULT_wxUSE_RADIOBOX=yes
1081 DEFAULT_wxUSE_RADIOBTN=yes
1082 DEFAULT_wxUSE_SASH=yes
1083 DEFAULT_wxUSE_SCROLLBAR=yes
1084 DEFAULT_wxUSE_SLIDER=yes
1085 DEFAULT_wxUSE_SPINBTN=yes
1086 DEFAULT_wxUSE_SPINCTRL=yes
1087 DEFAULT_wxUSE_SPLITTER=yes
1088 DEFAULT_wxUSE_STATBMP=yes
1089 DEFAULT_wxUSE_STATBOX=yes
1090 DEFAULT_wxUSE_STATLINE=yes
1091 DEFAULT_wxUSE_STATUSBAR=yes
1092 DEFAULT_wxUSE_TAB_DIALOG=yes
1093 DEFAULT_wxUSE_TOGGLEBTN=yes
1094 DEFAULT_wxUSE_TOOLBAR=yes
1095 DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
1096 DEFAULT_wxUSE_TOOLTIPS=yes
1097 DEFAULT_wxUSE_TREEBOOK=yes
1098 DEFAULT_wxUSE_TOOLBOOK=yes
1099 DEFAULT_wxUSE_TREECTRL=yes
1100 DEFAULT_wxUSE_POPUPWIN=yes
1101 DEFAULT_wxUSE_TIPWINDOW=yes
1102 elif test "$wxUSE_CONTROLS" = "no"; then
1103 DEFAULT_wxUSE_ACCEL=no
1104 DEFAULT_wxUSE_BMPBUTTON=no
1105 DEFAULT_wxUSE_BUTTON=no
1106 DEFAULT_wxUSE_CALCTRL=no
1107 DEFAULT_wxUSE_CARET=no
1108 DEFAULT_wxUSE_COMBOBOX=no
1109 DEFAULT_wxUSE_CHECKBOX=no
1110 DEFAULT_wxUSE_CHECKLISTBOX=no
1111 DEFAULT_wxUSE_CHOICE=no
1112 DEFAULT_wxUSE_CHOICEBOOK=no
1113 DEFAULT_wxUSE_COLOURPICKERCTRL=no
1114 DEFAULT_wxUSE_COMBOBOX=no
1115 DEFAULT_wxUSE_DATEPICKCTRL=no
1116 DEFAULT_wxUSE_DISPLAY=no
1117 DEFAULT_wxUSE_DIRPICKERCTRL=no
1118 DEFAULT_wxUSE_FILEPICKERCTRL=no
1119 DEFAULT_wxUSE_FONTPICKERCTRL=no
1120 DEFAULT_wxUSE_GAUGE=no
1121 DEFAULT_wxUSE_GRID=no
1122 DEFAULT_wxUSE_HYPERLINKCTRL=no
1123 DEFAULT_wxUSE_DATAVIEWCTRL=no
1124 DEFAULT_wxUSE_IMAGLIST=no
1125 DEFAULT_wxUSE_LISTBOOK=no
1126 DEFAULT_wxUSE_LISTBOX=no
1127 DEFAULT_wxUSE_LISTCTRL=no
1128 DEFAULT_wxUSE_NOTEBOOK=no
1129 DEFAULT_wxUSE_RADIOBOX=no
1130 DEFAULT_wxUSE_RADIOBTN=no
1131 DEFAULT_wxUSE_SASH=no
1132 DEFAULT_wxUSE_SCROLLBAR=no
1133 DEFAULT_wxUSE_SLIDER=no
1134 DEFAULT_wxUSE_SPINBTN=no
1135 DEFAULT_wxUSE_SPINCTRL=no
1136 DEFAULT_wxUSE_SPLITTER=no
1137 DEFAULT_wxUSE_STATBMP=no
1138 DEFAULT_wxUSE_STATBOX=no
1139 DEFAULT_wxUSE_STATLINE=no
1140 DEFAULT_wxUSE_STATUSBAR=no
1141 DEFAULT_wxUSE_TAB_DIALOG=no
1142 DEFAULT_wxUSE_TOGGLEBTN=no
1143 DEFAULT_wxUSE_TOOLBAR=no
1144 DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1145 DEFAULT_wxUSE_TOOLTIPS=no
1146 DEFAULT_wxUSE_TREEBOOK=no
1147 DEFAULT_wxUSE_TOOLBOOK=no
1148 DEFAULT_wxUSE_TREECTRL=no
1149 DEFAULT_wxUSE_POPUPWIN=no
1150 DEFAULT_wxUSE_TIPWINDOW=no
1151 fi
1152
1153 WX_ARG_ENABLE(accel, [ --enable-accel use accelerators], wxUSE_ACCEL)
1154 WX_ARG_ENABLE(button, [ --enable-button use wxButton class], wxUSE_BUTTON)
1155 WX_ARG_ENABLE(bmpbutton, [ --enable-bmpbutton use wxBitmapButton class], wxUSE_BMPBUTTON)
1156 WX_ARG_ENABLE(bmpcombobox, [ --enable-bmpcombobox use wxBitmapComboBox class], wxUSE_BITMAPCOMBOBOX)
1157 WX_ARG_ENABLE(calendar, [ --enable-calendar use wxCalendarCtrl class], wxUSE_CALCTRL)
1158 WX_ARG_ENABLE(caret, [ --enable-caret use wxCaret class], wxUSE_CARET)
1159 WX_ARG_ENABLE(checkbox, [ --enable-checkbox use wxCheckBox class], wxUSE_CHECKBOX)
1160 WX_ARG_ENABLE(checklst, [ --enable-checklst use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
1161 WX_ARG_ENABLE(choice, [ --enable-choice use wxChoice class], wxUSE_CHOICE)
1162 WX_ARG_ENABLE(choicebook, [ --enable-choicebook use wxChoicebook class], wxUSE_CHOICEBOOK)
1163 WX_ARG_ENABLE(colourpicker,[ --enable-colourpicker use wxColourPickerCtrl class], wxUSE_COLOURPICKERCTRL)
1164 WX_ARG_ENABLE(combobox, [ --enable-combobox use wxComboBox class], wxUSE_COMBOBOX)
1165 WX_ARG_ENABLE(comboctrl, [ --enable-comboctrl use wxComboCtrl class], wxUSE_COMBOCTRL)
1166 WX_ARG_ENABLE(datepick, [ --enable-datepick use wxDatePickerCtrl class], wxUSE_DATEPICKCTRL)
1167 WX_ARG_ENABLE(dirpicker, [ --enable-dirpicker use wxDirPickerCtrl class], wxUSE_DIRPICKERCTRL)
1168 WX_ARG_ENABLE(display, [ --enable-display use wxDisplay class], wxUSE_DISPLAY)
1169 WX_ARG_ENABLE(filepicker, [ --enable-filepicker use wxFilePickerCtrl class], wxUSE_FILEPICKERCTRL)
1170 WX_ARG_ENABLE(fontpicker, [ --enable-fontpicker use wxFontPickerCtrl class], wxUSE_FONTPICKERCTRL)
1171 WX_ARG_ENABLE(gauge, [ --enable-gauge use wxGauge class], wxUSE_GAUGE)
1172 WX_ARG_ENABLE(grid, [ --enable-grid use wxGrid class], wxUSE_GRID)
1173 WX_ARG_ENABLE(dataviewctrl,[ --enable-dataviewctrl, use wxDataViewCtrl class], wxUSE_DATAVIEWCTRL)
1174 WX_ARG_ENABLE(hyperlink, [ --enable-hyperlink use wxHyperlinkCtrl class], wxUSE_HYPERLINKCTRL)
1175 WX_ARG_ENABLE(imaglist, [ --enable-imaglist use wxImageList class], wxUSE_IMAGLIST)
1176 WX_ARG_ENABLE(listbook, [ --enable-listbook use wxListbook class], wxUSE_LISTBOOK)
1177 WX_ARG_ENABLE(listbox, [ --enable-listbox use wxListBox class], wxUSE_LISTBOX)
1178 WX_ARG_ENABLE(listctrl, [ --enable-listctrl use wxListCtrl class], wxUSE_LISTCTRL)
1179 WX_ARG_ENABLE(notebook, [ --enable-notebook use wxNotebook class], wxUSE_NOTEBOOK)
1180 WX_ARG_ENABLE(odcombobox, [ --enable-odcombobox use wxOwnerDrawnComboBox class], wxUSE_ODCOMBOBOX)
1181 WX_ARG_ENABLE(radiobox, [ --enable-radiobox use wxRadioBox class], wxUSE_RADIOBOX)
1182 WX_ARG_ENABLE(radiobtn, [ --enable-radiobtn use wxRadioButton class], wxUSE_RADIOBTN)
1183 WX_ARG_ENABLE(sash, [ --enable-sash use wxSashWindow class], wxUSE_SASH)
1184 WX_ARG_ENABLE(scrollbar, [ --enable-scrollbar use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
1185 WX_ARG_ENABLE(slider, [ --enable-slider use wxSlider class], wxUSE_SLIDER)
1186 WX_ARG_ENABLE(spinbtn, [ --enable-spinbtn use wxSpinButton class], wxUSE_SPINBTN)
1187 WX_ARG_ENABLE(spinctrl, [ --enable-spinctrl use wxSpinCtrl class], wxUSE_SPINCTRL)
1188 WX_ARG_ENABLE(splitter, [ --enable-splitter use wxSplitterWindow class], wxUSE_SPLITTER)
1189 WX_ARG_ENABLE(statbmp, [ --enable-statbmp use wxStaticBitmap class], wxUSE_STATBMP)
1190 WX_ARG_ENABLE(statbox, [ --enable-statbox use wxStaticBox class], wxUSE_STATBOX)
1191 WX_ARG_ENABLE(statline, [ --enable-statline use wxStaticLine class], wxUSE_STATLINE)
1192 WX_ARG_ENABLE(stattext, [ --enable-stattext use wxStaticText class], wxUSE_STATTEXT)
1193 WX_ARG_ENABLE(statusbar, [ --enable-statusbar use wxStatusBar class], wxUSE_STATUSBAR)
1194 WX_ARG_ENABLE(tabdialog, [ --enable-tabdialog use wxTabControl class], wxUSE_TAB_DIALOG)
1195 WX_ARG_ENABLE(textctrl, [ --enable-textctrl use wxTextCtrl class], wxUSE_TEXTCTRL)
1196 WX_ARG_ENABLE(togglebtn, [ --enable-togglebtn use wxToggleButton class], wxUSE_TOGGLEBTN)
1197 WX_ARG_ENABLE(toolbar, [ --enable-toolbar use wxToolBar class], wxUSE_TOOLBAR)
1198 WX_ARG_ENABLE(tbarnative, [ --enable-tbarnative use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
1199 WX_ARG_ENABLE(treebook, [ --enable-treebook use wxTreebook class], wxUSE_TREEBOOK)
1200 WX_ARG_ENABLE(toolbook, [ --enable-toolbook use wxToolbook class], wxUSE_TOOLBOOK)
1201 WX_ARG_ENABLE(treectrl, [ --enable-treectrl use wxTreeCtrl class], wxUSE_TREECTRL)
1202 WX_ARG_ENABLE(tipwindow, [ --enable-tipwindow use wxTipWindow class], wxUSE_TIPWINDOW)
1203 WX_ARG_ENABLE(popupwin, [ --enable-popupwin use wxPopUpWindow class], wxUSE_POPUPWIN)
1204
1205 dnl ---------------------------------------------------------------------------
1206 dnl common dialogs
1207 dnl ---------------------------------------------------------------------------
1208
1209 WX_ARG_ENABLE(commondlg, [ --enable-commondlg use all common dialogs], wxUSE_COMMONDLGS)
1210 WX_ARG_ENABLE(choicedlg, [ --enable-choicedlg use wxChoiceDialog], wxUSE_CHOICEDLG)
1211 WX_ARG_ENABLE(coldlg, [ --enable-coldlg use wxColourDialog], wxUSE_COLOURDLG)
1212 WX_ARG_ENABLE(filedlg, [ --enable-filedlg use wxFileDialog], wxUSE_FILEDLG)
1213 WX_ARG_ENABLE(finddlg, [ --enable-finddlg use wxFindReplaceDialog], wxUSE_FINDREPLDLG)
1214 WX_ARG_ENABLE(fontdlg, [ --enable-fontdlg use wxFontDialog], wxUSE_FONTDLG)
1215 WX_ARG_ENABLE(dirdlg, [ --enable-dirdlg use wxDirDialog], wxUSE_DIRDLG)
1216 WX_ARG_ENABLE(msgdlg, [ --enable-msgdlg use wxMessageDialog], wxUSE_MSGDLG)
1217 WX_ARG_ENABLE(numberdlg, [ --enable-numberdlg use wxNumberEntryDialog], wxUSE_NUMBERDLG)
1218 WX_ARG_ENABLE(splash, [ --enable-splash use wxSplashScreen], wxUSE_SPLASH)
1219 WX_ARG_ENABLE(textdlg, [ --enable-textdlg use wxTextDialog], wxUSE_TEXTDLG)
1220 WX_ARG_ENABLE(tipdlg, [ --enable-tipdlg use startup tips], wxUSE_STARTUP_TIPS)
1221 WX_ARG_ENABLE(progressdlg, [ --enable-progressdlg use wxProgressDialog], wxUSE_PROGRESSDLG)
1222 WX_ARG_ENABLE(wizarddlg, [ --enable-wizarddlg use wxWizard], wxUSE_WIZARDDLG)
1223
1224 dnl ---------------------------------------------------------------------------
1225 dnl misc GUI options
1226 dnl ---------------------------------------------------------------------------
1227
1228 WX_ARG_ENABLE(menus, [ --enable-menus use wxMenu/wxMenuBar/wxMenuItem classes], wxUSE_MENUS)
1229 WX_ARG_ENABLE(miniframe, [ --enable-miniframe use wxMiniFrame class], wxUSE_MINIFRAME)
1230 WX_ARG_ENABLE(tooltips, [ --enable-tooltips use wxToolTip class], wxUSE_TOOLTIPS)
1231 WX_ARG_ENABLE(splines, [ --enable-splines use spline drawing code], wxUSE_SPLINES)
1232 WX_ARG_ENABLE(mousewheel, [ --enable-mousewheel use mousewheel], wxUSE_MOUSEWHEEL)
1233 WX_ARG_ENABLE(validators, [ --enable-validators use wxValidator and derived classes], wxUSE_VALIDATORS)
1234 WX_ARG_ENABLE(busyinfo, [ --enable-busyinfo use wxBusyInfo], wxUSE_BUSYINFO)
1235 WX_ARG_ENABLE(joystick, [ --enable-joystick use wxJoystick], wxUSE_JOYSTICK)
1236 WX_ARG_ENABLE(metafile, [ --enable-metafiles use wxMetaFile (Win32 only)], wxUSE_METAFILE)
1237 WX_ARG_ENABLE(dragimage, [ --enable-dragimage use wxDragImage], wxUSE_DRAGIMAGE)
1238 WX_ARG_ENABLE(accessibility,[ --enable-accessibility enable accessibility support], wxUSE_ACCESSIBILITY)
1239
1240 if test "$wxUSE_MSW" = "1"; then
1241 WX_ARG_ENABLE(dccache, [ --enable-dccache cache temporary wxDC objects (Win32 only)], wxUSE_DC_CACHEING)
1242 fi
1243
1244 dnl ---------------------------------------------------------------------------
1245 dnl support for image formats that do not rely on external library
1246 dnl ---------------------------------------------------------------------------
1247
1248 WX_ARG_ENABLE(palette, [ --enable-palette use wxPalette class], wxUSE_PALETTE)
1249 WX_ARG_ENABLE(image, [ --enable-image use wxImage class], wxUSE_IMAGE)
1250 WX_ARG_ENABLE(gif, [ --enable-gif use gif images (GIF file format)], wxUSE_GIF)
1251 WX_ARG_ENABLE(pcx, [ --enable-pcx use pcx images (PCX file format)], wxUSE_PCX)
1252 WX_ARG_ENABLE(iff, [ --enable-iff use iff images (IFF file format)], wxUSE_IFF)
1253 WX_ARG_ENABLE(pnm, [ --enable-pnm use pnm images (PNM file format)], wxUSE_PNM)
1254 WX_ARG_ENABLE(xpm, [ --enable-xpm use xpm images (XPM file format)], wxUSE_XPM)
1255 WX_ARG_ENABLE(ico_cur, [ --enable-icocur use Windows ICO and CUR formats], wxUSE_ICO_CUR)
1256
1257 fi
1258
1259 dnl ---------------------------------------------------------------------------
1260 dnl flavour support
1261 dnl ---------------------------------------------------------------------------
1262
1263 dnl Should this be --enable? I flip-flopped a couple of times and this seems
1264 dnl in the spirit if not the letter, we have gtk-prefix and the like in this group.
1265 dnl It doesn't actually change anything but the output file names.
1266 AC_ARG_WITH(flavour, [ --with-flavour=NAME specify a name to identify this build], [WX_FLAVOUR="$withval"])
1267
1268 dnl ---------------------------------------------------------------------------
1269 dnl some win32 settings
1270 dnl ---------------------------------------------------------------------------
1271
1272 WX_ARG_ENABLE(official_build, [ --enable-official_build official build of wxWidgets (win32 DLL only)], wxUSE_OFFICIAL_BUILD)
1273 AC_ARG_ENABLE(vendor, [ --enable-vendor=VENDOR vendor name (win32 DLL only)], [VENDOR="$enableval"])
1274 if test "x$VENDOR" = "x"; then
1275 VENDOR="custom"
1276 fi
1277
1278
1279 dnl for GUI only
1280
1281 dnl cache the options values before (may be) aborting below
1282 WX_ARG_CACHE_FLUSH
1283
1284 dnl check that no more than one toolkit is given and that if none are given that
1285 dnl we have a default one
1286
1287 AC_MSG_CHECKING(for toolkit)
1288
1289 # In Wine, we need to default to MSW, not GTK or MOTIF
1290 if test "$wxUSE_WINE" = "yes"; then
1291 DEFAULT_DEFAULT_wxUSE_GTK=0
1292 DEFAULT_DEFAULT_wxUSE_MOTIF=0
1293 DEFAULT_DEFAULT_wxUSE_MSW=1
1294 wxUSE_SHARED=no
1295 fi
1296
1297
1298 if test "$wxUSE_GUI" = "yes"; then
1299
1300 if test "$USE_BEOS" = 1; then
1301 AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
1302 fi
1303
1304 if test "$TOOLKIT_GIVEN" = 1; then
1305 dnl convert "yes", "any" or a number to 1 and "no" to 0
1306 for toolkit in `echo $ALL_TOOLKITS`; do
1307 var=wxUSE_$toolkit
1308 eval "value=\$${var}"
1309 if test "x$value" = "xno"; then
1310 eval "$var=0"
1311 elif test "x$value" != "x"; then
1312 eval "$var=1"
1313 fi
1314
1315 if test "x$value" != "x" -a "x$value" != "xyes" -a "x$value" != "xno"; then
1316 eval "wx${toolkit}_VERSION=$value"
1317 fi
1318 done
1319 else
1320 dnl try to guess the most apropriate toolkit for this platform
1321 for toolkit in `echo $ALL_TOOLKITS`; do
1322 if test "$has_toolkit_in_cache" != 1; then
1323 var=DEFAULT_DEFAULT_wxUSE_$toolkit
1324 else
1325 var=DEFAULT_wxUSE_$toolkit
1326
1327 eval "version=\$DEFAULT_wx${toolkit}_VERSION"
1328 if test "x$version" != "x"; then
1329 eval "wx${toolkit}_VERSION=$version"
1330 fi
1331 fi
1332 eval "wxUSE_$toolkit=\$${var}"
1333 done
1334 fi
1335
1336 dnl we suppose that expr is available (maybe there is a better way to do
1337 dnl this? what about using ALL_TOOLKITS? TODO)
1338 NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
1339 + ${wxUSE_MGL:-0} + ${wxUSE_DFB:-0} + ${wxUSE_MICROWIN:-0} \
1340 + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
1341
1342 dnl Allow wxUSE_PM only for OS/2 with EMX.
1343 case "${host}" in
1344 *-pc-os2_emx | *-pc-os2-emx )
1345 NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
1346 esac
1347
1348 case "$NUM_TOOLKITS" in
1349 1)
1350 ;;
1351 0)
1352 AC_MSG_ERROR(Please specify a toolkit -- cannot determine the default for ${host})
1353 ;;
1354 *)
1355 AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
1356 esac
1357
1358 # to be removed when --disable-gtk2 isn't needed
1359 if test "x$wxUSE_GTK2" = "xyes"; then
1360 wxGTK_VERSION=2
1361 elif test "x$wxUSE_GTK2" = "xno"; then
1362 wxGTK_VERSION=1
1363 fi
1364
1365 dnl cache the wxUSE_<TOOLKIT> values too
1366 for toolkit in `echo $ALL_TOOLKITS`; do
1367 var=wxUSE_$toolkit
1368 eval "value=\$${var}"
1369 if test "x$value" != x; then
1370 cache_var=CACHE_$toolkit
1371 eval "cache=\$${cache_var}"
1372 if test "$cache" = 1; then
1373 echo "$var=$value" >> ${wx_arg_cache_file}
1374 eval "version=\$wx${toolkit}_VERSION"
1375 if test "x$version" != "x"; then
1376 echo "wx${toolkit}_VERSION=$version" >> ${wx_arg_cache_file}
1377 fi
1378 fi
1379 if test "$value" = 1; then
1380 toolkit_echo=`echo $toolkit | tr "[[A-Z]]" "[[a-z]]"`
1381 AC_MSG_RESULT($toolkit_echo)
1382 fi
1383 fi
1384 done
1385 else
1386 if test "x$host_alias" != "x"; then
1387 AC_MSG_RESULT(base ($host_alias hosted) only)
1388 else
1389 AC_MSG_RESULT(base only)
1390 fi
1391 fi
1392
1393 dnl ---------------------------------------------------------------------------
1394 dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
1395 dnl 'just' a POSIX platform, so the Win32 API must not be available
1396 dnl ---------------------------------------------------------------------------
1397 dnl (Windows-only piece)
1398 wants_win32=0
1399 doesnt_want_win32=0
1400 case "${host}" in
1401 *-*-cygwin*)
1402 if test "$wxUSE_MSW" = 1 ; then
1403 wants_win32=1
1404 BAKEFILE_FORCE_PLATFORM=win32
1405 else
1406 doesnt_want_win32=1
1407 fi
1408 ;;
1409 *-*-mingw*)
1410 wants_win32=1
1411 ;;
1412 esac
1413
1414 dnl ---------------------------------------------------------------------------
1415 dnl Wine is a virtual platform, we need to patch things up a bit
1416 dnl ---------------------------------------------------------------------------
1417 if test "$wxUSE_WINE" = "yes"; then
1418 wants_win32=1
1419 dnl FIXME: we should do a better job of testing for these
1420 CC=winegcc
1421 CXX=wineg++
1422 LDFLAGS_GUI="-mwindows"
1423 fi
1424
1425 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
1426 dnl take effect on Cygwin/Mingw and not other platforms.
1427 if test "$wants_win32" = 1 ; then
1428 USE_UNIX=0
1429 USE_WIN32=1
1430 AC_DEFINE(__WIN32__)
1431 AC_DEFINE(__WIN95__)
1432 AC_DEFINE(__WINDOWS__)
1433 AC_DEFINE(__GNUWIN32__)
1434 AC_DEFINE(STRICT)
1435 AC_DEFINE(WINVER, 0x0400)
1436 fi
1437 if test "$doesnt_want_win32" = 1 ; then
1438 USE_UNIX=1
1439 USE_WIN32=0
1440 fi
1441 dnl (end of Windows-only piece)
1442
1443 if test "$USE_UNIX" = 1 ; then
1444 wxUSE_UNIX=yes
1445 AC_DEFINE(__UNIX__)
1446 fi
1447
1448 dnl ---------------------------------------------------------------------------
1449 dnl Checks for programs
1450 dnl ---------------------------------------------------------------------------
1451
1452 dnl flush the cache because checking for programs might abort
1453 AC_CACHE_SAVE
1454
1455 dnl C-compiler checks
1456 dnl defines CC with the compiler to use
1457 dnl defines GCC with yes if using gcc
1458 dnl defines GCC empty if not using gcc
1459 dnl defines CFLAGS
1460 dnl
1461 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
1462 dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
1463 dnl -g and -O flags ourselves below
1464 CFLAGS=${CFLAGS:=}
1465 AC_BAKEFILE_PROG_CC
1466
1467 dnl is -traditional needed for correct compilations
1468 dnl adds -traditional for gcc if needed
1469 AC_PROG_GCC_TRADITIONAL
1470
1471 dnl do all checks from now on using the C++ compiler: this saves us a lot of
1472 dnl problems with various functions which may be available in libc but not
1473 dnl declared in the header and various pointer conversions which compile with
1474 dnl the C compiler but not in C++
1475 AC_LANG_PUSH(C++)
1476
1477 dnl C++-compiler checks
1478 dnl defines CXX with the compiler to use
1479 dnl defines GXX with yes if using gxx
1480 dnl defines GXX empty if not using gxx
1481 dnl defines CXXFLAGS
1482 dnl
1483 dnl see CFLAGS line above
1484 CXXFLAGS=${CXXFLAGS:=}
1485 AC_BAKEFILE_PROG_CXX
1486
1487 dnl ranlib command
1488 dnl defines RANLIB with the appropriate command
1489 AC_PROG_RANLIB
1490
1491 dnl ar command
1492 dnl defines AR with the appropriate command
1493 AC_CHECK_TOOL(AR, ar)
1494 if test "x$AR" = "x" ; then
1495 AC_MSG_ERROR([ar is needed to build wxWidgets])
1496 fi
1497
1498 dnl install checks
1499 dnl defines INSTALL with the appropriate command
1500 AC_PROG_INSTALL
1501
1502 dnl make install path absolute (if not already);
1503 dnl will fail with (some) MSDOS paths
1504 case ${INSTALL} in
1505 /* ) # Absolute
1506 ;;
1507 ?:* ) # Drive letter, considered as absolute.
1508 ;;
1509 *)
1510 INSTALL=`pwd`/${INSTALL} ;;
1511 esac
1512
1513
1514 case "${host}" in
1515
1516 dnl The other BSD's should probably go in here too, since this is
1517 dnl to workaround a strange static lib BSDism.
1518 dnl Mac OS X install seems to ignore -p option...
1519 *-*-darwin* )
1520 INSTALL_PROGRAM="cp -fp"
1521 INSTALL_DATA="cp -fp"
1522 ;;
1523 *)
1524 ;;
1525 esac
1526
1527 dnl strip command
1528 dnl defines STRIP as strip or nothing (true) if not found
1529 AC_CHECK_TOOL(STRIP, strip, true)
1530
1531 dnl Win32 tools
1532 if test "$wxUSE_WINE" = "yes"; then
1533 AC_CHECK_TOOL(WINDRES, wrc)
1534 RESCOMP="$WINDRES"
1535 else
1536 case "${host}" in
1537 *-*-cygwin* | *-*-mingw32* )
1538 dnl Bakefile CVS (as of 2005-11-24) now detects windres properly
1539 dnl ... maybe it does, but it does not make it available here
1540 dnl anymore, so do it ourselves still.
1541 AC_CHECK_TOOL(WINDRES, windres)
1542 RESCOMP="$WINDRES"
1543 AC_CHECK_TOOL(DLLTOOL, dlltool)
1544 ;;
1545 esac
1546 fi
1547
1548 dnl does make support "-include" (only GNU make does AFAIK)?
1549 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
1550 [
1551 if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
1552 egrep -s GNU > /dev/null); then
1553 wx_cv_prog_makeisgnu="yes"
1554 else
1555 wx_cv_prog_makeisgnu="no"
1556 fi
1557 ])
1558
1559 if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
1560 IF_GNU_MAKE=""
1561 else
1562 IF_GNU_MAKE="#"
1563 fi
1564
1565 AC_SUBST(IF_GNU_MAKE)
1566
1567 dnl we don't need to check for VPATH support in GNU make - it does have it
1568 if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
1569 dnl check if VPATH works
1570 AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [
1571 dnl create Makefile
1572 cat - << EOF > confMake
1573 check : file
1574 cp \$? \$@
1575 cp \$? final_file
1576 EOF
1577
1578 if test ! -d sub ; then
1579 mkdir sub
1580 fi
1581 echo dummy > sub/file
1582 ${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null
1583 RESULT=$?
1584 rm -f sub/file check final_file confMake
1585 rmdir sub
1586 if test "$RESULT" = 0; then
1587 wx_cv_prog_makevpath="yes"
1588 else
1589 wx_cv_prog_makevpath="no"
1590 fi
1591 ])
1592
1593 if test "x$wx_cv_prog_makevpath" != "xyes"; then
1594 AC_MSG_ERROR([
1595 You need a make-utility that is able to use the variable
1596 VPATH correctly.
1597 If your version of make does not support VPATH correctly,
1598 please install GNU-make (possibly as gmake), and start
1599 configure with the following command:
1600 export MAKE=gmake; ./configure for sh-type shells
1601 setenv MAKE gmake; ./configure for csh-type shells
1602 Also please do remember to use gmake in this case every time
1603 you are trying to compile.
1604 ])
1605 fi dnl make without VPATH
1606 fi dnl not GNU make
1607
1608 dnl needed for making link to setup.h
1609 AC_PROG_LN_S
1610
1611
1612 dnl ------------------------------------------------------------------------
1613 dnl Platform specific tests
1614 dnl ------------------------------------------------------------------------
1615
1616 dnl xlC needs -qunique under AIX so that one source file can be
1617 dnl compiled to multiple object files and safely linked together.
1618 if test "x$XLCXX" = "xyes" -a "x$USE_AIX" = "x1"; then
1619 CXXFLAGS="-qunique $CXXFLAGS"
1620 fi
1621
1622 dnl This case is for PowerPC OS X vs. everything else
1623 case "${host}" in
1624 powerpc-*-darwin* )
1625 AC_MSG_CHECKING([if __POWERPC__ is already defined])
1626 AC_TRY_COMPILE([],[#ifndef __POWERPC__
1627 choke me for lack of PowerPC
1628 #endif
1629 ],
1630 [AC_MSG_RESULT([yes])],
1631 [AC_MSG_RESULT([no])
1632 AC_DEFINE(__POWERPC__)
1633 ])
1634 ;;
1635 esac
1636
1637 dnl This case is for OS X vs. everything else
1638 case "${host}" in
1639 *-*-darwin* )
1640 AC_MSG_CHECKING([if CoreFoundation/CFBase.h is usable])
1641 AC_TRY_COMPILE([#include <CoreFoundation/CFBase.h>
1642 ],[],
1643 [AC_MSG_RESULT([yes])],
1644 [AC_MSG_RESULT([no])
1645 AC_MSG_CHECKING([if __CF_USE_FRAMEWORK_INCLUDES__ is required])
1646 AC_TRY_COMPILE([#define __CF_USE_FRAMEWORK_INCLUDES__
1647 #include <CoreFoundation/CFBase.h>
1648 ],[],
1649 [AC_MSG_RESULT([yes])
1650 dnl We must use -D so source files that don't include wx/setup.h
1651 dnl but do include CFBase will work.
1652 CPPFLAGS="-D__CF_USE_FRAMEWORK_INCLUDES__ $CPPFLAGS"],
1653 [AC_MSG_FAILURE([no. CoreFoundation not available.])]
1654 )
1655 ]
1656 )
1657 ;;
1658 esac
1659
1660 dnl This case is for OS/2 vs. everything else
1661 case "${host}" in
1662 *-pc-os2_emx | *-pc-os2-emx )
1663 dnl ---------------------------------------------------------------------
1664 dnl When we are using gcc on OS/2, we want to be either using resources
1665 dnl (PM) or a more complete POSIX emulation for Motif/GTK+/X11.
1666 dnl Moreover we need to link explicitly against either stdcpp.a or
1667 dnl stdcxx.a (depending on compiler version), since we are using "gcc",
1668 dnl not "g++/c++".
1669 dnl ---------------------------------------------------------------------
1670 dnl (OS/2-only piece)
1671 AC_LANG_PUSH(C)
1672 if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
1673 dnl More complete Unix emulation for unix-like ports
1674 dnl by linking in POSIX/2's cExt (if available).
1675 AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
1676 else
1677 dnl Include resources for the "native" port (wxPM).
1678 RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
1679 fi
1680 dnl Check for the gcc version (and thereby for the C runtime library).
1681 dnl wx_cv_gccversion = EMX2 -> Standard EMX environment
1682 dnl wx_cv_gccversion = EMX3 -> EMX with gcc-3.0.3 or gcc-3.2.1
1683 dnl wx_cv_gccversion = Innotek5 -> gcc-3.2.2 with Innotek libc5
1684 dnl wx_cv_gccversion = Innotek6 -> gcc-3.3.5 with Innotek libc6.
1685 AC_CACHE_CHECK([for gcc/libc version], wx_cv_gccversion,[
1686 AC_TRY_RUN(
1687 dnl Check the gcc version macro.
1688 [
1689 #include <stdio.h>
1690
1691 int main()
1692 {
1693 FILE *f=fopen("conftestval", "w");
1694 if (!f) exit(1);
1695 fprintf(f,
1696 #if (__GNUC__ < 3)
1697 "EMX2"
1698 #elif (__GNUC__==3) && ((__GNUC_MINOR__ < 2) || ((__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__<2)))
1699 "EMX3"
1700 #elif (__GNUC__==3) && (__GNUC_MINOR__==2) && (__GNUC_PATCHLEVEL__==2)
1701 "Innotek5"
1702 #else
1703 "Innotek6"
1704 #endif
1705 );
1706 exit(0);
1707 }
1708 ],
1709 wx_cv_gccversion=`cat conftestval`,
1710 wx_cv_gccversion="EMX2",
1711 dnl Compilation error: Assuming standard EMX environment
1712 wx_cv_gccversion="EMX2"
1713 )
1714 ])
1715 AC_LANG_POP
1716 if test "$wx_cv_gccversion" = "EMX2"; then
1717 LIBS="$LIBS -lstdcpp"
1718 LDFLAGS="$LDFLAGS -Zsysv-signals"
1719 else
1720 if test "$wx_cv_gccversion" = "EMX3"; then
1721 LIBS="$LIBS -lstdcxx -lgcc"
1722 LDFLAGS="$LDFLAGS -Zsysv-signals"
1723 else
1724 LIBS="$LIBS -lstdc++"
1725 fi
1726 fi
1727 if test "$wxUSE_SHARED" = "yes" -a "$wxUSE_OMF" = "no"; then
1728 AC_MSG_WARN([Building DLLs requires OMF mode, enabled])
1729 wxUSE_OMF=yes
1730 enable_omf=yes
1731 fi
1732 dnl (end of OS/2-only piece)
1733 ;;
1734 *)
1735 dnl ---------------------------------------------------------------------
1736 dnl look for strcasecmp() in string.h and then strings.h if it's not
1737 dnl there. Don't do this on OS/2, where "stricmp" is the function to be
1738 dnl used.
1739 dnl ---------------------------------------------------------------------
1740 dnl (non-OS/2-only piece)
1741
1742 AC_CACHE_CHECK([for strcasecmp() in string.h], ac_cv_string_strcasecmp, [
1743 AC_TRY_LINK([
1744 #include <string.h>
1745 ],
1746 [
1747 strcasecmp("foo", "bar");
1748 ],
1749 ac_cv_string_strcasecmp=yes,
1750 ac_cv_string_strcasecmp=no
1751 )
1752 ])
1753
1754 if test x"$ac_cv_string_strcasecmp" = "xyes"; then
1755 AC_DEFINE(HAVE_STRCASECMP_IN_STRING_H)
1756 else
1757 AC_CACHE_CHECK([for strcasecmp() in strings.h], ac_cv_strings_strcasecmp, [
1758 AC_TRY_LINK([
1759 #include <strings.h>
1760 ],
1761 [
1762 strcasecmp("foo", "bar");
1763 ],
1764 ac_cv_strings_strcasecmp=yes,
1765 ac_cv_strings_strcasecmp=no
1766 )
1767 ])
1768
1769 if test x"$ac_cv_strings_strcasecmp" = "xyes"; then
1770 AC_DEFINE(HAVE_STRCASECMP_IN_STRINGS_H)
1771 else
1772 AC_MSG_ERROR([No case-insensitive string comparison function found.])
1773 fi
1774 fi
1775
1776 dnl (end of non-OS/2-only piece)
1777 ;;
1778 esac
1779
1780 dnl ------------------------------------------------------------------------
1781 dnl Check for headers
1782 dnl ------------------------------------------------------------------------
1783
1784 dnl defines HAVE_STDLIB_H
1785 AC_CHECK_HEADERS(stdlib.h)
1786 dnl defines HAVE_MALLOC_H
1787 AC_CHECK_HEADERS(malloc.h)
1788 dnl defines HAVE_UNISTD_H
1789 AC_CHECK_HEADERS(unistd.h)
1790 dnl defines HAVE_WCHAR_H
1791 AC_CHECK_HEADERS(wchar.h)
1792
1793 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
1794 if test "$ac_cv_header_wchar_h" != "yes"; then
1795 dnl defines HAVE_WCSTR_H
1796 AC_CHECK_HEADERS(wcstr.h)
1797 fi
1798
1799 dnl defines HAVE_FNMATCH_H
1800 AC_CHECK_HEADERS(fnmatch.h)
1801
1802 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
1803 AC_CHECK_HEADERS(langinfo.h)
1804
1805 case "${host}" in
1806 *-pc-os2_emx | *-pc-os2-emx )
1807 dnl Explicitly link -lintl if langinfo.h is available
1808 dnl and intl not yet included in libc
1809 if test $ac_cv_header_langinfo_h = "yes" \
1810 -a \( "$wx_cv_gccversion" = "EMX2" \
1811 -o "$wx_cv_gccversion" = "EMX3" \
1812 -o "$wx_cv_gccversion" = "Innotek5" \); then
1813 LIBS="$LIBS -lintl"
1814 fi
1815 ;;
1816 esac
1817
1818 dnl POSIX needs this for select(), but old systems don't have it
1819 if test "$USE_UNIX" = 1 ; then
1820 AC_CHECK_HEADERS([sys/select.h])
1821 fi
1822
1823 dnl ---------------------------------------------------------------------------
1824 dnl Checks for compiler characteristics
1825 dnl ---------------------------------------------------------------------------
1826
1827 dnl defines const to be empty if c-compiler does not support const fully
1828 AC_C_CONST
1829 dnl defines inline to a sensible value for the c-compiler
1830 AC_C_INLINE
1831
1832 dnl check the sizes of integral types (give some reasonable default values for
1833 dnl cross-compiling)
1834 dnl defines the size of certain types of variables in SIZEOF_<TYPE>
1835 AC_CHECK_SIZEOF(char, 1)
1836 AC_CHECK_SIZEOF(short, 2)
1837 AC_CHECK_SIZEOF(void *, 4)
1838 AC_CHECK_SIZEOF(int, 4)
1839 AC_CHECK_SIZEOF(long, 4)
1840 AC_CHECK_SIZEOF(size_t, 4)
1841
1842 case "${host}" in
1843 arm-*-linux* )
1844 AC_CHECK_SIZEOF(long long, 8)
1845 ;;
1846 *-hp-hpux* )
1847 AC_CHECK_SIZEOF(long long, 0)
1848 if test "$ac_cv_sizeof_long_long" != "0"; then
1849 dnl HPUX 10.20 headers need this define in order to use long long definitions
1850 CPPFLAGS="-D_INCLUDE_LONGLONG $CPPFLAGS"
1851 fi
1852 ;;
1853 * )
1854 AC_CHECK_SIZEOF(long long, 0)
1855 esac
1856
1857 dnl SGI/Irix's stdio.h does not include wchar_t. Mac OS X does not provide
1858 dnl wchar.h and wchar_t is defined by stdlib.h (GD)
1859 AC_CHECK_SIZEOF(wchar_t, 0,
1860 [
1861 /* DJGPP's wchar_t is now a keyword in C++ (still not C though) */
1862 #if defined(__DJGPP__) && !( (__GNUC_MINOR__ >= 8 && __GNUC__ == 2 ) || __GNUC__ >= 3 )
1863 # error "fake wchar_t"
1864 #endif
1865 #ifdef HAVE_WCHAR_H
1866 # ifdef __CYGWIN__
1867 # include <stddef.h>
1868 # endif
1869 # include <wchar.h>
1870 #endif
1871 #ifdef HAVE_STDLIB_H
1872 # include <stdlib.h>
1873 #endif
1874 #include <stdio.h>
1875 ]
1876 )
1877 if test "$ac_cv_sizeof_wchar_t" != "0"; then
1878 wxUSE_WCHAR_T=yes
1879 else
1880 wxUSE_WCHAR_T=no
1881 fi
1882
1883 dnl checks needed to define wxVaCopy
1884 AC_CACHE_CHECK([for va_copy],
1885 wx_cv_func_va_copy,
1886 [
1887 AC_LINK_IFELSE([
1888 #include <stdarg.h>
1889 void foo(char *f, ...)
1890 {
1891 va_list ap1, ap2;
1892 va_start(ap1, f);
1893 va_copy(ap2, ap1);
1894 va_end(ap2);
1895 va_end(ap1);
1896 }
1897 int main()
1898 {
1899 foo("hi", 17);
1900 return 0;
1901 }],
1902 wx_cv_func_va_copy=yes,
1903 wx_cv_func_va_copy=no
1904 )
1905 ]
1906 )
1907
1908 if test $wx_cv_func_va_copy = "yes"; then
1909 AC_DEFINE(HAVE_VA_COPY)
1910 else
1911 dnl try to understand how can we copy va_lists
1912 AC_CACHE_CHECK([if va_list can be copied by value],
1913 wx_cv_type_va_list_lvalue,
1914 [
1915 AC_RUN_IFELSE([
1916 #include <stdarg.h>
1917 int foo(char *f, ...)
1918 {
1919 va_list ap1, ap2;
1920 va_start(ap1, f);
1921 ap2 = ap1;
1922 if ( va_arg(ap1, int) != 17 || va_arg(ap2, int) != 17 )
1923 return 1;
1924 va_end(ap2);
1925 va_end(ap1);
1926 return 0;
1927 }
1928 int main()
1929 {
1930 return foo("hi", 17);
1931 }],
1932 wx_cv_type_va_list_lvalue=yes,
1933 wx_cv_type_va_list_lvalue=no,
1934 dnl assume most common case for cross-compiling...
1935 wx_cv_type_va_list_lvalue=yes
1936 )
1937 ]
1938 )
1939
1940 if test $wx_cv_type_va_list_lvalue != "yes"; then
1941 dnl we suppose that the only thing which can't be copied like this
1942 dnl are arrays... only experience will show whether this is really true
1943 AC_DEFINE(VA_LIST_IS_ARRAY)
1944 fi
1945 fi
1946
1947 dnl Check if variadic macros (C99 feature) are supported:
1948 AC_CACHE_CHECK(
1949 [whether the compiler supports variadic macros],
1950 [wx_cv_have_variadic_macros],
1951 [
1952 AC_COMPILE_IFELSE(
1953 AC_LANG_PROGRAM(
1954 [
1955 #include <stdio.h>
1956 #define test(fmt, ...) printf(fmt, __VA_ARGS__)
1957 ],
1958 [
1959 test("%s %d %p", "test", 1, 0);
1960 ]
1961 ),
1962 [wx_cv_have_variadic_macros=yes],
1963 [wx_cv_have_variadic_macros=no]
1964 )
1965 ]
1966 )
1967
1968 if test $wx_cv_have_variadic_macros = "yes"; then
1969 AC_DEFINE(HAVE_VARIADIC_MACROS)
1970 fi
1971
1972 dnl check for large file support
1973 AC_SYS_LARGEFILE
1974
1975 dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
1976 dnl line because otherwise the system headers risk being included before
1977 dnl wx/defs.h which defines these constants leading to inconsistent
1978 dnl sizeof(off_t) in different source files of the same program and linking
1979 dnl problems
1980 if test "x$wx_largefile" = "xyes"; then
1981 if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
1982 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
1983
1984 dnl We get "Large Files (ILP32) not supported in strict ANSI mode."
1985 dnl #error from HP standard headers unless __STDC_EXT__ is defined.
1986 dnl The compiler should define it automatically, but some old g++
1987 dnl versions don't define it, so test and add it if necessary. AFAIK
1988 dnl the problem only affects the C++ compiler so it is added to
1989 dnl CXXFLAGS only.
1990 if test "$USE_HPUX" = 1 -a "$GXX" = "yes"; then
1991 AC_CACHE_CHECK(
1992 [if -D__STDC_EXT__ is required],
1993 wx_cv_STDC_EXT_required,
1994 [
1995 AC_TRY_COMPILE(
1996 [],
1997 [
1998 #ifndef __STDC_EXT__
1999 choke me
2000 #endif
2001 ],
2002 wx_cv_STDC_EXT_required=no,
2003 wx_cv_STDC_EXT_required=yes
2004 )
2005 ]
2006 )
2007 if test "x$wx_cv_STDC_EXT_required" = "xyes"; then
2008 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -D__STDC_EXT__"
2009 fi
2010 fi
2011 else
2012 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGE_FILES"
2013 fi
2014 dnl AC_FUNC_FSEEKO sets HAVE_FSEEKO and $ac_cv_sys_largefile_source
2015 AC_FUNC_FSEEKO
2016 if test "$ac_cv_sys_largefile_source" != no; then
2017 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_LARGEFILE_SOURCE=$ac_cv_sys_largefile_source"
2018 fi
2019 fi
2020
2021 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
2022 WX_C_BIGENDIAN
2023
2024 dnl check for iostream (as opposed to iostream.h) standard header
2025 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
2026
2027 dnl check whether C++ compiler supports bool built-in type
2028 WX_CPP_BOOL
2029
2030 dnl check whether C++ compiler supports explicit keyword
2031 WX_CPP_EXPLICIT
2032
2033 dnl check whether C++ compiler supports C++ casts
2034 AC_CXX_CONST_CAST
2035 AC_CXX_REINTERPRET_CAST
2036 AC_CXX_STATIC_CAST
2037 dnl we don't use HAVE_DYNAMIC_CAST anywhere right now...
2038 dnl AC_CXX_DYNAMIC_CAST
2039
2040 dnl With Sun CC, temporaries have block scope by default. This flag is needed
2041 dnl to get the expression scope behaviour that conforms to the standard.
2042 if test "x$SUNCXX" = xyes; then
2043 CXXFLAGS="-features=tmplife $CXXFLAGS"
2044 fi
2045
2046 dnl Sun X11 headers are (still, in 2005!) non-ANSI and the best they could do
2047 dnl was to hack their C++ compiler to accept them silently -- but C compiler
2048 dnl still spits out dozens of warnings for each X include file, so suppress
2049 dnl them
2050 if test "x$SUNCC" = xyes; then
2051 CFLAGS="-erroff=E_NO_EXPLICIT_TYPE_GIVEN $CFLAGS"
2052 fi
2053
2054 dnl SGI mipsPro compiler gives this warning for "conversion from pointer to
2055 dnl same-sized integral type" even when there is an explicit cast and as there
2056 dnl is no way to turn it off and there are hundreds of these warnings in wx
2057 dnl sources, just turn it off for now
2058 dnl
2059 dnl a better long term solution would be to use #pragma set/reset woff in
2060 dnl wxPtrToUInt() and use it instead of casts elsewhere
2061 if test "x$SGICC" = "xyes"; then
2062 CFLAGS="-woff 3970 $CFLAGS"
2063 fi
2064 if test "x$SGICXX" = "xyes"; then
2065 CXXFLAGS="-woff 3970 $CXXFLAGS"
2066 fi
2067
2068 dnl HP-UX c89/aCC compiler warnings
2069 if test "x$HPCC" = "xyes"; then
2070 dnl 2011: "unrecognized preprocessor directive": nice warning but it's given
2071 dnl even for directives inside #if which is not true (i.e. which are
2072 dnl used for other compilers/OS) and so we have no way to get rid of it
2073 dnl 2450: "long long is non standard" -- yes, we know
2074 CFLAGS="+W 2011,2450 $CFLAGS"
2075 fi
2076 if test "x$HPCXX" = "xyes"; then
2077 dnl 2340: "value copied to temporary, reference to temporary used": very
2078 dnl painful as triggered by any occurrence of user-defined conversion
2079 CXXFLAGS="+W 2340 $CXXFLAGS"
2080 fi
2081
2082 dnl DEC/Compaq/HP cxx warnings
2083 if test "x$COMPAQCXX" = "xyes"; then
2084 dnl -w0 enables all warnings, then we disable some of them:
2085 dnl basclsnondto: base class dtor non virtual (sometimes we do want this)
2086 dnl unrimpret: "end of routine block may be unreachable" is given for
2087 dnl every "if ( ) return ...; else return ...;"
2088 dnl intconlosbit: "conversion to integral type of smaller size could lose
2089 dnl data" this is a useful warning but there are too many of
2090 dnl them for now
2091 CXXFLAGS="-w0 -msg_disable basclsnondto,unrimpret,intconlosbit"
2092 fi
2093
2094 dnl check for std::string or std::wstring
2095 if test "$wxUSE_STD_STRING" = "yes" -o "$wxUSE_STL" = "yes"; then
2096 if test "$wxUSE_UNICODE" = "yes"; then
2097 std_string="std::wstring"
2098 char_type="wchar_t"
2099 else
2100 std_string="std::string"
2101 char_type="char"
2102 fi
2103
2104 dnl check if <string> declares std::wstring
2105 AC_MSG_CHECKING([for $std_string in <string>])
2106 AC_TRY_COMPILE([#include <string>],
2107 [$std_string foo;],
2108 [AC_MSG_RESULT(yes)
2109 AC_DEFINE(HAVE_STD_WSTRING)],
2110 [AC_MSG_RESULT(no)
2111 AC_MSG_CHECKING([if std::basic_string<$char_type> works])
2112 AC_TRY_COMPILE([
2113 #ifdef HAVE_WCHAR_H
2114 # ifdef __CYGWIN__
2115 # include <stddef.h>
2116 # endif
2117 # include <wchar.h>
2118 #endif
2119 #ifdef HAVE_STDLIB_H
2120 # include <stdlib.h>
2121 #endif
2122 #include <stdio.h>
2123 #include <string>
2124 ],
2125 [std::basic_string<$char_type> foo;
2126 const $char_type* dummy = foo.c_str();],
2127 [AC_MSG_RESULT(yes)],
2128 [AC_MSG_RESULT([no])
2129 if test "$wxUSE_STL" = "yes"; then
2130 AC_MSG_ERROR([Can't use --enable-stl without $std_string or std::basic_string<$char_type>])
2131 elif grep wxUSE_STD_STRING $wx_arg_cache_file >/dev/null; then
2132 AC_MSG_ERROR([Can't use --enable-std_string without $std_string or std::basic_string<$char_type>])
2133 else
2134 AC_MSG_WARN([No $std_string or std::basic_string<$char_type>, switching to --disable-std_string])
2135 wxUSE_STD_STRING=no
2136 fi
2137 ]
2138 )
2139 ])
2140 fi
2141
2142 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
2143 AC_CHECK_TYPES([std::istream, std::ostream],,
2144 [wxUSE_STD_IOSTREAM=no],
2145 [#include <iostream>])
2146
2147 if test "$wxUSE_STD_IOSTREAM" != "yes"; then
2148 if grep wxUSE_STD_IOSTREAM $wx_arg_cache_file >/dev/null; then
2149 AC_MSG_ERROR([Can't use --enable-std_iostreams without std::istream and std::ostream])
2150 else
2151 AC_MSG_WARN([No std::iostreams, switching to --disable-std_iostreams])
2152 fi
2153 fi
2154 fi
2155
2156 if test "$wxUSE_STL" = "yes"; then
2157 dnl check for basic STL functionality
2158 AC_MSG_CHECKING([for basic STL functionality])
2159 AC_TRY_COMPILE([#include <string>
2160 #include <functional>
2161 #include <algorithm>
2162 #include <vector>
2163 #include <list>],
2164 [std::vector<int> moo;
2165 std::list<int> foo;
2166 std::vector<int>::iterator it =
2167 std::find_if(moo.begin(), moo.end(),
2168 std::bind2nd(std::less<int>(), 3));],
2169 [AC_MSG_RESULT([yes])],
2170 [AC_MSG_RESULT([no])
2171 AC_MSG_ERROR([Basic STL functionality missing])])
2172
2173 dnl check for compliant std::string::compare
2174 AC_MSG_CHECKING([for compliant std::string::compare])
2175 AC_TRY_COMPILE([#include <string>],
2176 [std::string foo, bar;
2177 foo.compare(bar);
2178 foo.compare(1, 1, bar);
2179 foo.compare(1, 1, bar, 1, 1);
2180 foo.compare("");
2181 foo.compare(1, 1, "");
2182 foo.compare(1, 1, "", 2);],
2183 [AC_MSG_RESULT(yes)
2184 AC_DEFINE(HAVE_STD_STRING_COMPARE)],
2185 [AC_MSG_RESULT(no)])
2186
2187 dnl check for hash_map and hash_set headers
2188 AC_CHECK_HEADER([hash_map],
2189 [AC_MSG_CHECKING([for hash_map and hash_set])
2190 AC_TRY_COMPILE([#include <hash_map>
2191 #include <hash_set>],
2192 [std::hash_map<double*, char*, std::hash<double*>, std::equal_to<double*> > test1;
2193 std::hash_set<char*, std::hash<char*>, std::equal_to<char*> > test2;],
2194 [AC_MSG_RESULT(yes)
2195 AC_DEFINE(HAVE_HASH_MAP)
2196 AC_DEFINE(HAVE_STD_HASH_MAP)],
2197 [AC_MSG_RESULT(no)])
2198 ])
2199
2200 AC_CHECK_HEADER([ext/hash_map],
2201 [AC_MSG_CHECKING([for hash_map and hash_set])
2202 AC_TRY_COMPILE([#include <ext/hash_map>
2203 #include <ext/hash_set>],
2204 [__gnu_cxx::hash_map<double*, char*, __gnu_cxx::hash<double*>, std::equal_to<double*> > test1;
2205 __gnu_cxx::hash_set<char*, __gnu_cxx::hash<char*>, std::equal_to<char*> > test2;],
2206 [AC_MSG_RESULT(yes)
2207 AC_DEFINE(HAVE_EXT_HASH_MAP)
2208 AC_DEFINE(HAVE_GNU_CXX_HASH_MAP)],
2209 [AC_MSG_RESULT(no)])
2210 ])
2211 fi
2212
2213 dnl ---------------------------------------------------------------------------
2214 dnl Define search path for includes and libraries: all headers and libs will be
2215 dnl looked for in all directories of this path
2216 dnl ---------------------------------------------------------------------------
2217
2218 dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
2219 dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
2220 dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
2221 dnl
2222 dnl Also try to put all directories which may contain X11R6 before those which
2223 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
2224 dnl
2225 dnl In the same vein. Motif 2.1 should be tried before Motif 1.2 for the
2226 dnl systems which have both (AIX 4.x does)
2227 SEARCH_INCLUDE="\
2228 /usr/local/include \
2229 \
2230 /usr/Motif-2.1/include \
2231 /usr/Motif-1.2/include \
2232 /usr/include/Motif1.2 \
2233 \
2234 /usr/dt/include \
2235 /usr/openwin/include \
2236 \
2237 /usr/include/Xm \
2238 \
2239 /usr/X11R6/include \
2240 /usr/X11R6.4/include \
2241 /usr/X11R5/include \
2242 /usr/X11R4/include \
2243 \
2244 /usr/include/X11R6 \
2245 /usr/include/X11R5 \
2246 /usr/include/X11R4 \
2247 \
2248 /usr/local/X11R6/include \
2249 /usr/local/X11R5/include \
2250 /usr/local/X11R4/include \
2251 \
2252 /usr/local/include/X11R6 \
2253 /usr/local/include/X11R5 \
2254 /usr/local/include/X11R4 \
2255 \
2256 /usr/X11/include \
2257 /usr/include/X11 \
2258 /usr/local/X11/include \
2259 /usr/local/include/X11 \
2260 \
2261 /usr/XFree86/include/X11 \
2262 /usr/pkg/include \
2263 \
2264 /usr/openwin/share/include"
2265
2266 dnl try to find out the standard lib locations for the systems with multiple
2267 dnl ABIs
2268 AC_MSG_CHECKING([for libraries directory])
2269
2270 case "${host}" in
2271 *-*-irix6* )
2272 AC_CACHE_VAL(
2273 wx_cv_std_libpath,
2274 [
2275 for d in WX_STD_LIBPATH(); do
2276 for e in a so sl dylib dll.a; do
2277 libc="$d/libc.$e"
2278 if test -f $libc; then
2279 save_LIBS="$LIBS"
2280 LIBS="$libc"
2281 AC_LINK_IFELSE([int main() { return 0; }],
2282 wx_cv_std_libpath=`echo $d | sed s@/usr/@@`)
2283 LIBS="$save_LIBS"
2284 if test "x$wx_cv_std_libpath" != "x"; then
2285 break 2
2286 fi
2287 fi
2288 done
2289 done
2290 if test "x$wx_cv_std_libpath" = "x"; then
2291 wx_cv_std_libpath="lib"
2292 fi
2293 ]
2294 )
2295 ;;
2296
2297 *-*-solaris2* )
2298 dnl use ../lib or ../lib/64 depending on the size of void*
2299 if test "$ac_cv_sizeof_void_p" = 8 -a -d "/usr/lib/64"; then
2300 wx_cv_std_libpath="lib/64"
2301 else
2302 wx_cv_std_libpath="lib"
2303 fi
2304 ;;
2305
2306 *-*-linux* )
2307 dnl use ../lib or ../lib64 depending on the size of void*
2308 if test "$ac_cv_sizeof_void_p" = 8 -a \
2309 -d "/usr/lib64" -a ! -h "/usr/lib64"; then
2310 wx_cv_std_libpath="lib64"
2311 else
2312 wx_cv_std_libpath="lib"
2313 fi
2314 ;;
2315
2316 *)
2317 wx_cv_std_libpath="lib";
2318 ;;
2319 esac
2320
2321 AC_MSG_RESULT($wx_cv_std_libpath)
2322
2323 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s@include@$wx_cv_std_libpath@g` /usr/$wx_cv_std_libpath"
2324
2325 dnl Cross compiling with gcc?
2326 if test "$build" != "$host" -a "$GCC" = yes; then
2327 dnl for gcc cross-compilers "$CC -print-prog-name=ld" prints the path to
2328 dnl the linker. Stripping off the trailing '/bin/ld' gives us a candiate
2329 dnl for a 'root' below which libraries and headers for the target system
2330 dnl might be installed.
2331 if cross_root=`$CC -print-prog-name=ld 2>/dev/null`; then
2332 cross_root=`dirname $cross_root`
2333 cross_root=`dirname $cross_root`
2334
2335 dnl substitute this candiate root for '^/usr' in the search lists,
2336 dnl strip out any that don't start '^/usr'.
2337 SEARCH_LIB=`for x in $SEARCH_LIB; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2338 SEARCH_INCLUDE=`for x in $SEARCH_INCLUDE; do echo $x; done | sed -ne "s|^/usr|$cross_root|p"`
2339 SEARCH_INCLUDE="$SEARCH_INCLUDE $cross_root/include"
2340
2341 dnl also have pkg-config search for *.pc files under this 'root'
2342 if test -z "$PKG_CONFIG_PATH"; then
2343 PKG_CONFIG_PATH="$cross_root/local/lib/pkgconfig:$cross_root/lib/pkgconfig"
2344 export PKG_CONFIG_PATH
2345 fi
2346
2347 dnl AC_PATH_XTRA doesn't work currently unless -x-includes and
2348 dnl -x-libraries are given on the command line. So if they are not
2349 dnl set then set them here to plausible defaults.
2350 if test -z "$x_includes" -o "$x_includes" = NONE; then
2351 WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
2352 x_includes=$ac_find_includes
2353 fi
2354 if test -z "$x_libraries" -o "$x_libraries" = NONE; then
2355 WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xt)
2356 x_libraries=$ac_find_libraries
2357 fi
2358 fi
2359 fi
2360
2361 dnl ------------------------------------------------------------------------
2362 dnl Check for libraries
2363 dnl ------------------------------------------------------------------------
2364
2365 dnl flush the cache because checking for libraries below might abort
2366 AC_CACHE_SAVE
2367
2368 dnl check for glibc version
2369 dnl
2370 dnl VZ: I have no idea why had this check been there originally, but now
2371 dnl we could probably do without it by just always adding _GNU_SOURCE
2372 if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
2373 AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
2374 AC_TRY_COMPILE([#include <features.h>],
2375 [
2376 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
2377 not glibc 2.1
2378 #endif
2379 ],
2380 [
2381 wx_cv_lib_glibc21=yes
2382 ],
2383 [
2384 wx_cv_lib_glibc21=no
2385 ]
2386 )
2387 ])
2388 if test "$wx_cv_lib_glibc21" = "yes"; then
2389 AC_DEFINE(wxHAVE_GLIBC2)
2390 fi
2391 fi
2392
2393 dnl we may need _GNU_SOURCE for 2 things:
2394 dnl
2395 dnl 1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
2396 dnl only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
2397 dnl which breaks libtiff compilation, so it is simpler to just define
2398 dnl _GNU_SOURCE to get everything)
2399 dnl
2400 dnl 2. for Unicode functions
2401 if test "x$wx_cv_lib_glibc21" = "xyes"; then
2402 if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
2403 AC_DEFINE(_GNU_SOURCE)
2404 fi
2405 fi
2406
2407 dnl Only add the -lm library if floating point functions cannot be used
2408 dnl without it. This check is important on cygwin because of the bizarre
2409 dnl way that they have organized functions into libraries. On cygwin, both
2410 dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a. This
2411 dnl means that
2412 dnl 1) linking with -lm is not necessary, and
2413 dnl 2) linking with -lm is dangerous if the order of libraries is wrong
2414 dnl In particular, if you compile any program with -mno-cygwin and link with
2415 dnl -lm, it will crash instantly when it is run. This happens because the
2416 dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
2417 dnl the ___main function instead of allowing it to be defined by
2418 dnl /usr/lib/mingw/libmingw32.a as it should be.
2419 dnl
2420 dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
2421 dnl
2422 dnl Just check a few floating point functions. If they are all found without
2423 dnl -lm, then we must not need -lm.
2424 have_cos=0
2425 have_floor=0
2426 AC_CHECK_FUNCS(cos, have_cos=1)
2427 AC_CHECK_FUNCS(floor, have_floor=1)
2428 AC_MSG_CHECKING(if floating point functions link without -lm)
2429 if test "$have_cos" = 1 -a "$have_floor" = 1; then
2430 AC_MSG_RESULT(yes)
2431 else
2432 AC_MSG_RESULT(no)
2433 LIBS="$LIBS -lm"
2434 # use different functions to avoid configure caching
2435 have_sin=0
2436 have_ceil=0
2437 AC_CHECK_FUNCS(sin, have_sin=1)
2438 AC_CHECK_FUNCS(ceil, have_ceil=1)
2439 AC_MSG_CHECKING(if floating point functions link with -lm)
2440 if test "$have_sin" = 1 -a "$have_ceil" = 1; then
2441 AC_MSG_RESULT(yes)
2442 else
2443 AC_MSG_RESULT(no)
2444 # not sure we should warn the user, crash, etc.
2445 fi
2446 fi
2447
2448 dnl ---------------------------------------------------------------------------
2449 dnl Optional libraries
2450 dnl
2451 dnl --with-<lib>=sys
2452 dnl looks for system library and fails if not found
2453 dnl
2454 dnl --with-<lib>
2455 dnl --with-<lib>=yes
2456 dnl looks for system library and, if not found, prints a warning,
2457 dnl falls back to the builtin wx version, and continues configuration
2458 dnl
2459 dnl --with-<lib>=builtin
2460 dnl uses builtin wx version without searching for system library
2461 dnl
2462 dnl --with-<lib>=no
2463 dnl --without-<lib>
2464 dnl do not use library (neither system nor builtin wx version)
2465 dnl
2466 dnl ---------------------------------------------------------------------------
2467
2468 dnl ------------------------------------------------------------------------
2469 dnl Check for regex libraries
2470 dnl ------------------------------------------------------------------------
2471
2472 if test "$wxUSE_REGEX" != "no"; then
2473 AC_DEFINE(wxUSE_REGEX)
2474
2475 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_REGEX" = "yes"; then
2476 AC_MSG_WARN([Defaulting to the the builtin regex library for Unicode build.])
2477 wxUSE_REGEX=builtin
2478 fi
2479
2480 if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
2481 dnl according to Unix 98 specs, regcomp() is in libc but I believe that
2482 dnl on some old systems it may be in libregex - check for it too?
2483 AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp re_search)])
2484
2485 if test "x$ac_cv_func_regcomp" != "xyes"; then
2486 if test "$wxUSE_REGEX" = "sys" ; then
2487 AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version])
2488 else
2489 AC_MSG_WARN([system regex library not found, will use built-in instead])
2490 wxUSE_REGEX=builtin
2491 fi
2492 else
2493 dnl we are using the system library
2494 wxUSE_REGEX=sys
2495 dnl only the built-in supports advanced REs
2496 AC_DEFINE(WX_NO_REGEX_ADVANCED)
2497 fi
2498 fi
2499 fi
2500
2501 dnl ------------------------------------------------------------------------
2502 dnl Check for zlib compression library
2503 dnl ------------------------------------------------------------------------
2504
2505 ZLIB_LINK=
2506 if test "$wxUSE_ZLIB" != "no" ; then
2507 AC_DEFINE(wxUSE_ZLIB)
2508
2509 if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
2510 dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
2511 dnl should still use it because hopefully (can someone confirm this?)
2512 dnl Apple did fix the security problem in it and not using the system
2513 dnl library results in a whole bunch of warnings when linking with
2514 dnl Carbon framework
2515 if test "$USE_DARWIN" = 1; then
2516 system_zlib_h_ok="yes"
2517 else
2518 dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
2519 dnl known to not work) and although I don't know which is
2520 dnl the minimal required version it's safer to test for 1.1.4 as
2521 dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
2522 dnl has anything more ancient (1.1.3 was released in July 1998)
2523 dnl anyhow
2524 AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
2525 [AC_TRY_RUN(
2526 dnl zlib.h defines ZLIB_VERSION="x.y.z"
2527 [
2528 #include <zlib.h>
2529 #include <stdio.h>
2530
2531 int main()
2532 {
2533 FILE *f=fopen("conftestval", "w");
2534 if (!f) exit(1);
2535 fprintf(f, "%s",
2536 ZLIB_VERSION[0] == '1' &&
2537 (ZLIB_VERSION[2] > '1' ||
2538 (ZLIB_VERSION[2] == '1' &&
2539 ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
2540 exit(0);
2541 }
2542 ],
2543 ac_cv_header_zlib_h=`cat conftestval`,
2544 ac_cv_header_zlib_h=no,
2545 dnl cross-compiling: don't have an answer, try later
2546 unset ac_cv_header_zlib_h
2547 )]
2548 )
2549 dnl If the test above did not come up with a value (e.g. cross
2550 dnl compiling) then this should give a definitive answer
2551 AC_CHECK_HEADER(zlib.h)
2552
2553 system_zlib_h_ok=$ac_cv_header_zlib_h
2554 fi
2555
2556 if test "$system_zlib_h_ok" = "yes"; then
2557 AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
2558 fi
2559
2560 if test "x$ZLIB_LINK" = "x" ; then
2561 if test "$wxUSE_ZLIB" = "sys" ; then
2562 AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
2563 else
2564 AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
2565 wxUSE_ZLIB=builtin
2566 fi
2567 else
2568 dnl we are using the system library
2569 wxUSE_ZLIB=sys
2570 fi
2571 fi
2572 fi
2573
2574 dnl ------------------------------------------------------------------------
2575 dnl Check for png library
2576 dnl ------------------------------------------------------------------------
2577
2578 PNG_LINK=
2579 if test "$wxUSE_LIBPNG" != "no" ; then
2580 AC_DEFINE(wxUSE_LIBPNG)
2581
2582 if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
2583 AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
2584 wxUSE_LIBPNG=sys
2585 fi
2586
2587 dnl for the check below to have a chance to succeed, we must already have
2588 dnl libz somewhere (don't do this when bulding wxMGL since its libpng
2589 dnl doesn't depend on zlib)
2590 if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
2591 AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
2592 wxUSE_LIBPNG=builtin
2593 fi
2594
2595 if test "$wxUSE_MGL" != 1 ; then
2596 dnl Don't check for libpng when building wxMGL, libmgl contains it
2597 if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
2598 dnl libpng version 0.9 is known to not work, if an even newer
2599 dnl version is required, just bump it up in the test below
2600 AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
2601 [AC_TRY_RUN(
2602 dnl png.h defines PNG_LIBPNG_VER=number
2603 [
2604 #include <png.h>
2605 #include <stdio.h>
2606
2607 int main()
2608 {
2609 FILE *f=fopen("conftestval", "w");
2610 if (!f) exit(1);
2611 fprintf(f, "%s",
2612 PNG_LIBPNG_VER > 90 ? "yes" : "no");
2613 exit(0);
2614 }
2615 ],
2616 ac_cv_header_png_h=`cat conftestval`,
2617 ac_cv_header_png_h=no,
2618 dnl cross-compiling: test (later) if we have any png.h
2619 unset ac_cv_header_png_h
2620 )]
2621 )
2622 AC_CHECK_HEADER(png.h)
2623
2624 if test "$ac_cv_header_png_h" = "yes"; then
2625 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng -lz", , [-lz -lm])
2626 fi
2627
2628 if test "x$PNG_LINK" = "x" ; then
2629 if test "$wxUSE_LIBPNG" = "sys" ; then
2630 AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
2631 else
2632 AC_MSG_WARN([system png library not found or too old, will use built-in instead])
2633 wxUSE_LIBPNG=builtin
2634 fi
2635 else
2636 dnl we are using the system library
2637 wxUSE_LIBPNG=sys
2638 fi
2639 fi
2640 fi
2641
2642 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
2643 fi
2644
2645 dnl ------------------------------------------------------------------------
2646 dnl Check for jpeg library
2647 dnl ------------------------------------------------------------------------
2648
2649 JPEG_LINK=
2650 if test "$wxUSE_LIBJPEG" != "no" ; then
2651 AC_DEFINE(wxUSE_LIBJPEG)
2652
2653 if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2654 AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2655 wxUSE_LIBJPEG=sys
2656 fi
2657
2658 if test "$wxUSE_MGL" != 1 ; then
2659 dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2660 if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2661 dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2662 dnl HAVE_STDLIB_H which are already defined and this provokes
2663 dnl a compiler warning which configure considers as an error...
2664 AC_MSG_CHECKING(for jpeglib.h)
2665 AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2666 AC_TRY_COMPILE(
2667 [
2668 #undef HAVE_STDLIB_H
2669 #include <stdio.h>
2670 #include <jpeglib.h>
2671 ],
2672 [
2673 ],
2674 ac_cv_header_jpeglib_h=yes,
2675 ac_cv_header_jpeglib_h=no
2676 )
2677 )
2678 AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2679
2680 if test "$ac_cv_header_jpeglib_h" = "yes"; then
2681 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2682 fi
2683
2684 if test "x$JPEG_LINK" = "x" ; then
2685 if test "$wxUSE_LIBJPEG" = "sys" ; then
2686 AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2687 else
2688 AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2689 wxUSE_LIBJPEG=builtin
2690 fi
2691 else
2692 dnl we are using the system library
2693 wxUSE_LIBJPEG=sys
2694 fi
2695 fi
2696 fi
2697 fi
2698
2699 dnl ------------------------------------------------------------------------
2700 dnl Check for tiff library
2701 dnl ------------------------------------------------------------------------
2702
2703 TIFF_LINK=
2704 TIFF_PREREQ_LINKS=-lm
2705 if test "$wxUSE_LIBTIFF" != "no" ; then
2706 AC_DEFINE(wxUSE_LIBTIFF)
2707
2708 if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2709 dnl libtiff may depend on libjpeg and libz so use them in the test
2710 dnl below or it would fail
2711 if test "$wxUSE_LIBJPEG" = "sys"; then
2712 TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2713 fi
2714 if test "$wxUSE_ZLIB" = "sys"; then
2715 TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2716 fi
2717 AC_CHECK_HEADER(tiffio.h,
2718 [
2719 AC_CHECK_LIB(tiff, TIFFError,
2720 TIFF_LINK=" -ltiff",
2721 ,
2722 $TIFF_PREREQ_LINKS)
2723 ]
2724 )
2725
2726 if test "x$TIFF_LINK" = "x" ; then
2727 if test "$wxUSE_LIBTIFF" = "sys" ; then
2728 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2729 else
2730 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2731 wxUSE_LIBTIFF=builtin
2732 fi
2733 else
2734 dnl we are using the system library
2735 wxUSE_LIBTIFF=sys
2736 fi
2737 fi
2738 fi
2739
2740 dnl ------------------------------------------------------------------------
2741 dnl Check for expat libraries
2742 dnl ------------------------------------------------------------------------
2743
2744 if test "$wxUSE_WCHAR_T" != "yes"; then
2745 if test "$wxUSE_EXPAT" != "no"; then
2746 AC_MSG_WARN([wxWidgets requires wchar_t to use expat, disabling])
2747 wxUSE_EXPAT=no
2748 fi
2749 if test "$wxUSE_XML" != "no"; then
2750 AC_MSG_WARN([wxWidgets requires wchar_t to use xml, disabling])
2751 wxUSE_XML=no
2752 fi
2753 fi
2754
2755 if test "$wxUSE_EXPAT" != "no"; then
2756 wxUSE_XML=yes
2757 AC_DEFINE(wxUSE_EXPAT)
2758 AC_DEFINE(wxUSE_XML)
2759
2760 if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then
2761 AC_CHECK_HEADER([expat.h], [found_expat_h=1])
2762 if test "x$found_expat_h" = "x1"; then
2763 dnl Expat 1.95.6 comes with broken expat.h:
2764 AC_CACHE_CHECK([if expat.h is valid C++ header],
2765 wx_cv_expat_is_not_broken,
2766 [
2767 AC_TRY_COMPILE([#include <expat.h>],[],
2768 wx_cv_expat_is_not_broken=yes,
2769 wx_cv_expat_is_not_broken=no
2770 )
2771 ]
2772 )
2773 if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2774 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2775 fi
2776 fi
2777 if test "x$EXPAT_LINK" = "x" ; then
2778 if test "$wxUSE_EXPAT" = "sys" ; then
2779 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2780 else
2781 AC_MSG_WARN([system expat library not found, will use built-in instead])
2782 wxUSE_EXPAT=builtin
2783 fi
2784 else
2785 dnl we are using the system library
2786 wxUSE_EXPAT=sys
2787 fi
2788 fi
2789 if test "$wxUSE_EXPAT" = "builtin" ; then
2790 dnl Expat needs this:
2791 AC_CONFIG_SUBDIRS([src/expat])
2792 fi
2793 fi
2794
2795
2796 dnl ------------------------------------------------------------------------
2797 dnl Check for libmspack
2798 dnl ------------------------------------------------------------------------
2799
2800 if test "$wxUSE_LIBMSPACK" != "no"; then
2801 AC_CHECK_HEADER([mspack.h], [found_mspack_h=1])
2802 if test "x$found_mspack_h" = "x1"; then
2803 AC_CHECK_LIB(mspack, mspack_create_chm_decompressor,
2804 MSPACK_LINK=" -lmspack")
2805 fi
2806 if test "x$MSPACK_LINK" = "x" ; then
2807 wxUSE_LIBMSPACK=no
2808 fi
2809 fi
2810
2811 if test "$wxUSE_LIBMSPACK" != "no"; then
2812 AC_DEFINE(wxUSE_LIBMSPACK)
2813 fi
2814
2815
2816 dnl ----------------------------------------------------------------
2817 dnl search for toolkit (widget sets)
2818 dnl ----------------------------------------------------------------
2819
2820 AFMINSTALL=
2821 WIN32INSTALL=
2822
2823 TOOLKIT=
2824 TOOLKIT_INCLUDE=
2825 WIDGET_SET=
2826
2827 dnl are we building for a win32 target environment?
2828 dnl If so, setup common stuff needed for both GUI and Base libs.
2829 if test "$USE_WIN32" = 1 ; then
2830 AC_CHECK_HEADERS(w32api.h)
2831 AC_CHECK_HEADER(windows.h, [],
2832 [
2833 AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2834 ])
2835
2836 dnl --- FIXME: This is still a somewhat random list of libs,
2837 dnl --- some of them should probably be included conditionally.
2838 LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2839
2840 if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2841 LIBS="$LIBS -loleacc"
2842 fi
2843
2844 case "${host}" in
2845 *-*-cygwin* )
2846 dnl Cygwin doesn't include these by default
2847 LIBS="$LIBS -lkernel32 -luser32"
2848 esac
2849
2850 dnl add extra odbc libs if we have compiled in odbc
2851 if test "$wxUSE_ODBC" = "sys" ; then
2852 wxUSE_ODBC = "yes"
2853 fi
2854 if test "$wxUSE_ODBC" = "yes" ; then
2855 LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2856 AC_DEFINE(wxUSE_ODBC)
2857 fi
2858 dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2859
2860 dnl This one is still used by some sample makefiles.
2861 RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2862 RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2863
2864 dnl This lot we export to wx-config. It must add the relevant
2865 dnl include directories at the point when they can be known.
2866 dnl (but are these (still) required anyway?)
2867 WXCONFIG_RESFLAGS="--define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2868
2869 dnl install Win32-specific files in "make install"
2870 WIN32INSTALL=win32install
2871
2872 dnl the jpeg header jmorecfg.h delcares the type boolean, which conflicts
2873 dnl on systems which declare it in the system headers. If HAVE_BOOLEAN is
2874 dnl defined then jmorecfg.h doesn't declare it, so checking for it here
2875 dnl solves the problem.
2876 AC_CHECK_TYPES(boolean, [], [], [#include <windows.h>])
2877
2878 dnl pbt.h is missing on Wine at least
2879 AC_CHECK_HEADERS(pbt.h, [], [AC_DEFINE(NEED_PBT_H)])
2880 fi
2881
2882 if test "$wxUSE_GUI" = "yes"; then
2883 USE_GUI=1
2884
2885 GUI_TK_LIBRARY=
2886
2887 WXGTK12=
2888 WXGTK127=
2889 WXGTK20=
2890 WXGPE=
2891
2892 if test "$wxUSE_COCOA" = 1 ; then
2893 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes"; then
2894 AC_MSG_WARN([Printing not supported under wxCocoa yet, disabled])
2895 wxUSE_PRINTING_ARCHITECTURE=no
2896 fi
2897 if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
2898 AC_MSG_WARN([Drag and Drop not supported under wxCocoa yet, disabled])
2899 wxUSE_DRAG_AND_DROP=no
2900 fi
2901 if test "$wxUSE_DRAGIMAGE" = "yes"; then
2902 AC_MSG_WARN([Drag Image and DandD not supported under wxCocoa yet, disabled])
2903 wxUSE_DRAGIMAGE=no
2904 fi
2905 fi
2906
2907 if test "$wxUSE_MSW" = 1 ; then
2908 TOOLKIT=MSW
2909 GUIDIST=MSW_DIST
2910
2911 dnl -mwindows causes a heap of other default gui libs to be linked in.
2912 case "${host}" in
2913 *-*-mingw32* )
2914 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2915 esac
2916 fi
2917
2918 if test "$wxUSE_GTK" = 1; then
2919 dnl GTK+ test program must be compiled with C compiler
2920 AC_LANG_PUSH(C)
2921
2922 AC_MSG_CHECKING([for GTK+ version])
2923
2924 gtk_version_cached=1
2925 AC_CACHE_VAL(wx_cv_lib_gtk,
2926 [
2927 dnl stupid GTK+ AM macros produce their own messages, so we
2928 dnl have to pass to the next line
2929 gtk_version_cached=0
2930 AC_MSG_RESULT()
2931
2932 dnl we must link against lgthread unless the user
2933 dnl used --disable-threads
2934 GTK_MODULES=
2935 if test "$wxUSE_THREADS" = "yes"; then
2936 GTK_MODULES=gthread
2937 fi
2938
2939 dnl detect GTK2
2940 wx_cv_lib_gtk=
2941 if test "x$wxGTK_VERSION" != "x1"
2942 then
2943 dnl The gthread.pc that ships with solaris returns '-mt',
2944 dnl it's correct for Sun CC, but gcc requires '-pthreads'.
2945 dnl So disable the compile check and remove the -mt below.
2946 case "${host}" in
2947 *-*-solaris2* )
2948 if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2949 enable_gtktest=no
2950 fi
2951 esac
2952
2953 AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2954
2955 dnl Remove the '-mt' for gcc on solaris
2956 case "${host}" in
2957 *-*-solaris2* )
2958 if test "$wxUSE_THREADS" = "yes" -a "$GCC" = yes; then
2959 GTK_CFLAGS=`echo $GTK_CFLAGS | sed 's/-mt//'`
2960 GTK_LIBS=`echo $GTK_LIBS | sed 's/-mt//'`
2961 fi
2962 dnl solaris also requires -lX11 for static lib
2963 if test "$wxUSE_SHARED" != "yes"; then
2964 GTK_LIBS="$GTK_LIBS -lX11"
2965 fi
2966 esac
2967 fi
2968
2969 dnl detect GTK1.x
2970 if test -z "$wx_cv_lib_gtk"; then
2971 if test "x$wxGTK_VERSION" = "x1" -o "x$wxGTK_VERSION" = "xany" ; then
2972 AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2973
2974 if test -z "$wx_cv_lib_gtk"; then
2975 AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2976 fi
2977 fi
2978 fi
2979
2980 if test -z "$wx_cv_lib_gtk"; then
2981 dnl looks better in AC_MSG_RESULT
2982 wx_cv_lib_gtk=none
2983 else
2984 dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2985 dnl subsequent runs
2986 wx_cv_cflags_gtk=$GTK_CFLAGS
2987 wx_cv_libs_gtk=`echo $GTK_LIBS | sed -e 's/ -l[[^ ]]*cairo[[^ ]]*//g'`
2988 fi
2989 ]
2990 )
2991
2992 dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2993 dnl enough
2994 if test "$gtk_version_cached" = 1; then
2995 AC_MSG_RESULT($wx_cv_lib_gtk)
2996 fi
2997
2998 case "$wx_cv_lib_gtk" in
2999 2.0) WXGTK20=1
3000 TOOLKIT_VERSION=2
3001 ;;
3002 1.2.7) WXGTK127=1
3003 WXGTK12=1
3004 ;;
3005 1.2.3) WXGTK12=1
3006 ;;
3007 *) AC_MSG_ERROR([
3008 The development files for GTK+ were not found. For GTK+ 2, please
3009 ensure that pkg-config is in the path and that gtk+-2.0.pc is
3010 installed. For GTK+ 1.2 please check that gtk-config is in the path,
3011 and that the version is 1.2.3 or above. Also check that the
3012 libraries returned by 'pkg-config gtk+-2.0 --libs' or 'gtk-config
3013 --libs' are in the LD_LIBRARY_PATH or equivalent.
3014 ])
3015 ;;
3016 esac
3017
3018 if test "$WXGTK20" = 1; then
3019 save_CFLAGS="$CFLAGS"
3020 save_LIBS="$LIBS"
3021 CFLAGS="$wx_cv_cflags_gtk $CFLAGS"
3022 LIBS="$LIBS $wx_cv_libs_gtk"
3023
3024 dnl gtk_icon_size_lookup is not available in the GTK+ headers
3025 dnl that have shipped with some versions of Sun's JDS. Not using
3026 dnl AC_CHECK_FUNCS here since it only checks the function exists
3027 dnl in the lib (not the header).
3028 AC_CHECK_DECLS([gtk_icon_size_lookup], [],
3029 [AC_DEFINE(NEED_GTK_ICON_SIZE_LOOKUP)],
3030 [#include <gtk/gtk.h>])
3031
3032 dnl test if we have at least GTK+ 2.6:
3033 AC_MSG_CHECKING([if GTK+ is version >= 2.6])
3034 AC_TRY_COMPILE([
3035 #include <gtk/gtk.h>
3036 ],
3037 [
3038 #if !GTK_CHECK_VERSION(2,6,0)
3039 Not GTK+ 2.6
3040 #endif
3041 ],
3042 [
3043 AC_DEFINE(__WXGTK26__)
3044 AC_DEFINE(__WXGTK24__)
3045 AC_MSG_RESULT([yes])
3046 ac_wxgtk26=1
3047 ],
3048 [
3049 AC_MSG_RESULT([no])
3050 ac_wxgtk26=0
3051 ])
3052
3053 if test "$ac_wxgtk26" = 0; then
3054 dnl test if we have at least GTK+ 2.4:
3055 AC_MSG_CHECKING([if GTK+ is version >= 2.4])
3056 AC_TRY_COMPILE([
3057 #include <gtk/gtk.h>
3058 ],
3059 [
3060 #if !GTK_CHECK_VERSION(2,4,0)
3061 Not GTK+ 2.4
3062 #endif
3063 ],
3064 [
3065 AC_DEFINE(__WXGTK24__)
3066 AC_MSG_RESULT([yes])
3067 ],
3068 [
3069 AC_MSG_RESULT([no])
3070 ])
3071 fi
3072
3073 CFLAGS="$save_CFLAGS"
3074 LIBS="$save_LIBS"
3075 else
3076 if test "$wxUSE_UNICODE" = "yes"; then
3077 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
3078 wxUSE_UNICODE=no
3079 fi
3080 fi
3081
3082 AC_LANG_POP
3083
3084 dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
3085 dnl have it but we do the check for the others)
3086 if test "$USE_DARWIN" != 1; then
3087 AC_CHECK_FUNCS(poll)
3088 fi
3089
3090 TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
3091 GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
3092
3093 AFMINSTALL=afminstall
3094 TOOLKIT=GTK
3095 GUIDIST=GTK_DIST
3096
3097 dnl test for XIM support in libgdk
3098 AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
3099
3100
3101 dnl test for external libxpm if we're configured to use it
3102 if test "$wxUSE_GPE" = "yes"; then
3103 AC_MSG_CHECKING(for gpewidget library)
3104 WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpewidget)
3105 if test "$ac_find_libraries" != "" ; then
3106 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3107 dnl -lgpewidget must be before all GTK libs and
3108 dnl we guess its path from the prefix
3109 GUI_TK_LIBRARY="-L${prefix}/lib -lgpewidget $GUI_TK_LIBRARY"
3110 WXGPE=1
3111 AC_MSG_RESULT([found in $ac_find_libraries])
3112 else
3113 AC_MSG_RESULT(not found)
3114 fi
3115
3116 dnl AC_MSG_CHECKING(for gpe library)
3117 dnl WX_PATH_FIND_LIBRARIES($SEARCH_LIB,gpe)
3118 dnl if test "$ac_find_libraries" != "" ; then
3119 dnl WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3120 dnl GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lgpe"
3121 dnl AC_MSG_RESULT(found in $ac_find_libraries)
3122 dnl else
3123 dnl AC_MSG_RESULT(not found)
3124 dnl fi
3125 fi
3126 fi
3127
3128 if test "$wxUSE_MGL" = 1; then
3129 AC_MSG_CHECKING(for SciTech MGL library)
3130 if test "x$MGL_ROOT" = x ; then
3131 AC_MSG_RESULT(not found)
3132 AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
3133 else
3134 AC_MSG_RESULT($MGL_ROOT)
3135 fi
3136
3137 AC_MSG_CHECKING(for libmgl location)
3138 dnl Find MGL library that we want
3139 dnl FIXME_MGL - test for MGL variants for freebsd etc.;
3140 dnl and for non-x86 versions
3141 case "${host}" in
3142 *-*-linux* )
3143 dnl glibc.so, glibc are for older versions of MGL,
3144 dnl x86/a, x86/so are used by >= 5.0 R11
3145 if test "x$wxUSE_SHARED" = xyes ; then
3146 mgl_os_candidates="linux/gcc/x86/so linux/gcc/x86/a linux/gcc/glibc.so linux/gcc/glibc"
3147 else
3148 mgl_os_candidates="linux/gcc/x86/a linux/gcc/x86/so linux/gcc/glibc linux/gcc/glibc.so"
3149 fi
3150 ;;
3151 *-pc-msdosdjgpp )
3152 mgl_os_candidates="dos32/dj2"
3153 ;;
3154 *)
3155 AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
3156 esac
3157
3158 mgl_lib_type=""
3159 mgl_os=""
3160
3161 for mgl_os_i in $mgl_os_candidates ; do
3162 if test "x$mgl_os" = x ; then
3163 if test "$wxUSE_DEBUG_FLAG" = yes ; then
3164 if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
3165 -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
3166 mgl_lib_type=debug
3167 mgl_os=$mgl_os_i
3168 fi
3169 fi
3170 if test "x$mgl_lib_type" = x ; then
3171 if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
3172 -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
3173 mgl_lib_type=release
3174 mgl_os=$mgl_os_i
3175 fi
3176 fi
3177 fi
3178 done
3179
3180 if test "x$mgl_os" = x ; then
3181 AC_MSG_RESULT(not found)
3182 AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
3183 fi
3184 AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
3185
3186 wxUSE_UNIVERSAL="yes"
3187
3188 TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
3189 GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
3190
3191 AFMINSTALL=afminstall
3192 TOOLKIT=MGL
3193 GUIDIST=MGL_DIST
3194 fi
3195
3196 if test "$wxUSE_DFB" = 1; then
3197 PKG_CHECK_MODULES(DIRECTFB,
3198 [directfb >= 0.9.22],
3199 [
3200 wxUSE_UNIVERSAL="yes"
3201 TOOLKIT_INCLUDE="$DIRECTFB_CFLAGS"
3202 GUI_TK_LIBRARY="$DIRECTFB_LIBS"
3203 TOOLKIT=DFB
3204 GUIDIST=DFB_DIST
3205 ],
3206 [
3207 AC_MSG_ERROR([DirectFB not found.])
3208 ]
3209 )
3210 fi
3211
3212 if test "$wxUSE_MICROWIN" = 1; then
3213 AC_MSG_CHECKING(for MicroWindows)
3214 if test "x$MICROWINDOWS" = x ; then
3215 AC_MSG_RESULT(not found)
3216 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
3217 else
3218 AC_MSG_RESULT($MICROWINDOWS)
3219 fi
3220
3221 if test -f $MICROWINDOWS/lib/libmwin.a; then
3222 AC_MSG_RESULT(MicroWindows' libraries found.)
3223 else
3224 AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
3225 fi
3226
3227 TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
3228 GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
3229
3230 wxUSE_UNIVERSAL="yes"
3231
3232 AFMINSTALL=afminstall
3233 TOOLKIT=MICROWIN
3234 GUIDIST=MICROWIN_DIST
3235
3236 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
3237 fi
3238
3239 dnl common part of X11 and Motif port checks
3240 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3241 dnl use standard macros to check for X headers/libs, this brings
3242 dnl support for the standard configure options --x-includes,
3243 dnl --x-libraries and --no-x
3244 AC_PATH_XTRA
3245
3246 if test "$no_x" = "yes"; then
3247 AC_MSG_ERROR([X11 not found, please use --x-includes and/or --x-libraries options (see config.log for details)])
3248 fi
3249
3250 dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE (and
3251 dnl also sometimes -RNONE) to X_CFLAGS and X_LIBS respectively, filter
3252 dnl this junk out
3253 GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//' | sed 's/ -RNONE//'`
3254 TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
3255 AFMINSTALL=afminstall
3256 COMPILED_X_PROGRAM=0
3257
3258 fi
3259
3260 if test "$wxUSE_X11" = 1; then
3261 if test "$wxUSE_NANOX" = "yes"; then
3262 AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
3263 if test "x$MICROWIN" = x ; then
3264 AC_MSG_RESULT(not found)
3265 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
3266 else
3267 AC_MSG_RESULT($MICROWIN)
3268 AC_DEFINE(wxUSE_NANOX)
3269 fi
3270 fi
3271
3272 if test "$wxUSE_UNICODE" = "yes"; then
3273 PKG_CHECK_MODULES(PANGOX, pangox,
3274 [
3275 CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3276 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
3277 ],
3278 [
3279 AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
3280 ]
3281 )
3282 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
3283 [
3284 CXXFLAGS="$PANGOFT2_CFLAGS $CXXFLAGS"
3285 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
3286 ],
3287 [
3288 AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
3289 wxUSE_PRINTING_ARCHITECTURE="no"
3290 ]
3291 )
3292 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
3293 [
3294 AC_DEFINE(HAVE_PANGO_XFT)
3295 CXXFLAGS="$PANGOXFT_CFLAGS $CXXFLAGS"
3296 GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
3297 ],
3298 [
3299 AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
3300 ]
3301 )
3302 save_CXXFLAGS="$CXXFLAGS"
3303 save_LIBS="$LIBS"
3304 CXXFLAGS="$PANGOX_CFLAGS $CXXFLAGS"
3305 LIBS="$LIBS $PANGOX_LIBS"
3306 AC_CHECK_FUNCS([pango_font_family_is_monospace])
3307 CXXFLAGS="$save_CXXFLAGS"
3308 LIBS="$save_LIBS"
3309 fi
3310
3311 wxUSE_UNIVERSAL="yes"
3312
3313 if test "$wxUSE_NANOX" = "yes"; then
3314 TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
3315 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__NANOX__ -DMWPIXEL_FORMAT=MWPF_TRUECOLOR0888 -DHAVE_FILEIO -DHAVE_BMP_SUPPORT=1 -DHAVE_GIF_SUPPORT=1 -DHAVE_PNM_SUPPORT=1 -DHAVE_XPM_SUPPORT=1 -DUNIX=1 -DUSE_EXPOSURE -DSCREEN_HEIGHT=480 -DSCREEN_WIDTH=640 -DSCREEN_DEPTH=4 -DX11=1"
3316 GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
3317 else
3318 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11"
3319 fi
3320
3321 TOOLKIT=X11
3322 GUIDIST=X11_DIST
3323 fi
3324
3325 if test "$wxUSE_MOTIF" = 1; then
3326 if test "$wxUSE_UNICODE" = "yes"; then
3327 AC_MSG_ERROR([Unicode configuration not supported with Motif])
3328 fi
3329
3330 AC_MSG_CHECKING(for Motif/Lesstif headers)
3331 WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
3332 if test "$ac_find_includes" != "" ; then
3333 AC_MSG_RESULT(found in $ac_find_includes)
3334 WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
3335 TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
3336 else
3337 save_CXXFLAGS=$CXXFLAGS
3338 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3339
3340 AC_TRY_COMPILE(
3341 [
3342 #include <Xm/Xm.h>
3343 ],
3344 [
3345 int version;
3346 version = xmUseVersion;
3347 ],
3348 [
3349 AC_MSG_RESULT(found in default search path)
3350 COMPILED_X_PROGRAM=1
3351 ],
3352 [
3353 AC_MSG_RESULT(no)
3354 AC_MSG_ERROR(please set CPPFLAGS to contain the location of Xm/Xm.h)
3355 ]
3356 )
3357
3358 CXXFLAGS=$save_CXXFLAGS
3359 fi
3360
3361
3362 AC_MSG_CHECKING(for Motif/Lesstif library)
3363 WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
3364
3365 if test "x$ac_find_libraries" != "x" ; then
3366 AC_MSG_RESULT(found in $ac_find_libraries)
3367
3368 WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
3369 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3370 else
3371 dnl it might happen that we found headers in one of the standard
3372 dnl paths but the libs are elsewhere but still in default (linker)
3373 dnl path -- try to compile a test program to check for this
3374 save_CXXFLAGS=$CXXFLAGS
3375 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3376 save_LIBS="$LIBS"
3377 LIBS="$GUI_TK_LIBRARY -lXm -lXmu -lXext -lX11"
3378
3379 AC_TRY_LINK(
3380 [
3381 #include <Xm/Xm.h>
3382 ],
3383 [
3384 int version;
3385 version = xmUseVersion;
3386 ],
3387 [
3388 AC_MSG_RESULT(found in default search path)
3389 COMPILED_X_PROGRAM=1
3390 ],
3391 [
3392 AC_MSG_RESULT(no)
3393 AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
3394 ]
3395 )
3396
3397 CXXFLAGS=$save_CXXFLAGS
3398 LIBS="$save_LIBS"
3399 fi
3400
3401 AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
3402 libp_link=""
3403 libsm_ice_link=""
3404 libs_found=0
3405 for libp in "" " -lXp"; do
3406 if test "$libs_found" = "0"; then
3407 for libsm_ice in "" " -lSM -lICE"; do
3408 if test "$libs_found" = "0"; then
3409 save_LIBS="$LIBS"
3410 LIBS="$GUI_TK_LIBRARY -lXm ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
3411 save_CXXFLAGS=$CXXFLAGS
3412 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3413
3414 AC_TRY_LINK(
3415 [
3416 #include <Xm/Xm.h>
3417 #include <Xm/List.h>
3418 ],
3419 [
3420 XmString string = NULL;
3421 Widget w = NULL;
3422 int position = 0;
3423 XmListAddItem(w, string, position);
3424 ],
3425 [
3426 libp_link="$libp"
3427 libsm_ice_link="$libsm_ice"
3428 AC_MSG_RESULT(
3429 [need${libp_link}${libsm_ice_link}])
3430 libs_found=1
3431 ], []
3432 )
3433
3434 LIBS="$save_LIBS"
3435 CXXFLAGS=$save_CXXFLAGS
3436 fi
3437 done
3438 fi
3439 done
3440
3441 if test "$libs_found" = "0"; then
3442 AC_MSG_RESULT([can't find the right libraries])
3443 AC_MSG_ERROR([can't link a simple motif program])
3444 fi
3445
3446 dnl this seems to be needed under IRIX and shouldn't do any harm
3447 dnl elsewhere
3448 AC_CHECK_LIB(Sgm, [SgCreateList], [libsgm_link=" -lSgm"])
3449
3450 save_CXXFLAGS=$CXXFLAGS
3451 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3452
3453 AC_CACHE_CHECK([for Motif 2],
3454 wx_cv_lib_motif2,
3455 AC_TRY_COMPILE([
3456 #include <Xm/Xm.h>
3457 ],
3458 [
3459 #if XmVersion < 2000
3460 Not Motif 2
3461 #endif
3462 ],
3463 wx_cv_lib_motif2="yes",
3464 wx_cv_lib_motif2="no"))
3465 if test "$wx_cv_lib_motif2" = "yes"; then
3466 AC_DEFINE(__WXMOTIF20__,1)
3467 else
3468 AC_DEFINE(__WXMOTIF20__,0)
3469 fi
3470
3471 AC_CACHE_CHECK([whether Motif is Lesstif],
3472 wx_cv_lib_lesstif,
3473 AC_TRY_COMPILE([
3474 #include <Xm/Xm.h>
3475 ],
3476 [
3477 #if !defined(LesstifVersion) || LesstifVersion <= 0
3478 Not Lesstif
3479 #endif
3480 ],
3481 wx_cv_lib_lesstif="yes",
3482 wx_cv_lib_lesstif="no")
3483 )
3484 if test "$wx_cv_lib_lesstif" = "yes"; then
3485 AC_DEFINE(__WXLESSTIF__,1)
3486 else
3487 AC_DEFINE(__WXLESSTIF__,0)
3488 fi
3489
3490 CXXFLAGS=$save_CXXFLAGS
3491
3492 GUI_TK_LIBRARY="$GUI_TK_LIBRARY${libsgm_link} -lXm${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
3493 TOOLKIT=MOTIF
3494 GUIDIST=MOTIF_DIST
3495 fi
3496
3497 dnl more tests common to X11 and Motif:
3498 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
3499 dnl test for external libxpm if we're configured to use it
3500 if test "$wxUSE_LIBXPM" = "sys"; then
3501 AC_MSG_CHECKING(for Xpm library)
3502 WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
3503 if test "$ac_find_libraries" != "" ; then
3504 WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
3505 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
3506 AC_MSG_RESULT(found in $ac_find_libraries)
3507
3508 AC_CACHE_CHECK([for X11/xpm.h],
3509 wx_cv_x11_xpm_h,
3510 [
3511 save_CXXFLAGS=$CXXFLAGS
3512 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3513
3514 AC_TRY_COMPILE(
3515 [
3516 #include <X11/xpm.h>
3517 ],
3518 [
3519 int version;
3520 version = XpmLibraryVersion();
3521 ],
3522 wx_cv_x11_xpm_h=yes,
3523 wx_cv_x11_xpm_h=no
3524 )
3525
3526 CXXFLAGS=$save_CXXFLAGS
3527 ]
3528 )
3529
3530 if test $wx_cv_x11_xpm_h = "yes"; then
3531 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXpm"
3532 AC_DEFINE(wxHAVE_LIB_XPM)
3533 else
3534 AC_MSG_WARN([built-in less efficient XPM decoder will be used])
3535 fi
3536 fi
3537
3538 fi
3539
3540 dnl XShapeQueryExtension checks: first the library, then prototype
3541 AC_CHECK_LIB([Xext], [XShapeQueryExtension],
3542 [
3543 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
3544 wxHAVE_XEXT_LIB=1
3545 ],
3546 [], [$GUI_TK_LIBRARY -lX11])
3547
3548 if test "$wxHAVE_XEXT_LIB" = 1; then
3549 save_CXXFLAGS="$CXXFLAGS"
3550 CXXFLAGS="$TOOLKIT_INCLUDE $CXXFLAGS"
3551
3552 AC_MSG_CHECKING([for X11/extensions/shape.h])
3553 AC_TRY_COMPILE([
3554 #include <X11/Xlib.h>
3555 #include <X11/extensions/shape.h>
3556 ],
3557 [
3558 int dummy1, dummy2;
3559 XShapeQueryExtension((Display*)NULL,
3560 (int*)NULL, (int*)NULL);
3561 ],
3562 [
3563 AC_DEFINE(HAVE_XSHAPE)
3564 AC_MSG_RESULT([found])
3565 ],
3566 [
3567 AC_MSG_RESULT([not found])
3568 ])
3569 CXXFLAGS="$save_CXXFLAGS"
3570
3571 fi
3572 fi
3573
3574 if test "$wxUSE_MAC" = 1; then
3575 AC_MSG_CHECKING([for compiler syntax to enable Pascal strings])
3576 if test "$GCC" = yes; then
3577 AC_MSG_RESULT([gcc])
3578 CPPFLAGS_PASCAL="-fpascal-strings"
3579 elif test "`echo $CXX | sed -e 's@.*/@@'`" = "xlC"; then
3580 AC_MSG_RESULT([xlc])
3581 CPPFLAGS_PASCAL="-qmacpstr"
3582 else
3583 AC_MSG_RESULT([none])
3584 fi
3585
3586 if test "x$wxUSE_UNIX" = "xyes"; then
3587 CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -I/Developer/Headers/FlatCarbon $CPPFLAGS"
3588 else
3589 dnl platform.h needs TARGET_CARBON before setup.h
3590 CPPFLAGS="$CPPFLAGS_PASCAL -I\${top_srcdir}/src/mac/carbon/morefilex -DTARGET_CARBON $CPPFLAGS"
3591 fi
3592
3593 TOOLKIT=MAC
3594 dnl we can't call this MAC_DIST or autoconf thinks its a macro
3595 GUIDIST=MACX_DIST
3596 dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
3597 dnl are different, so they need different names:
3598 WXBASEPORT="_carbon"
3599 fi
3600
3601 if test "$wxUSE_COCOA" = 1; then
3602 TOOLKIT=COCOA
3603 GUIDIST=COCOA_DIST
3604 fi
3605
3606 if test "$wxUSE_PM" = 1; then
3607 TOOLKIT=PM
3608 GUIDIST=PM_DIST
3609 AC_CACHE_CHECK([for type SPBCDATA],
3610 wx_cv_spbcdata,
3611 [
3612 AC_TRY_COMPILE(
3613 [
3614 #define INCL_PM
3615 #include <os2.h>
3616 ],
3617 [
3618 SPBCDATA test;
3619 ],
3620 wx_cv_spbcdata=yes,
3621 wx_cv_spbcdata=no
3622 )
3623 ]
3624 )
3625
3626 if test $wx_cv_spbcdata = "yes"; then
3627 AC_DEFINE(HAVE_SPBCDATA)
3628 fi
3629 fi
3630
3631 dnl the name of the directory where the files for this toolkit live
3632 if test "$TOOLKIT" = "PM" ; then
3633 TOOLKIT_DIR="os2"
3634 else
3635 TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
3636 fi
3637
3638 if test "$wxUSE_UNIVERSAL" = "yes"; then
3639 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
3640 WIDGET_SET=univ
3641 fi
3642
3643 dnl distribute samples/demos/utils with GUI versions
3644 GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
3645 DISTDIR="wx\$(TOOLKIT)"
3646 else
3647 USE_GUI=0
3648
3649 dnl this doesn't quite work right for wxBase, but the places
3650 dnl where it is wrong aren't fatal (yet) though.
3651 TOOLKIT_DIR="base"
3652
3653 dnl the sources, their dependenices and the headers
3654 if test "$USE_WIN32" = 1 ; then
3655 dnl yes, the toolkit for wxBase on win32 is actually MSW
3656 dnl wxBase on unix does not need a 'TOOLKIT' defined.
3657 TOOLKIT="MSW"
3658 fi
3659
3660 dnl distribute only wxBase sources/headers
3661 GUIDIST="BASE_DIST"
3662 DISTDIR="wxBase"
3663 fi
3664
3665 dnl ---------------------------------------------------------------------------
3666 dnl Optional libraries included when system library is not used
3667 dnl ---------------------------------------------------------------------------
3668
3669 dnl do this after test for X11 above so that we have a chance of finding Xlib.h
3670 if test "$wxUSE_GUI" = "yes"; then
3671 if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
3672 dnl defines HAVE_X11_XKBLIB_H
3673 AC_CHECK_HEADERS(X11/Xlib.h)
3674 AC_CHECK_HEADERS([X11/XKBlib.h], [], [],
3675 [
3676 #if HAVE_X11_XLIB_H
3677 #include <X11/Xlib.h>
3678 #endif
3679 ])
3680 fi
3681 fi
3682
3683
3684 dnl ----------------------------------------------------------------
3685 dnl iODBC support
3686 dnl ----------------------------------------------------------------
3687
3688 IODBC_C_SRC=""
3689
3690
3691 dnl ODBC is handled separately for MSW
3692 if test "$TOOLKIT" != "MSW" ; then
3693
3694 if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
3695 dnl This is not ideal we really ough to use the unixodbc-config
3696 dnl or iodbc-config if they exist.
3697
3698 AC_CHECK_HEADER([sql.h], [found_sql_h=1])
3699 if test "x$found_sql_h" = "x1" ; then
3700 AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
3701 [
3702 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
3703 [
3704 AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
3705 ])
3706 ])
3707 fi
3708 if test "x$ODBC_LINK" = "x" ; then
3709 if test "$wxUSE_ODBC" = "sys" ; then
3710 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
3711 else
3712 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
3713 wxUSE_ODBC=builtin
3714 fi
3715 else
3716 dnl we are using the system library
3717 wxUSE_ODBC=sys
3718 fi
3719 fi
3720
3721 if test "$wxUSE_ODBC" = "builtin" ; then
3722 AC_DEFINE(wxUSE_BUILTIN_IODBC)
3723 fi
3724 fi
3725
3726 if test "$wxUSE_ODBC" != "no" ; then
3727 AC_DEFINE(wxUSE_ODBC)
3728 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3729
3730 dnl is this still necessary?
3731 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_IODBC_"
3732 fi
3733
3734 dnl ---------------------------------------------------------------------------
3735 dnl wxDisplay Sanity checks
3736 dnl ---------------------------------------------------------------------------
3737
3738 if test "$wxUSE_DISPLAY" = "yes"; then
3739 dnl ---------------------------------------------------------------------------
3740 dnl Xinerama (for unix ) - Brian Victor
3741 dnl ---------------------------------------------------------------------------
3742 if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1; then
3743 AC_MSG_CHECKING([for Xinerama])
3744 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xinerama)
3745 if test "$ac_find_libraries" != "" ; then
3746 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3747 if test "$ac_path_to_link" != " -L/usr/lib" ; then
3748 LDFLAGS="$LDFLAGS $ac_path_to_link"
3749 fi
3750 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXinerama"
3751 AC_MSG_RESULT([yes])
3752
3753 AC_MSG_CHECKING([for Xxf86vm extension])
3754 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],Xxf86vm)
3755 if test "$ac_find_libraries" != "" ; then
3756 AC_MSG_RESULT([yes])
3757 AC_CHECK_HEADERS([X11/extensions/xf86vmode.h],
3758 [
3759 GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXxf86vm"
3760 ],
3761 [],
3762 [
3763 #if HAVE_X11_XLIB_H
3764 #include <X11/Xlib.h>
3765 #endif
3766 ])
3767 else
3768 AC_MSG_RESULT([no])
3769 fi
3770
3771 else
3772 AC_MSG_RESULT([no])
3773 AC_MSG_WARN([Xinerama not found; disabling wxDisplay])
3774 wxUSE_DISPLAY="no"
3775 fi
3776 elif test "$wxUSE_MSW" = 1; then
3777 dnl ---------------------------------------------------------------------------
3778 dnl DirectDraw for MSW - optionally used by WxDisplay.
3779 dnl ---------------------------------------------------------------------------
3780 AC_CHECK_HEADERS([ddraw.h], [], [], [#include <windows.h>])
3781 fi
3782 fi
3783
3784 dnl ---------------------------------------------------------------------------
3785 dnl OpenGL libraries
3786 dnl ---------------------------------------------------------------------------
3787
3788 USE_OPENGL=0
3789 if test "$wxUSE_OPENGL" = "yes"; then
3790 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
3791 OPENGL_LIBS="-framework OpenGL -framework AGL"
3792 elif test "$wxUSE_MSW" = 1; then
3793 OPENGL_LIBS="-lopengl32 -lglu32"
3794 else
3795 dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
3796 dnl GL/gl.h on Mac OS X where it is located in
3797 dnl /usr/X11R6/include/GL/gl.h:
3798
3799 WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
3800 if test "$ac_find_includes" != "" ; then
3801 AC_MSG_RESULT(found in $ac_find_includes)
3802 WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
3803 CPPFLAGS="$ac_path_to_include $CPPFLAGS"
3804 fi
3805
3806 AC_CHECK_HEADER(GL/gl.h,
3807 [
3808 found_gl=0
3809
3810 AC_MSG_CHECKING([for -lGL])
3811 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
3812 if test "$ac_find_libraries" != "" ; then
3813 AC_MSG_RESULT([yes])
3814
3815 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3816 if test "$ac_path_to_link" != " -L/usr/lib" ; then
3817 LDFLAGS_GL="$ac_path_to_link"
3818 fi
3819
3820 dnl don't suppose that libGL and libGLU are always in the
3821 dnl same directory -- this is not true for some common
3822 dnl distributions
3823 AC_MSG_CHECKING([for -lGLU])
3824 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3825 if test "$ac_find_libraries" != "" ; then
3826 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3827 if test "$ac_path_to_link" != " -L/usr/lib" -a \
3828 "$ac_path_to_link" != "$LDFLAGS_GL"; then
3829 LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3830 fi
3831
3832 found_gl=1
3833 OPENGL_LIBS="-lGL -lGLU"
3834 AC_MSG_RESULT([yes])
3835 else
3836 AC_MSG_RESULT([no])
3837 fi
3838 else
3839 AC_MSG_RESULT([no])
3840 fi
3841
3842 if test "$found_gl" != 1; then
3843 AC_MSG_CHECKING([for -lMesaGL])
3844 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3845 if test "$ac_find_libraries" != "" ; then
3846 WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3847 LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3848 OPENGL_LIBS="-lMesaGL -lMesaGLU"
3849 AC_MSG_RESULT([yes])
3850 else
3851 AC_MSG_RESULT([no])
3852 fi
3853 fi
3854 ])
3855
3856 if test "x$OPENGL_LIBS" = "x"; then
3857 dnl it should be an error and not a warning because OpenGL is not on
3858 dnl by default and so if it had been explicitly requested, we
3859 dnl shouldn't just fall back to compiling the library without it
3860 AC_MSG_ERROR(OpenGL libraries not available)
3861 fi
3862 fi
3863
3864 if test "$wxUSE_OPENGL" = "yes"; then
3865 USE_OPENGL=1
3866 AC_DEFINE(wxUSE_OPENGL)
3867 AC_DEFINE(wxUSE_GLCANVAS)
3868 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3869 fi
3870 fi
3871
3872
3873 dnl the symbol which allows conditional compilation for the given toolkit
3874 if test -n "$TOOLKIT" ; then
3875 TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3876 fi
3877
3878
3879 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3880
3881 if test "$wxUSE_SHARED" = "yes"; then
3882 case "${host}" in
3883 *-pc-msdosdjgpp )
3884 dnl only static for now
3885 wxUSE_SHARED=no
3886 AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3887 ;;
3888 esac
3889 fi
3890
3891 if test "$wxUSE_SHARED" = "yes"; then
3892
3893 dnl use versioned symbols if available on the platform
3894 WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
3895
3896 case "${host}" in
3897 *-*-linux* | *-*-gnu* )
3898 SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3899 WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3900 ;;
3901
3902 *-*-solaris2* )
3903 if test "$GCC" = yes ; then
3904 dnl newer versions of gcc need -isystem to compile X headers on
3905 dnl Solaris (which use old style C syntax)
3906 CPPFLAGS="-isystem /usr/openwin/include $CPPFLAGS"
3907
3908 dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3909 dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3910 saveLdflags="$LDFLAGS"
3911 LDFLAGS="$saveLdflags -Wl,-rpath,/"
3912 AC_MSG_CHECKING([if the linker accepts -rpath])
3913 AC_TRY_LINK(
3914 [],[],
3915 [
3916 AC_MSG_RESULT([yes])
3917 SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3918 WXCONFIG_RPATH="-Wl,-rpath,\$libdir"
3919 ],[
3920 AC_MSG_RESULT([no])
3921 AC_MSG_CHECKING([if the linker accepts -R])
3922 LDFLAGS="$saveLdflags -Wl,-R,/"
3923 AC_TRY_LINK(
3924 [],[],
3925 [
3926 AC_MSG_RESULT([yes])
3927 SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"
3928 WXCONFIG_RPATH="-Wl,-R,\$libdir"
3929 ],[
3930 AC_MSG_RESULT([no])
3931 ])
3932 ])
3933 LDFLAGS="$saveLdflags"
3934 else
3935 SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
3936 WXCONFIG_RPATH="-R\$libdir"
3937 fi
3938 ;;
3939
3940 *-*-darwin* )
3941 install_name_tool=`which install_name_tool`
3942 if test "$install_name_tool" -a -x "$install_name_tool"; then
3943 SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3944 cat <<EOF >change-install-names
3945 #!/bin/sh
3946 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3947 inst_cmd="install_name_tool "
3948 for i in \${libnames} ; do
3949 inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3950 done
3951 \${inst_cmd} \${3}
3952 EOF
3953 chmod +x change-install-names
3954 fi
3955 ;;
3956
3957 *-*-cygwin* | *-*-mingw32* )
3958 dnl this one shouldn't be used for the library build so put it in a
3959 dnl separate variable from WXCONFIG_CPPFLAGS
3960 WXCONFIG_ONLY_CPPFLAGS="$WXCONFIG_ONLY_CPPFLAGS -DWXUSINGDLL"
3961 ;;
3962
3963 *-*-hpux* )
3964 SAMPLES_RPATH_FLAG="-Wl,+b,\$(top_builddir)lib"
3965 WXCONFIG_RPATH="-Wl,+b,\$libdir"
3966 ;;
3967
3968 esac
3969
3970 if test $wxUSE_RPATH = "no"; then
3971 SAMPLES_RPATH_FLAG=''
3972 SAMPLES_RPATH_POSTLINK=''
3973 WXCONFIG_RPATH=''
3974 fi
3975
3976 SHARED=1
3977
3978 else
3979
3980 config_linkage_component="-static"
3981 SHARED=0
3982
3983 fi
3984
3985
3986 UNICODE=0
3987 lib_unicode_suffix=
3988 WX_CHARTYPE="ansi"
3989 if test "$wxUSE_UNICODE" = "yes"; then
3990 lib_unicode_suffix=u
3991 WX_CHARTYPE="unicode"
3992 UNICODE=1
3993 fi
3994
3995 lib_debug_suffix=
3996 WX_DEBUGTYPE="release"
3997 DEBUG_FLAG=0
3998 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3999 lib_debug_suffix=d
4000 WX_DEBUGTYPE="debug"
4001 DEBUG_FLAG=1
4002 fi
4003
4004 WX_FLAVOUR=${WX_FLAVOUR:+-$WX_FLAVOUR}
4005 WX_LIB_FLAVOUR=`echo $WX_FLAVOUR | tr '-' '_'`
4006
4007 DEBUG_INFO=0
4008 if test "$wxUSE_DEBUG_INFO" = "yes"; then
4009 DEBUG_INFO=1
4010 fi
4011
4012 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
4013
4014 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}"
4015
4016 TOOLCHAIN_FULLNAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}-${WX_CHARTYPE}-${WX_DEBUGTYPE}${config_linkage_component}-${WX_RELEASE}${WX_FLAVOUR}"
4017
4018 if test "$cross_compiling" = "yes"; then
4019 HOST_SUFFIX="-$host_alias"
4020 TOOLCHAIN_NAME="$TOOLCHAIN_NAME$HOST_SUFFIX"
4021 TOOLCHAIN_FULLNAME="${host_alias}-$TOOLCHAIN_FULLNAME"
4022 fi
4023
4024 dnl library link name
4025 dnl These just save us from exporting lib_{unicode,debug,flavour}_suffix.
4026 dnl If we ever need to do that, we won't need to keep these.
4027 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4028 if test "${TOOLKIT_DIR}" = "os2"; then
4029 WX_LIBRARY_BASENAME_GUI="wx_pm${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4030 else
4031 WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}${WX_LIB_FLAVOUR}"
4032 fi
4033
4034
4035
4036 if test "$wxUSE_COCOA" = 1; then
4037 AC_LANG_SAVE
4038 AC_WX_LANG_OBJECTIVEC
4039 dnl Recent AppKit/NSEvent.h include parts of IOKit which eventually
4040 dnl gets IOKit/graphics/IOGraphicsTypes.h included which typedefs
4041 dnl Point but only if MacTypes.h was not included first. Of course,
4042 dnl if MacTypes.h is included later then you're screwed when it
4043 dnl tries to typedef Point. Defining __Point__ will cause IOGraphicsTypes.h
4044 dnl to not typedef Point and thus fix the problem.
4045 AC_MSG_CHECKING([if AppKit/NSEvent.h conflicts with CoreFoundation])
4046 AC_TRY_COMPILE([#include <AppKit/NSEvent.h>
4047 #include <CoreFoundation/CoreFoundation.h>
4048 ],[],
4049 [AC_MSG_RESULT([no])],
4050 [AC_MSG_RESULT([yes])
4051 AC_MSG_CHECKING([if defining __Point__ will fix it])
4052 AC_TRY_COMPILE([#define __Point__ 1
4053 #include <AppKit/NSEvent.h>
4054 #include <CoreFoundation/CoreFoundation.h>
4055 ],[],
4056 [AC_MSG_RESULT([yes])
4057 AC_DEFINE(__Point__)
4058 ],
4059 [AC_MSG_FAILURE([no])]
4060 )]
4061 )
4062 AC_LANG_RESTORE
4063 fi
4064
4065 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
4066 dnl base name of the resource file for wxMac must be the same
4067 dnl as library installation base name (-install_name)
4068 WX_RESOURCES_MACOSX_ASCII="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.r"
4069 WX_RESOURCES_MACOSX_DATA="libwx_${TOOLCHAIN_NAME}.${wx_release_number}.rsrc"
4070
4071 dnl add the resources target for wxMac
4072 LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
4073
4074 AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
4075 AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
4076 AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
4077
4078 MACSETFILE="\$(SETFILE)"
4079
4080 dnl resources are bundled both with shared library and applications
4081 dnl since the carb resource *must* be included in the application
4082 if test "$wxUSE_MAC" = 1; then
4083 POSTLINK_COMMAND="\$(REZ) -d __DARWIN__ -t APPL Carbon.r -o"
4084 RESCOMP="$REZ"
4085 WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL Carbon.r -o"
4086 else
4087 POSTLINK_COMMAND="echo -n | \$(REZ) -d __DARWIN__ -t APPL ${LIBWXMACRES}"
4088 RESCOMP="echo -n \| $REZ"
4089 WXCONFIG_RESFLAGS="-d __DARWIN__ -t APPL \$libdir/$WX_RESOURCES_MACOSX_ASCII"
4090 fi
4091
4092 else
4093 dnl default value is to (silently) do nothing in the makefile
4094 MACSETFILE="@true"
4095
4096 if test "$wxUSE_PM" = 1; then
4097 RESCOMP="emxbind"
4098 WXCONFIG_RESFLAGS="-ep"
4099
4100 dnl Is this one really used anywhere for pm?
4101 POSTLINK_COMMAND="$RESCOMP $WXCONFIG_RESFLAGS"
4102 else
4103 POSTLINK_COMMAND="@true"
4104 fi
4105
4106 fi
4107
4108
4109 dnl ---------------------------------------------------------------------------
4110 dnl Checks for typedefs
4111 dnl ---------------------------------------------------------------------------
4112
4113 dnl defines mode_t if not already defined
4114 AC_TYPE_MODE_T
4115 dnl defines off_t if not already defined
4116 AC_TYPE_OFF_T
4117 dnl defines pid_t if not already defined
4118 AC_TYPE_PID_T
4119 dnl defines size_t if not already defined
4120 AC_TYPE_SIZE_T
4121 dnl defines uid_t and gid_t if not already defined
4122 AC_TYPE_UID_T
4123
4124 dnl sets HAVE_SSIZE_T if ssize_t is defined
4125 AC_CHECK_TYPES(ssize_t)
4126
4127 dnl check what exactly size_t is on this machine - this is necessary to avoid
4128 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
4129 AC_CACHE_CHECK([if size_t is unsigned int],
4130 wx_cv_size_t_is_uint,
4131 [
4132 dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
4133 dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
4134 dnl methods in a local class (i.e. class inside a function) declaration
4135 dnl without any objections!!
4136 dnl
4137 dnl hence the hack below: we must have Foo at global scope!
4138 AC_TRY_COMPILE([#include <stddef.h>],
4139 [
4140 return 0; }
4141
4142 struct Foo { void foo(size_t); void foo(unsigned int); };
4143
4144 int bar() {
4145 ],
4146 wx_cv_size_t_is_uint=no,
4147 wx_cv_size_t_is_uint=yes
4148 )
4149 ]
4150 )
4151
4152 if test "$wx_cv_size_t_is_uint" = "yes"; then
4153 AC_DEFINE(wxSIZE_T_IS_UINT)
4154 else
4155 AC_CACHE_CHECK([if size_t is unsigned long],
4156 wx_cv_size_t_is_ulong,
4157 AC_TRY_COMPILE([#include <stddef.h>],
4158 [
4159 return 0; }
4160
4161 struct Foo { void foo(size_t); void foo(unsigned long); };
4162
4163 int bar() {
4164 ],
4165 wx_cv_size_t_is_ulong=no,
4166 wx_cv_size_t_is_ulong=yes
4167 )
4168 )
4169
4170 if test "$wx_cv_size_t_is_ulong" = "yes"; then
4171 AC_DEFINE(wxSIZE_T_IS_ULONG)
4172 fi
4173 fi
4174
4175 dnl ---------------------------------------------------------------------------
4176 dnl Checks for structures
4177 dnl ---------------------------------------------------------------------------
4178
4179 dnl does passwd struct has the pw_gecos field?
4180 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
4181 [
4182 AC_TRY_COMPILE([#include <pwd.h>],
4183 [
4184 char *p;
4185 struct passwd *pw;
4186 p = pw->pw_gecos;
4187 ],
4188 [
4189 wx_cv_struct_pw_gecos=yes
4190 ],
4191 [
4192 wx_cv_struct_pw_gecos=no
4193 ]
4194 )
4195 ]
4196 )
4197
4198 if test "$wx_cv_struct_pw_gecos" = "yes"; then
4199 AC_DEFINE(HAVE_PW_GECOS)
4200 fi
4201
4202 dnl ---------------------------------------------------------------------------
4203 dnl Check for functions
4204 dnl ---------------------------------------------------------------------------
4205
4206 dnl don't check for wchar_t functions if we haven't got wchar_t itself
4207 if test "$wxUSE_WCHAR_T" = "yes"; then
4208 AC_DEFINE(wxUSE_WCHAR_T)
4209
4210 dnl check for wcslen in all possible places
4211 WCSLEN_FOUND=0
4212 WCHAR_LINK=
4213 AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
4214
4215 if test "$WCSLEN_FOUND" = 0; then
4216 if test "$TOOLKIT" = "MSW"; then
4217 AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
4218 else
4219 AC_CHECK_LIB(w, wcslen, [
4220 WCHAR_LINK=" -lw"
4221 WCSLEN_FOUND=1
4222 ])
4223 fi
4224 fi
4225
4226 if test "$WCSLEN_FOUND" = 1; then
4227 AC_DEFINE(HAVE_WCSLEN)
4228 fi
4229
4230 dnl On HP-UX aCC need this define to find mbstrtowcs() &c
4231 dnl Can't be used for g++ since the mbstate_t in wchar.h can conflict
4232 dnl with g++'s in <cwchar> (unless -D_INCLUDE__STDC_A1_SOURCE is in the
4233 dnl flags when g++ is configured, it will declare it's own).
4234 if test "$USE_HPUX" = 1 -a "$GCC" != "yes"; then
4235 CPPFLAGS="-D_INCLUDE__STDC_A1_SOURCE $CPPFLAGS"
4236 fi
4237
4238 dnl Try to use wcsrtombs instead of wcstombs which is buggy in old GNU
4239 dnl libc versions if possible. AC_CHECK_FUNCS only checks it's in the
4240 dnl library, not the header, so do a header check for mbstate_t first.
4241 AC_CHECK_TYPES([mbstate_t],
4242 [AC_CHECK_FUNCS(wcsrtombs)],
4243 [],
4244 [#include <wchar.h>])
4245 else
4246 AC_MSG_WARN([Wide character support is unavailable])
4247 fi
4248
4249 dnl check for vsnprintf() -- a safe version of vsprintf())
4250 dnl
4251 dnl the trouble here is that on some systems (e.g HP-UX 10) this function is
4252 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
4253 dnl stupidly, provides a dummy function declaration inside its extension)
4254 dnl succeeds, even with C++ compiler, but the compilation of wxWidgets fails
4255 dnl
4256 dnl so we first check if the function is in the library
4257 AC_CHECK_FUNCS(snprintf vsnprintf)
4258
4259 if test "$ac_cv_func_vsnprintf" = "yes"; then
4260 dnl yes it is -- now check if it is in the headers
4261 AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
4262 [
4263 dnl our troubles are not over: HP-UX 11 prototypes vsnprintf() as
4264 dnl taking "char *" and not "const char *" while Metrowerks does
4265 dnl provide a correct vsnprintf declaration but in C++ mode it's
4266 dnl always in std namespace and so we have to bring it in scope
4267 AC_TRY_COMPILE(
4268 [
4269 #include <stdio.h>
4270 #include <stdarg.h>
4271 #ifdef __MSL__
4272 #if __MSL__ >= 0x6000
4273 namespace std {}
4274 using namespace std;
4275 #endif
4276 #endif
4277 ],
4278 [
4279 char *buf;
4280 va_list ap;
4281 vsnprintf(buf, 10u, "%s", ap);
4282 ],
4283 wx_cv_func_vsnprintf_decl=yes,
4284 wx_cv_func_vsnprintf_decl=no
4285 )
4286 ]
4287 )
4288
4289 if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
4290 AC_DEFINE(HAVE_VSNPRINTF_DECL)
4291
4292 dnl we know there is a vsnprintf declaration, but some old headers
4293 dnl may have one taking a "char *" format instead of "const char *"
4294 AC_CACHE_CHECK([if vsnprintf declaration is broken], wx_cv_func_broken_vsnprintf_decl,
4295 [
4296 AC_TRY_COMPILE(
4297 [
4298 #include <stdio.h>
4299 #include <stdarg.h>
4300 #ifdef __MSL__
4301 #if __MSL__ >= 0x6000
4302 namespace std {}
4303 using namespace std;
4304 #endif
4305 #endif
4306 ],
4307 [
4308 char *buf;
4309 va_list ap;
4310 const char *fmt = "%s";
4311 vsnprintf(buf, 10u, fmt, ap);
4312 ],
4313 wx_cv_func_broken_vsnprintf_decl=no,
4314 wx_cv_func_broken_vsnprintf_decl=yes
4315 )
4316 ]
4317 )
4318
4319 if test "$wx_cv_func_broken_vsnprintf_decl" = "yes"; then
4320 AC_DEFINE(HAVE_BROKEN_VSNPRINTF_DECL)
4321 fi
4322 fi
4323 fi
4324
4325 dnl the same as above but for snprintf() now: it's not present in at least AIX
4326 dnl 4.2 headers
4327 if test "$ac_cv_func_snprintf" = "yes"; then
4328 AC_CACHE_CHECK([for snprintf declaration], wx_cv_func_snprintf_decl,
4329 [
4330 AC_TRY_COMPILE(
4331 [
4332 #include <stdio.h>
4333 #include <stdarg.h>
4334 #ifdef __MSL__
4335 #if __MSL__ >= 0x6000
4336 namespace std {}
4337 using namespace std;
4338 #endif
4339 #endif
4340 ],
4341 [
4342 char *buf;
4343 snprintf(buf, 10u, "%s", "wx");
4344 ],
4345 wx_cv_func_snprintf_decl=yes,
4346 wx_cv_func_snprintf_decl=no
4347 )
4348 ]
4349 )
4350
4351 if test "$wx_cv_func_snprintf_decl" = "yes"; then
4352 AC_DEFINE(HAVE_SNPRINTF_DECL)
4353
4354 dnl we know there is an snprintf declaration, but some old headers
4355 dnl may have one taking a "char *" format instead of "const char *"
4356 AC_CACHE_CHECK([if snprintf declaration is broken], wx_cv_func_broken_snprintf_decl,
4357 [
4358 AC_TRY_COMPILE(
4359 [
4360 #include <stdio.h>
4361 #include <stdarg.h>
4362 #ifdef __MSL__
4363 #if __MSL__ >= 0x6000
4364 namespace std {}
4365 using namespace std;
4366 #endif
4367 #endif
4368 ],
4369 [
4370 char *buf;
4371 const char *fmt = "%s";
4372 snprintf(buf, 10u, fmt, "wx");
4373 ],
4374 wx_cv_func_broken_snprintf_decl=no,
4375 wx_cv_func_broken_snprintf_decl=yes
4376 )
4377 ]
4378 )
4379
4380 if test "$wx_cv_func_broken_snprintf_decl" = "yes"; then
4381 AC_DEFINE(HAVE_BROKEN_SNPRINTF_DECL)
4382 fi
4383 fi
4384
4385 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
4386
4387 dnl check if snprintf() has support for positional arguments
4388 dnl NB: if snprintf() has positional support we can safely suppose that also
4389 dnl other *printf() functions support them as they all belong to the same
4390 dnl family and they all fallback to the same implementation
4391 AC_CACHE_CHECK([if snprintf supports positional arguments], wx_cv_func_snprintf_pos_params,
4392 [
4393 AC_TRY_RUN(
4394 [
4395 #include <stdio.h>
4396
4397 int main (void)
4398 {
4399 char buffer[128];
4400 snprintf (buffer, 128, "%2\$d %3\$d %1\$d", 1, 2, 3);
4401 if (strcmp ("2 3 1", buffer) == 0)
4402 exit (0);
4403 exit (1);
4404 }
4405 ],
4406 wx_cv_func_snprintf_pos_params=no,
4407 wx_cv_func_snprintf_pos_params=yes,
4408 dnl be pessimistic when cross-compiling
4409 [
4410 AC_MSG_WARN([Assuming Unix98 printf() is not available,
4411 define HAVE_UNIX98_PRINTF as 1 in setup.h if it is available.])
4412 wx_cv_func_snprintf_pos_params=no
4413 ]
4414 )
4415 ]
4416 )
4417
4418 if test "$wx_cv_func_snprintf_pos_params" = "yes"; then
4419 AC_DEFINE(HAVE_UNIX98_PRINTF)
4420 fi
4421 fi
4422 fi
4423
4424 if test "$wxUSE_UNICODE" = yes; then
4425
4426 dnl our wxVsnprintf() implementation needs to use the system swprintf() in Unicode
4427 dnl builds so let's check if swprintf() is declared as C99 imposes:
4428 dnl int swprintf(wchar_t *s, size_t n, const wchar_t *format, ...);
4429 dnl or rather as:
4430 dnl int swprintf(wchar_t *s, const wchar_t *format, ...);
4431 AC_CHECK_FUNCS(swprintf)
4432
4433 if test "$ac_cv_func_swprintf" = "yes"; then
4434 AC_CACHE_CHECK([if swprintf declaration is broken], wx_cv_func_broken_swprintf_decl,
4435 [
4436 AC_TRY_COMPILE(
4437 [
4438 #include <stdio.h>
4439 #include <stdarg.h>
4440 #include <wchar.h>
4441 ],
4442 [
4443 wchar_t *buf;
4444 const wchar_t *fmt = L"test";
4445 swprintf(buf, 10u, fmt);
4446 ],
4447 wx_cv_func_broken_swprintf_decl=no,
4448 wx_cv_func_broken_swprintf_decl=yes
4449 )
4450 ]
4451 )
4452
4453 if test "$wx_cv_func_broken_swprintf_decl" = "yes"; then
4454 AC_DEFINE(HAVE_BROKEN_SWPRINTF_DECL)
4455 fi
4456 fi
4457
4458 dnl also look if we have wide char IO functions
4459 AC_CHECK_FUNCS(wputc wputchar putws fputws wprintf vswprintf)
4460
4461 dnl MinGW has a vswprintf with a different prototype, and
4462 dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
4463 dnl finds it even if it is not declared in some versions...
4464 AC_MSG_CHECKING([for _vsnwprintf])
4465 AC_TRY_COMPILE([#include <wchar.h>],
4466 [&_vsnwprintf;],
4467 [AC_MSG_RESULT([yes])
4468 AC_DEFINE(HAVE__VSNWPRINTF)],
4469 [AC_MSG_RESULT([no])]);
4470 fi
4471
4472 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
4473 AC_CHECK_FUNCS(fnmatch)
4474 fi
4475
4476 if test "$wxUSE_FILE" = "yes"; then
4477 AC_CHECK_FUNCS(fsync)
4478 fi
4479
4480 AC_CHECK_FUNCS(round)
4481 if test "$ac_cv_func_round" = yes; then
4482 AC_CHECK_DECLS(round,,,[#include <math.h>])
4483 fi
4484
4485
4486 dnl the following tests are for Unix(like) systems only
4487 if test "$TOOLKIT" != "MSW"; then
4488
4489 dnl check for available version of iconv()
4490
4491 AM_ICONV
4492 LIBS="$LIBICONV $LIBS"
4493
4494 dnl check for POSIX signals if we need them
4495 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4496 AC_CHECK_FUNCS(sigaction)
4497
4498 if test "$ac_cv_func_sigaction" = "no"; then
4499 AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
4500 wxUSE_ON_FATAL_EXCEPTION=no
4501 fi
4502
4503 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4504 AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
4505 [
4506 AC_TRY_COMPILE([#include <signal.h>],
4507 [
4508 extern void testSigHandler(int);
4509
4510 struct sigaction sa;
4511 sa.sa_handler = testSigHandler;
4512 ], [
4513 wx_cv_type_sa_handler=int
4514 ], [
4515 wx_cv_type_sa_handler=void
4516 ])
4517 ])
4518
4519 AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
4520 fi
4521 fi
4522
4523 dnl backtrace() and backtrace_symbols() for wxStackWalker
4524 if test "$wxUSE_STACKWALKER" = "yes" -a "$wxUSE_UNIX" = "yes"; then
4525 AC_CACHE_CHECK([for backtrace() in <execinfo.h>], wx_cv_func_backtrace,
4526 [
4527 AC_TRY_COMPILE([#include <execinfo.h>],
4528 [
4529 void *trace[1];
4530 char **messages;
4531
4532 backtrace(trace, 1);
4533 messages = backtrace_symbols(trace, 1);
4534 ],
4535 wx_cv_func_backtrace=yes,
4536 wx_cv_func_backtrace=no
4537 )
4538 ]
4539 )
4540
4541
4542 if test "$wx_cv_func_backtrace" = "no"; then
4543 AC_MSG_WARN([backtrace() is not available, wxStackWalker will not be available])
4544 wxUSE_STACKWALKER=no
4545 else
4546 AC_CACHE_CHECK([for __cxa_demangle() in <cxxabi.h>], wx_cv_func_cxa_demangle,
4547 [
4548 AC_TRY_LINK([#include <cxxabi.h>],
4549 [
4550 int rc;
4551 __cxxabiv1::__cxa_demangle("foo", 0, 0, &rc);
4552 ],
4553 wx_cv_func_cxa_demangle=yes,
4554 wx_cv_func_cxa_demangle=no
4555 )
4556 ]
4557 )
4558
4559 if test "$wx_cv_func_cxa_demangle" = "yes"; then
4560 AC_DEFINE(HAVE_CXA_DEMANGLE)
4561 fi
4562 fi
4563 fi
4564
4565 if test "$wxUSE_STACKWALKER" = "yes" -a "$USE_WIN32" != "1" -a "$USE_UNIX" != "1"; then
4566 AC_MSG_WARN([wxStackWalker is only available on Win32 and UNIX... disabled])
4567 wxUSE_STACKWALKER=no
4568 fi
4569
4570
4571 dnl check for the function for temp files creation
4572 AC_CHECK_FUNCS(mkstemp mktemp, break)
4573
4574 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
4575 dnl Linux and *BSD and statvfs() under Solaris
4576 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
4577 AC_TRY_COMPILE(
4578 [
4579 #if defined(__BSD__)
4580 #include <sys/param.h>
4581 #include <sys/mount.h>
4582 #else
4583 #include <sys/vfs.h>
4584 #endif
4585 ],
4586 [
4587 long l;
4588 struct statfs fs;
4589 statfs("/", &fs);
4590 l = fs.f_bsize;
4591 l += fs.f_blocks;
4592 l += fs.f_bavail;
4593 ],
4594 wx_cv_func_statfs=yes,
4595 wx_cv_func_statfs=no
4596 )
4597 )
4598
4599 if test "$wx_cv_func_statfs" = "yes"; then
4600 dnl check whether we have its dcelaration too: some systems (AIX 4) lack it
4601 AC_CACHE_CHECK(for statfs declaration, wx_cv_func_statfs_decl,
4602 AC_TRY_COMPILE(
4603 [
4604 #if defined(__BSD__)
4605 #include <sys/param.h>
4606 #include <sys/mount.h>
4607 #else
4608 #include <sys/vfs.h>
4609 #endif
4610 ],
4611 [
4612 struct statfs fs;
4613 statfs("", &fs);
4614 ],
4615 wx_cv_func_statfs_decl=yes,
4616 wx_cv_func_statfs_decl=no
4617 )
4618 )
4619
4620 if test "$wx_cv_func_statfs_decl" = "yes"; then
4621 AC_DEFINE(HAVE_STATFS_DECL)
4622 fi
4623
4624 wx_cv_type_statvfs_t="struct statfs"
4625 AC_DEFINE(HAVE_STATFS)
4626 else
4627 AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
4628 AC_TRY_COMPILE(
4629 [
4630 #include <stddef.h>
4631 #include <sys/statvfs.h>
4632 ],
4633 [
4634 statvfs("/", NULL);
4635 ],
4636 wx_cv_func_statvfs=yes,
4637 wx_cv_func_statvfs=no
4638 )
4639 )
4640
4641 if test "$wx_cv_func_statvfs" = "yes"; then
4642 dnl we also have to check whether we should use statvfs_t (works under
4643 dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
4644 dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
4645 dnl mode both work fine)
4646 dnl
4647 dnl for this check C++ compiler has to be used as passing incompatible
4648 dnl pointers is just a warning and not an error in C
4649 AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
4650 AC_TRY_COMPILE(
4651 [
4652 #include <sys/statvfs.h>
4653 ],
4654 [
4655 long l;
4656 statvfs_t fs;
4657 statvfs("/", &fs);
4658 l = fs.f_bsize;
4659 l += fs.f_blocks;
4660 l += fs.f_bavail;
4661 ],
4662 wx_cv_type_statvfs_t=statvfs_t,
4663 [
4664 AC_TRY_COMPILE(
4665 [
4666 #include <sys/statvfs.h>
4667 ],
4668 [
4669 long l;
4670 struct statvfs fs;
4671 statvfs("/", &fs);
4672 l = fs.f_bsize;
4673 l += fs.f_blocks;
4674 l += fs.f_bavail;
4675 ],
4676 wx_cv_type_statvfs_t="struct statvfs",
4677 wx_cv_type_statvfs_t="unknown"
4678 )
4679 ]
4680 )
4681 )
4682
4683 if test "$wx_cv_type_statvfs_t" != "unknown"; then
4684 AC_DEFINE(HAVE_STATVFS)
4685 fi
4686 else
4687 dnl set it for the test below
4688 wx_cv_type_statvfs_t="unknown"
4689 fi
4690 fi
4691
4692 if test "$wx_cv_type_statvfs_t" != "unknown"; then
4693 AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
4694 else
4695 AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
4696 fi
4697
4698 dnl check for fcntl() or at least flock() needed by Unix implementation of
4699 dnl wxSingleInstanceChecker
4700 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4701 AC_CHECK_FUNCS(fcntl flock, break)
4702
4703 if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
4704 AC_MSG_WARN(wxSingleInstanceChecker not available)
4705 wxUSE_SNGLINST_CHECKER=no
4706 fi
4707 fi
4708
4709 dnl check for timegm() used by datetime.cpp
4710 AC_CHECK_FUNCS(timegm)
4711
4712 dnl look for a function to modify the environment
4713 AC_CHECK_FUNCS(putenv setenv, break)
4714
4715 HAVE_SOME_SLEEP_FUNC=0
4716 if test "$USE_BEOS" = 1; then
4717 dnl BeOS has its own (wonder where did they get it from) sleep() function
4718 dnl in unistd.h
4719 AC_DEFINE(HAVE_SLEEP)
4720 HAVE_SOME_SLEEP_FUNC=1
4721 fi
4722
4723 if test "$USE_DARWIN" = 1; then
4724 dnl Mac OS X/Darwin has both nanosleep and usleep
4725 dnl but only usleep is defined in unistd.h
4726 AC_DEFINE(HAVE_USLEEP)
4727 HAVE_SOME_SLEEP_FUNC=1
4728 fi
4729
4730 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
4731 dnl try nanosleep() in libc and libposix4, if this fails - usleep()
4732 POSIX4_LINK=
4733 AC_CHECK_FUNCS(nanosleep,
4734 AC_DEFINE(HAVE_NANOSLEEP),
4735 [
4736 AC_CHECK_LIB(posix4, nanosleep,
4737 [
4738 AC_DEFINE(HAVE_NANOSLEEP)
4739 POSIX4_LINK=" -lposix4"
4740 ],
4741 [
4742 AC_CHECK_FUNCS(usleep,
4743 AC_DEFINE(HAVE_USLEEP),
4744 AC_MSG_WARN([wxSleep() function will not work])
4745 )
4746 ]
4747 )
4748 ]
4749 )
4750 fi
4751
4752 dnl check for uname (POSIX) and gethostname (BSD)
4753 AC_CHECK_FUNCS(uname gethostname, break)
4754
4755 WX_CHECK_FUNCS(strtok_r, [], [], [#define _REENTRANT])
4756
4757 dnl check for inet_addr and inet_aton (these may live either in libc, or in
4758 dnl libnsl or libresolv or libsocket)
4759 INET_LINK=
4760 AC_CHECK_FUNCS(inet_addr,
4761 AC_DEFINE(HAVE_INET_ADDR),
4762 [
4763 AC_CHECK_LIB(nsl, inet_addr,
4764 INET_LINK="nsl",
4765 [
4766 AC_CHECK_LIB(resolv, inet_addr,
4767 INET_LINK="resolv",
4768 [
4769 AC_CHECK_LIB(socket, inet_addr,
4770 INET_LINK="socket"
4771 )
4772 ]
4773 )
4774 ]
4775 )
4776 ]
4777 )
4778
4779 AC_CHECK_FUNCS(inet_aton,
4780 AC_DEFINE(HAVE_INET_ATON),
4781 [
4782 dnl only check it in the same lib
4783 AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
4784 ])
4785
4786 if test "x$INET_LINK" != "x"; then
4787 AC_DEFINE(HAVE_INET_ADDR)
4788 INET_LINK=" -l$INET_LINK"
4789 fi
4790
4791 fi
4792 dnl if !MSW
4793
4794
4795 dnl ------------------------------------------
4796 dnl Checks specific to contrib libs (MMedia)
4797 dnl ------------------------------------------
4798
4799 dnl Check for ESD:
4800 EXTRALIBS_ESD=
4801 AC_CHECK_LIB(esd, esd_close, [
4802 AC_CHECK_HEADERS([esd.h], [
4803 EXTRALIBS_ESD="-lesd"
4804 ])
4805 ])
4806 AC_SUBST(EXTRALIBS_ESD)
4807
4808 dnl check for known CD-ROM interface
4809 AC_MSG_CHECKING([for known CD-ROM interface])
4810 AC_TRY_COMPILE([#ifdef __linux__
4811 #include <linux/cdrom.h>
4812 #else
4813 /* For Solaris */
4814 #include <sys/cdio.h>
4815 #endif
4816 ],
4817 [struct cdrom_tocentry entry, old_entry;],
4818 [AC_MSG_RESULT([yes])
4819 AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)],
4820 [AC_MSG_RESULT([no])])
4821
4822 dnl ===========================================================================
4823 dnl Now we have all the info we need - use it!
4824 dnl ===========================================================================
4825
4826 dnl flush the cache
4827 AC_CACHE_SAVE
4828
4829 dnl ---------------------------------------------------------------------------
4830 dnl thread support for Unix (for Win32 and OS/2 see past
4831 dnl the next matching "else")
4832 dnl ---------------------------------------------------------------------------
4833
4834 dnl under MSW (except mingw32) we always have thread support
4835 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4836
4837 dnl the code below:
4838 dnl
4839 dnl defines THREADS_LINK and THREADS_CXXFLAGS which are the options
4840 dnl necessary to build the MT programs for the linker and compiler
4841 dnl respectively
4842 dnl
4843 dnl sets wxUSE_THREADS=1 if thread support is activated
4844
4845 THREADS_LINK=
4846 THREADS_CXXFLAGS=
4847
4848 if test "$wxUSE_THREADS" = "yes" ; then
4849 if test "$USE_BEOS" = 1; then
4850 AC_MSG_WARN([BeOS threads are not yet supported... disabled])
4851 wxUSE_THREADS="no"
4852 fi
4853 fi
4854
4855 if test "$wxUSE_THREADS" = "yes" ; then
4856 dnl find if POSIX threads are available
4857 dnl
4858 dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
4859 dnl archive from http://ac-archive.sourceforge.net/
4860 dnl
4861 dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
4862 dnl Forero Cuervo <bachue@bachue.com> for the original code
4863
4864 dnl TODO: cache the result
4865
4866 dnl define the list of the thread options to try in the loop below
4867 dnl with the convention that anything starting with '-' is a cpp flag
4868 dnl while anything else is a library (i.e. there is an implicit "-l")
4869 THREAD_OPTS="-pthread"
4870 case "${host}" in
4871 *-*-solaris2* | *-*-sunos4* )
4872 if test "x$GCC" = "xyes"; then
4873 dnl Solaris/gcc combination use this one for some reason
4874 THREAD_OPTS="-pthreads $THREAD_OPTS"
4875 else
4876 THREAD_OPTS="-mt $THREAD_OPTS"
4877 fi
4878 ;;
4879 *-*-freebsd*)
4880 dnl look, in order, for the kernel threads, then Linux threads
4881 dnl and finally the userland threads
4882 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
4883 ;;
4884 *-*-darwin* | *-*-cygwin* )
4885 dnl Darwin / Mac OS X just uses -lpthread tested below
4886 dnl and so does Cygwin
4887 THREAD_OPTS=""
4888 ;;
4889 *-*-aix*)
4890 dnl AIX calls the library libpthreads - thanks IBM!
4891 THREAD_OPTS="pthreads"
4892 ;;
4893 *-hp-hpux* )
4894 if test "x$GCC" = "xyes"; then
4895 dnl g++ versions before 3.3.2 don't support -pthread.
4896 $CXX -dumpspecs | grep 'pthread:' >/dev/null ||
4897 THREAD_OPTS=""
4898 else
4899 dnl HP-UX aCC (tested with version B3910B A.06.05 [Jul 25
4900 dnl 2005]) supports -mt
4901 THREAD_OPTS="-mt"
4902 fi
4903 ;;
4904
4905 *-*-irix* )
4906 dnl gcc under IRIX doesn't seem to like -pthread, but it
4907 dnl doesn't give an error for it neither, just a warning
4908 dnl message -- but this is still very annoying
4909 if test "x$GCC" = "xyes"; then
4910 THREAD_OPTS=""
4911 fi
4912 ;;
4913
4914 *-*-*UnixWare*)
4915 dnl flying by man pages here: Caldera online docs use this
4916 if test "x$GCC" != "xyes"; then
4917 THREAD_OPTS="-Ethread"
4918 fi
4919 ;;
4920 esac
4921
4922 dnl simply linking with libpthread should make the test below work but
4923 dnl it's far from certain that the threaded programs compiled without
4924 dnl any special switches actually work, so try it after all the others
4925 THREAD_OPTS="$THREAD_OPTS pthread none"
4926
4927 dnl now test for all possibilities
4928 THREADS_OK=no
4929 for flag in $THREAD_OPTS; do
4930 case $flag in
4931 none)
4932 AC_MSG_CHECKING([whether pthreads work without any flags])
4933 ;;
4934
4935 -*)
4936 AC_MSG_CHECKING([whether pthreads work with $flag])
4937 THREADS_CXXFLAGS="$flag"
4938 ;;
4939
4940 *)
4941 AC_MSG_CHECKING([for the pthreads library -l$flag])
4942 THREADS_LINK="-l$flag"
4943 ;;
4944 esac
4945
4946 save_LIBS="$LIBS"
4947 save_CXXFLAGS="$CXXFLAGS"
4948 LIBS="$THREADS_LINK $LIBS"
4949 CXXFLAGS="$THREADS_CXXFLAGS $CXXFLAGS"
4950
4951 AC_TRY_LINK([#include <pthread.h>],
4952 [pthread_create(0,0,0,0);],
4953 THREADS_OK=yes)
4954
4955 LIBS="$save_LIBS"
4956 CXXFLAGS="$save_CXXFLAGS"
4957
4958 AC_MSG_RESULT($THREADS_OK)
4959 if test "x$THREADS_OK" = "xyes"; then
4960 break;
4961 fi
4962
4963 THREADS_LINK=""
4964 THREADS_CXXFLAGS=""
4965 done
4966
4967 if test "x$THREADS_OK" != "xyes"; then
4968 wxUSE_THREADS=no
4969 AC_MSG_WARN([No thread support on this system... disabled])
4970 else
4971 dnl yes, these special compiler flags should be used with the
4972 dnl linker as well
4973 LDFLAGS="$THREADS_CXXFLAGS $LDFLAGS"
4974 LIBS="$THREADS_LINK $LIBS"
4975
4976 AC_MSG_CHECKING([if more special flags are required for pthreads])
4977 flag=no
4978 case "${host}" in
4979 *-aix*)
4980 dnl again quoting from
4981 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
4982 dnl
4983 dnl When compiling and linking with -pthread, the library
4984 dnl search path should include -L/usr/lib/threads at the
4985 dnl beginning of the path.
4986 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
4987 flag="-D_THREAD_SAFE"
4988 ;;
4989 *-freebsd*)
4990 flag="-D_THREAD_SAFE"
4991 ;;
4992 *-hp-hpux* )
4993 flag="-D_REENTRANT"
4994 if test "x$GCC" != "xyes"; then
4995 dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
4996 flag="$flag -D_RWSTD_MULTI_THREAD"
4997 fi
4998 ;;
4999 *solaris* | alpha*-osf*)
5000 flag="-D_REENTRANT"
5001 ;;
5002 esac
5003 AC_MSG_RESULT(${flag})
5004 if test "x$flag" != xno; then
5005 THREADS_CXXFLAGS="$THREADS_CXXFLAGS $flag"
5006 fi
5007
5008 dnl don't add these options to CPPFLAGS as cpp might not know them
5009 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS $THREADS_CXXFLAGS"
5010 fi
5011 fi
5012
5013 dnl do other tests only if we are using threads
5014 if test "$wxUSE_THREADS" = "yes" ; then
5015 AC_CHECK_FUNCS(thr_setconcurrency)
5016
5017 dnl can't use AC_CHECK_FUNCS for this one as it's usually a macro and so
5018 dnl wouldn't be found by it
5019 AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup,
5020 [
5021 AC_TRY_COMPILE([#include <pthread.h>
5022 void ThreadCleanupFunc(void *p);
5023 ],
5024 [
5025 void *p;
5026 pthread_cleanup_push(ThreadCleanupFunc, p);
5027 pthread_cleanup_pop(0);
5028 ], [
5029 wx_cv_func_pthread_cleanup=yes
5030 ], [
5031 wx_cv_func_pthread_cleanup=no
5032 ]
5033 )
5034 ])
5035 if test "x$wx_cv_func_pthread_cleanup" = "xyes"; then
5036 AC_DEFINE(wxHAVE_PTHREAD_CLEANUP)
5037 fi
5038
5039 AC_CHECK_HEADERS(sched.h)
5040 if test "$ac_cv_header_sched_h" = "yes"; then
5041 AC_CHECK_FUNC(sched_yield,
5042 AC_DEFINE(HAVE_SCHED_YIELD),
5043 [
5044 AC_CHECK_LIB(posix4,
5045 sched_yield,
5046 [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
5047 AC_MSG_WARN(wxThread::Yield will not work properly)
5048 )
5049 ]
5050 )
5051 fi
5052
5053 dnl to be able to set the thread priority, we need to have all of the
5054 dnl following functions:
5055 dnl 1. pthread_attr_getschedpolicy
5056 dnl 2. sched_get_priority_min and sched_get_priority_max
5057 dnl (this one can be in either libpthread or libposix4 (under Solaris))
5058 dnl 3. pthread_attr_getschedparam and pthread_attr_setschedparam
5059 HAVE_PRIOR_FUNCS=0
5060 AC_CHECK_FUNC(pthread_attr_getschedpolicy,
5061 [AC_CHECK_FUNC(pthread_attr_setschedparam,
5062 [AC_CHECK_FUNC(sched_get_priority_max,
5063 HAVE_PRIOR_FUNCS=1,
5064 [AC_CHECK_LIB([posix4], sched_get_priority_max,
5065 [
5066 HAVE_PRIOR_FUNCS=1
5067 POSIX4_LINK=" -lposix4"
5068 ],
5069 )]
5070 )]
5071 )]
5072 )
5073
5074 if test "$HAVE_PRIOR_FUNCS" = 1; then
5075 AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
5076 else
5077 AC_MSG_WARN(Setting thread priority will not work)
5078 fi
5079
5080 AC_CHECK_FUNC(pthread_cancel,
5081 AC_DEFINE(HAVE_PTHREAD_CANCEL),
5082 AC_MSG_WARN([wxThread::Kill() will not work properly]))
5083
5084 AC_CHECK_FUNC(pthread_attr_setstacksize,
5085 AC_DEFINE(HAVE_PTHREAD_ATTR_SETSTACKSIZE))
5086
5087 dnl mutexattr_t initialization is done in quite different ways on different
5088 dnl platforms, so check for a few things:
5089 dnl
5090 dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
5091 dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
5092 dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
5093 dnl defined, we do it by directly assigned
5094 dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
5095
5096 AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
5097 [
5098 AC_TRY_COMPILE([#include <pthread.h>],
5099 [
5100 pthread_mutexattr_t attr;
5101 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5102 ],
5103 wx_cv_type_pthread_mutexattr_t=yes,
5104 wx_cv_type_pthread_mutexattr_t=no
5105 )
5106 ])
5107
5108 if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
5109 AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
5110
5111 dnl check if we already have the declaration we need, it is not
5112 dnl present in some systems' headers
5113 AC_CACHE_CHECK([for pthread_mutexattr_settype declaration],
5114 wx_cv_func_pthread_mutexattr_settype_decl, [
5115 AC_TRY_COMPILE([#include <pthread.h>],
5116 [
5117 pthread_mutexattr_t attr;
5118 pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
5119 ],
5120 wx_cv_func_pthread_mutexattr_settype_decl=yes,
5121 wx_cv_func_pthread_mutexattr_settype_decl=no
5122 )
5123 ])
5124 if test "$wx_cv_func_pthread_mutexattr_settype_decl" = "yes"; then
5125 AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_SETTYPE_DECL)
5126 fi
5127 else
5128 dnl don't despair, there may be another way to do it
5129 AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
5130 wx_cv_type_pthread_rec_mutex_init,
5131 [
5132 AC_TRY_COMPILE([#include <pthread.h>],
5133 [
5134 pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
5135 ], [
5136 wx_cv_type_pthread_rec_mutex_init=yes
5137 ], [
5138 wx_cv_type_pthread_rec_mutex_init=no
5139 ]
5140 )
5141 ])
5142 if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
5143 AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
5144 else
5145 dnl this may break code working elsewhere, so at least warn about it
5146 AC_MSG_WARN([wxMutex won't be recursive on this platform])
5147 fi
5148 fi
5149 fi
5150
5151 dnl from if !MSW
5152 else
5153 if test "$wxUSE_THREADS" = "yes" ; then
5154 case "${host}" in
5155 *-*-mingw32* )
5156 dnl check if the compiler accepts -mthreads
5157 AC_CACHE_CHECK([if compiler supports -mthreads],
5158 wx_cv_cflags_mthread,
5159 [
5160 CXXFLAGS_OLD="$CXXFLAGS"
5161 CXXFLAGS="-mthreads $CXXFLAGS"
5162 AC_TRY_COMPILE([], [],
5163 wx_cv_cflags_mthread=yes,
5164 wx_cv_cflags_mthread=no
5165 )
5166 ]
5167 )
5168
5169 if test "$wx_cv_cflags_mthread" = "yes"; then
5170 dnl it does, use it
5171 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -mthreads"
5172 LDFLAGS="$LDFLAGS -mthreads"
5173 else
5174 dnl it doesn't
5175 CXXFLAGS="$CXXFLAGS_OLD"
5176 fi
5177 ;;
5178 *-pc-os2*emx )
5179 WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -Zmt -D__ST_MT_ERRNO__"
5180 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
5181 LDFLAGS="$LDFLAGS -Zmt"
5182 ;;
5183 esac
5184 fi
5185 fi
5186
5187 AC_CHECK_FUNC(localtime_r, [ AC_DEFINE(HAVE_LOCALTIME_R) ])
5188 AC_CHECK_FUNC(gmtime_r, [ AC_DEFINE(HAVE_GMTIME_R) ])
5189 AC_CHECK_FUNC(readdir_r, [ AC_DEFINE(HAVE_READDIR_R) ])
5190 dnl By preference, we probably should use getaddrinfo which avoids thread
5191 dnl safety issues and supports IPv6, however there currently is no code
5192 dnl for it, so testing for it is temporarily disabled and we are restricted
5193 dnl to gethostbyname_r/gethostbyaddr_r and getservbyname_r
5194
5195 dnl AC_CHECK_FUNC(getaddrinfo, AC_DEFINE(HAVE_GETADDRINFO), [
5196 dnl no getaddrinfo, so check for gethostbyname_r and
5197 dnl related functions (taken from python's configure.in)
5198 dnl sigh -- gethostbyname_r is a mess; it can have 3, 5 or 6 arguments
5199 AX_FUNC_WHICH_GETHOSTBYNAME_R
5200 if test "x$ac_cv_func_which_gethostbyname_r" = "xno" -o \
5201 "x$ac_cv_func_which_gethostbyname_r" = "xunknown" ; then
5202 AC_CHECK_FUNC(gethostbyname, [ AC_DEFINE(HAVE_GETHOSTBYNAME) ])
5203 fi
5204 dnl A similar test for getservbyname_r
5205 dnl I'm tempted to just not do this test which is taking much time and
5206 dnl do something similar as for gethostbyaddr_r, but OTOH the macro
5207 dnl doing the test already exists, so using it is easy enough. - SN
5208 AC_raf_FUNC_WHICH_GETSERVBYNAME_R
5209 if test "x$ac_cv_func_which_getservbyname_r" = "xno" -o \
5210 "x$ac_cv_func_which_getservbyname_r" = "xunknown" ; then
5211 AC_CHECK_FUNCS(getservbyname,[ AC_DEFINE(HAVE_GETSERVBYNAME) ])
5212 fi
5213 dnl For gethostbyaddr_r, we currently do no separate test, instead, we
5214 dnl silently assume it's available exactly if gethostbyname_r is
5215 dnl available and always requires two more arguments than
5216 dnl gethostbyname_r.
5217 dnl (also, I'm lazy and there no m4 file that's ready for use for this
5218 dnl function, although it should be easy to rewrite the gethostbyname_r
5219 dnl check to fit this case, if it's really needed. - SN )
5220 dnl ]
5221 dnl )
5222
5223 if test "$wxUSE_THREADS" = "yes"; then
5224 AC_DEFINE(wxUSE_THREADS)
5225
5226 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
5227 else
5228 dnl on some systems, _REENTRANT should be defined if we want to use any _r()
5229 dnl functions - add tests for other functions here as well
5230 if test "$wx_cv_func_strtok_r" = "yes"; then
5231 AC_MSG_CHECKING(if -D_REENTRANT is needed)
5232 if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
5233 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D_REENTRANT"
5234 AC_MSG_RESULT(yes)
5235 else
5236 AC_MSG_RESULT(no)
5237 fi
5238 fi
5239 fi
5240
5241 if test "$WXGTK20" = 1 ; then
5242 AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
5243 WXGTK12=1
5244 fi
5245
5246 if test "$WXGTK12" = 1 ; then
5247 AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
5248 fi
5249
5250 if test "$WXGTK127" = 1 ; then
5251 AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
5252 fi
5253
5254 if test "$WXGPE" = 1 ; then
5255 AC_DEFINE_UNQUOTED(__WXGPE__,$WXGPE)
5256 fi
5257
5258 dnl DEBUG_CFLAGS contains debugging options (supposed to be the same for C and C++
5259 dnl compilers: we'd need a separate DEBUG_CXXFLAGS if this is ever not the case)
5260 DEBUG_CFLAGS=
5261 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
5262 DEBUG_CFLAGS="-g"
5263 wxUSE_OPTIMISE=no
5264 fi
5265
5266 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
5267 wxUSE_DEBUG_INFO=yes
5268 if test "$GCC" = yes; then
5269 DEBUG_CFLAGS="-ggdb"
5270 fi
5271 fi
5272
5273 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
5274 AC_DEFINE(WXDEBUG)
5275 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS -D__WXDEBUG__"
5276 else
5277 if test "$wxUSE_GTK" = 1 ; then
5278 if test "x$wxGTK_VERSION" = "x1" ; then
5279 CPPFLAGS="-DGTK_NO_CHECK_CASTS $CPPFLAGS"
5280 fi
5281 fi
5282 fi
5283
5284 if test "$wxUSE_MEM_TRACING" = "yes" ; then
5285 AC_DEFINE(wxUSE_MEMORY_TRACING)
5286 AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
5287 AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
5288 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
5289 fi
5290
5291 if test "$wxUSE_DMALLOC" = "yes" ; then
5292 DMALLOC_LIBS="-ldmallocthcxx"
5293 fi
5294
5295 dnl cc/cxx/ld option for profiling
5296 PROFILE_FLAGS=
5297 if test "$wxUSE_PROFILE" = "yes" ; then
5298 PROFILE_FLAGS=" -pg"
5299 fi
5300
5301 if test "$GCC" = "yes" ; then
5302 if test "$wxUSE_NO_RTTI" = "yes" ; then
5303 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-rtti"
5304 fi
5305 if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
5306 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fno-exceptions"
5307 fi
5308 if test "$wxUSE_PERMISSIVE" = "yes" ; then
5309 WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -fpermissive"
5310 fi
5311
5312 dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
5313 dnl 3.0 overflow the table of contents on rs6000 as they create an entry
5314 dnl for each subroutine by default -- using the switch below only creates
5315 dnl one entry per file instead at the price of minor performance penalty
5316 dnl
5317 dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
5318 dnl without -ffunction-sections. No idea how long we'll need to maintain
5319 dnl this, or even the extent of gcc/wx version combinations affected, but
5320 dnl also as above, this 'fix' does not come without side effects.
5321 dnl
5322 dnl TODO: test for the gcc version here (how?)
5323 case "${host}" in
5324 powerpc*-*-aix* )
5325 WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -mminimal-toc"
5326 ;;
5327 *-hppa* )
5328 WXCONFIG_CFLAGS="$WXCONFIG_CFLAGS -ffunction-sections"
5329 ;;
5330 esac
5331 fi
5332
5333 dnl C/C++ compiler option for optimization (supposed to be the same for both)
5334 OPTIMISE_CFLAGS=
5335 if test "$wxUSE_OPTIMISE" = "no" ; then
5336 if test "$GCC" = yes ; then
5337 dnl use -O0 because compiling with it is faster than compiling with no
5338 dnl optimization options at all (at least with g++ 3.2)
5339 OPTIMISE_CFLAGS="-O0"
5340 fi
5341 else
5342 if test "$GCC" = yes ; then
5343 case "${host}" in
5344 *-pc-os2_emx | *-pc-os2-emx )
5345 dnl Not all of the supported gcc versions understand
5346 dnl -fstrict-aliasing and none actually needs it (yet).
5347 OPTIMISE_CFLAGS="-O2"
5348 ;;
5349 *)
5350 dnl Switch on optimisation but keep strict-aliasing off for
5351 dnl now (see -fstrict-aliasing in the gcc manual). When it is
5352 dnl switched back on consider using -Wstrict-aliasing=2.
5353 OPTIMISE_CFLAGS="-O2 -fno-strict-aliasing"
5354 ;;
5355 esac
5356 else
5357 OPTIMISE_CFLAGS="-O"
5358 fi
5359 fi
5360
5361 dnl ---------------------------------------------------------------------------
5362 dnl compatibility level
5363 dnl ---------------------------------------------------------------------------
5364
5365 if test "x$WXWIN_COMPATIBILITY_2_4" = "xyes"; then
5366 AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
5367
5368 WXWIN_COMPATIBILITY_2_6="yes"
5369 fi
5370
5371 if test "x$WXWIN_COMPATIBILITY_2_6" != "xno"; then
5372 AC_DEFINE(WXWIN_COMPATIBILITY_2_6)
5373 fi
5374
5375 dnl ---------------------------------------------------------------------------
5376 dnl the library may be built without GUI classes at all
5377 dnl ---------------------------------------------------------------------------
5378
5379 if test "$wxUSE_GUI" = "yes"; then
5380 AC_DEFINE(wxUSE_GUI)
5381
5382 dnl the things we always pull in the GUI version of the library:
5383 dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
5384 dnl library really can't be built without those)
5385 dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
5386 dnl almost any program and the first 2 are needed to show a message box
5387 dnl which want to be always able to do)
5388 dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
5389 dnl to compile without them (if the app doesn't do any drawing, it doesn't
5390 dnl need the dcs, pens, brushes, ...), this just can't be done now
5391 dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
5392 dnl 5. misc stuff: timers, settings, message box
5393 fi
5394
5395 dnl ---------------------------------------------------------------------------
5396 dnl Unix/Windows
5397 dnl ---------------------------------------------------------------------------
5398
5399 if test "$wxUSE_UNIX" = "yes"; then
5400 AC_DEFINE(wxUSE_UNIX)
5401 fi
5402
5403 dnl ------------------------------------------------------------------------
5404 dnl DLL support
5405 dnl ------------------------------------------------------------------------
5406
5407 dnl under MSW we always have LoadLibrary/GetProcAddress
5408 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
5409
5410 HAVE_DL_FUNCS=0
5411 HAVE_SHL_FUNCS=0
5412 if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5413 if test "$USE_DARWIN" = 1; then
5414 dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
5415 HAVE_DL_FUNCS=1
5416 elif test "$USE_DOS" = 1; then
5417 HAVE_DL_FUNCS=0
5418 else
5419 dnl the test is a bit complicated because we check for dlopen() both with
5420 dnl and without -ldl and we also try to find shl_load() if there is no
5421 dnl dlopen() on this system
5422 AC_CHECK_FUNCS(dlopen,
5423 [
5424 AC_DEFINE(HAVE_DLOPEN)
5425 HAVE_DL_FUNCS=1
5426 ],
5427 [
5428 AC_CHECK_LIB(dl, dlopen,
5429 [
5430 AC_DEFINE(HAVE_DLOPEN)
5431 HAVE_DL_FUNCS=1
5432 DL_LINK=" -ldl$DL_LINK"
5433 ],
5434 [
5435 AC_CHECK_FUNCS(shl_load,
5436 [
5437 AC_DEFINE(HAVE_SHL_LOAD)
5438 HAVE_SHL_FUNCS=1
5439 ],
5440 [
5441 AC_CHECK_LIB(shl_load, dld,
5442 [
5443 HAVE_SHL_FUNCS=1
5444 DL_LINK=" -ldld$DL_LINK"
5445 ])
5446 ])
5447 ])
5448 ])
5449
5450 dnl check also for dlerror()
5451 if test "$HAVE_DL_FUNCS" = 1; then
5452 AC_CHECK_FUNCS(dlerror,
5453 AC_DEFINE(HAVE_DLERROR),
5454 [
5455 AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
5456 ]
5457 )
5458 fi
5459 fi
5460
5461 if test "$HAVE_DL_FUNCS" = 0; then
5462 if test "$HAVE_SHL_FUNCS" = 0; then
5463 if test "$USE_UNIX" = 1 -o "$USE_DOS" = 1; then
5464 AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
5465 wxUSE_DYNAMIC_LOADER=no
5466 wxUSE_DYNLIB_CLASS=no
5467 else
5468 AC_MSG_WARN([Assuming wxLibrary class works on this platform])
5469 fi
5470 fi
5471 fi
5472 fi
5473 fi
5474
5475 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
5476 AC_DEFINE(wxUSE_DYNAMIC_LOADER)
5477 fi
5478 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
5479 AC_DEFINE(wxUSE_DYNLIB_CLASS)
5480 fi
5481
5482
5483 dnl ---------------------------------------------------------------------------
5484 dnl Verify consistency of plugins/monolithic/shared settings:
5485 dnl ---------------------------------------------------------------------------
5486
5487 if test "$wxUSE_PLUGINS" = "yes" ; then
5488 if test "$wxUSE_SHARED" = "no" ; then
5489 AC_MSG_WARN([plugins supported only in shared build, disabling])
5490 wxUSE_PLUGINS=no
5491 fi
5492 if test "$wxUSE_MONOLITHIC" = "yes" ; then
5493 AC_MSG_WARN([plugins not supported monolithic build, disabling])
5494 wxUSE_PLUGINS=no
5495 fi
5496 if test "$wxUSE_DYNLIB_CLASS" = "no" ; then
5497 AC_MSG_WARN([plugins require wxDynamicLibrary, disabling])
5498 wxUSE_PLUGINS=no
5499 fi
5500 if test "$wxUSE_PLUGINS" = "yes" ; then
5501 AC_DEFINE(wxUSE_PLUGINS)
5502 fi
5503 fi
5504
5505 dnl ---------------------------------------------------------------------------
5506 dnl Register non-GUI class options for makefiles and setup.h
5507 dnl ---------------------------------------------------------------------------
5508
5509 if test "$wxUSE_STL" = "yes"; then
5510 AC_DEFINE(wxUSE_STL)
5511 fi
5512
5513 if test "$wxUSE_APPLE_IEEE" = "yes"; then
5514 AC_DEFINE(wxUSE_APPLE_IEEE)
5515 fi
5516
5517 if test "$wxUSE_TIMER" = "yes"; then
5518 AC_DEFINE(wxUSE_TIMER)
5519 fi
5520
5521 dnl Unix implementation needs additional checks because audio support
5522 dnl comes in many favours:
5523 if test "$USE_UNIX" = "1" ; then
5524 dnl it's not enough to check for just the header because OSS under NetBSD
5525 dnl redefines ioctl as oss_ioctrl inside it and so we also need to test
5526 dnl whether we need -lossaudio at link-time
5527 AC_CACHE_CHECK([for SNDCTL_DSP_SPEED in sys/soundcard.h], ac_cv_header_sys_soundcard, [
5528 AC_TRY_LINK([
5529 #include <sys/ioctl.h>
5530 #include <sys/soundcard.h>
5531 ],
5532 [
5533 ioctl(0, SNDCTL_DSP_SPEED, 0);
5534 ],
5535 ac_cv_header_sys_soundcard=yes,
5536 [
5537 saveLibs="$LIBS"
5538 LIBS="$saveLibs -lossaudio"
5539 AC_TRY_LINK([
5540 #include <sys/ioctl.h>
5541 #include <sys/soundcard.h>
5542 ],
5543 [
5544 ioctl(0, SNDCTL_DSP_SPEED, 0);
5545 ],
5546 ac_cv_header_sys_soundcard=yes,
5547 [
5548 LIBS="$saveLibs"
5549 ac_cv_header_sys_soundcard=no
5550 ]
5551 )
5552 ]
5553 )
5554 ])
5555
5556 if test "$ac_cv_header_sys_soundcard" = "yes"; then
5557 AC_DEFINE(HAVE_SYS_SOUNDCARD_H)
5558 else
5559 DISABLED_CONTRIB="$DISABLED_CONTRIB mmedia"
5560 fi
5561 fi
5562 WITH_PLUGIN_SDL=0
5563 if test "$wxUSE_SOUND" = "yes"; then
5564 if test "$USE_UNIX" = "1" ; then
5565 if test "$wxUSE_LIBSDL" != "no"; then
5566 AM_PATH_SDL([1.2.0],
5567 [
5568 EXTRALIBS_SDL="$SDL_LIBS"
5569 CXXFLAGS="$SDL_CFLAGS $CXXFLAGS"
5570 AC_DEFINE(wxUSE_LIBSDL)
5571 ],
5572 [wxUSE_LIBSDL="no"])
5573 if test "$wxUSE_LIBSDL" = "yes" -a "$wxUSE_PLUGINS" = "yes" ; then
5574 WITH_PLUGIN_SDL=1
5575 fi
5576 fi
5577 fi
5578
5579 AC_DEFINE(wxUSE_SOUND)
5580 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sound"
5581 fi
5582
5583 if test "$WXGTK20" = 1; then
5584 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
5585 if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
5586
5587 PKG_CHECK_MODULES(LIBGNOMEPRINTUI,
5588 [libgnomeprintui-2.2 >= 2.8],
5589 [
5590 dnl EXTRALIBS_GNOMEPRINT="$LIBGNOMEPRINTUI_LIBS"
5591 CXXFLAGS="$LIBGNOMEPRINTUI_CFLAGS $CXXFLAGS"
5592 AC_DEFINE(wxUSE_LIBGNOMEPRINT)
5593 ],
5594 [
5595 AC_MSG_WARN([libgnomeprintui not found, library will use standard PostScript printing])
5596 wxUSE_LIBGNOMEPRINT="no"
5597 ]
5598 )
5599 fi
5600 fi
5601 fi
5602
5603 if test "$WXGTK20" = 1; then
5604 if test "$wxUSE_MIMETYPE" = "yes" ; then
5605 if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
5606
5607 PKG_CHECK_MODULES(GNOMEVFS,
5608 [gnome-vfs-2.0 >= 2.0],
5609 [
5610 dnl EXTRALIBS_GNOMEVFS="$LIBGNOMEVFS_LIBS"
5611 CXXFLAGS="$GNOMEVFS_CFLAGS $CXXFLAGS"
5612 AC_DEFINE(wxUSE_LIBGNOMEVFS)
5613 ],
5614 [
5615 AC_MSG_WARN([libgnomevfs not found, library won't be able to associate MIME type])
5616 wxUSE_LIBGNOMEVFS="no"
5617 ]
5618 )
5619 fi
5620 fi
5621 fi
5622
5623 if test "$WXGTK20" = 1; then
5624 if test "$wxUSE_LIBHILDON" = "yes" ; then
5625 PKG_CHECK_MODULES(HILDON,
5626 [hildon-lgpl >= 0.9],
5627 [
5628 EXTRALIBS_HILDON="$HILDON_LIBS"
5629 CXXFLAGS="$CXXFLAGS $HILDON_CFLAGS"
5630 AC_DEFINE(wxUSE_LIBHILDON)
5631 ],
5632 [
5633 AC_MSG_WARN([libhildon_lgpl not found])
5634 wxUSE_LIBHILDON="no"
5635 ]
5636 )
5637 fi
5638 fi
5639
5640 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
5641 AC_DEFINE(wxUSE_CMDLINE_PARSER)
5642 fi
5643
5644 if test "$wxUSE_STOPWATCH" = "yes"; then
5645 AC_DEFINE(wxUSE_STOPWATCH)
5646 fi
5647
5648 if test "$wxUSE_DATETIME" = "yes"; then
5649 AC_DEFINE(wxUSE_DATETIME)
5650 fi
5651
5652 if test "$wxUSE_FILE" = "yes"; then
5653 AC_DEFINE(wxUSE_FILE)
5654 fi
5655
5656 if test "$wxUSE_FFILE" = "yes"; then
5657 AC_DEFINE(wxUSE_FFILE)
5658 fi
5659
5660 if test "$wxUSE_FILESYSTEM" = "yes"; then
5661 AC_DEFINE(wxUSE_FILESYSTEM)
5662 fi
5663
5664 if test "$wxUSE_FS_ZIP" = "yes"; then
5665 AC_DEFINE(wxUSE_FS_ZIP)
5666 fi
5667
5668 if test "$wxUSE_ARCHIVE_STREAMS" = "yes"; then
5669 AC_DEFINE(wxUSE_ARCHIVE_STREAMS)
5670 fi
5671
5672 if test "$wxUSE_ZIPSTREAM" = "yes"; then
5673 if test "$wxUSE_ARCHIVE_STREAMS" != "yes"; then
5674 AC_MSG_WARN(wxZip requires wxArchive... disabled)
5675 elif test "$wxUSE_ZLIB" = "no"; then
5676 AC_MSG_WARN(wxZip requires wxZlib... disabled)
5677 else
5678 AC_DEFINE(wxUSE_ZIPSTREAM)
5679 fi
5680 fi
5681
5682 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5683 if test "$USE_UNIX" != 1; then
5684 AC_MSG_WARN([Catching fatal exceptions not currently supported on this system, wxApp::OnFatalException will not be called])
5685 wxUSE_ON_FATAL_EXCEPTION=no
5686 else
5687 AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
5688 fi
5689 fi
5690
5691 if test "$wxUSE_STACKWALKER" = "yes"; then
5692 AC_DEFINE(wxUSE_STACKWALKER)
5693 fi
5694
5695 if test "$wxUSE_DEBUGREPORT" = "yes"; then
5696 if test "$USE_UNIX" != "1" -a "$USE_WIN32" != "1"; then
5697 AC_MSG_WARN([Creating debug reports not currently supported on this system, disabled])
5698 wxUSE_DEBUGREPORT=no
5699 else
5700 AC_DEFINE(wxUSE_DEBUGREPORT)
5701 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
5702 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS debugrpt"
5703 fi
5704 fi
5705 fi
5706
5707 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
5708 AC_DEFINE(wxUSE_SNGLINST_CHECKER)
5709 fi
5710
5711 if test "$wxUSE_BUSYINFO" = "yes"; then
5712 AC_DEFINE(wxUSE_BUSYINFO)
5713 fi
5714
5715 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
5716 AC_DEFINE(wxUSE_STD_IOSTREAM)
5717 fi
5718
5719 if test "$wxUSE_STD_STRING" = "yes"; then
5720 AC_DEFINE(wxUSE_STD_STRING)
5721 fi
5722
5723 if test "$wxUSE_STDPATHS" = "yes"; then
5724 AC_DEFINE(wxUSE_STDPATHS)
5725 fi
5726
5727 if test "$wxUSE_TEXTBUFFER" = "yes"; then
5728 AC_DEFINE(wxUSE_TEXTBUFFER)
5729 fi
5730
5731 if test "$wxUSE_TEXTFILE" = "yes"; then
5732 if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
5733 AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
5734 else
5735 AC_DEFINE(wxUSE_TEXTFILE)
5736 fi
5737 fi
5738
5739 if test "$wxUSE_CONFIG" = "yes" ; then
5740 if test "$wxUSE_TEXTFILE" != "yes"; then
5741 AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
5742 else
5743 AC_DEFINE(wxUSE_CONFIG)
5744 AC_DEFINE(wxUSE_CONFIG_NATIVE)
5745 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
5746 fi
5747 fi
5748
5749 if test "$wxUSE_INTL" = "yes" ; then
5750 if test "$wxUSE_FILE" != "yes"; then
5751 AC_MSG_WARN(I18n code requires wxFile... disabled)
5752 else
5753 AC_DEFINE(wxUSE_INTL)
5754 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
5755 GUIDIST="$GUIDIST INTL_DIST"
5756 fi
5757 fi
5758
5759 if test "$wxUSE_LOG" = "yes"; then
5760 AC_DEFINE(wxUSE_LOG)
5761
5762 if test "$wxUSE_LOGGUI" = "yes"; then
5763 AC_DEFINE(wxUSE_LOGGUI)
5764 fi
5765
5766 if test "$wxUSE_LOGWINDOW" = "yes"; then
5767 AC_DEFINE(wxUSE_LOGWINDOW)
5768 fi
5769
5770 if test "$wxUSE_LOGDIALOG" = "yes"; then
5771 AC_DEFINE(wxUSE_LOG_DIALOG)
5772 fi
5773
5774 dnl the keyboard sample requires wxUSE_LOG
5775 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS keyboard"
5776 fi
5777
5778 if test "$wxUSE_LONGLONG" = "yes"; then
5779 AC_DEFINE(wxUSE_LONGLONG)
5780 fi
5781
5782 if test "$wxUSE_GEOMETRY" = "yes"; then
5783 AC_DEFINE(wxUSE_GEOMETRY)
5784 fi
5785
5786 if test "$wxUSE_STREAMS" = "yes" ; then
5787 AC_DEFINE(wxUSE_STREAMS)
5788 fi
5789
5790 if test "$wxUSE_PRINTF_POS_PARAMS" = "yes"; then
5791 AC_DEFINE(wxUSE_PRINTF_POS_PARAMS)
5792 fi
5793
5794
5795 dnl ---------------------------------------------------------------------------
5796 dnl time/date functions
5797 dnl ---------------------------------------------------------------------------
5798
5799 if test "$wxUSE_DATETIME" = "yes"; then
5800 dnl check for strptime and for its declaration as some systems lack it
5801 AC_CHECK_FUNCS(strptime)
5802 if test "$ac_cv_func_strptime" = "yes"; then
5803 AC_CACHE_CHECK([for strptime declaration], wx_cv_func_strptime_decl,
5804 [
5805 AC_TRY_COMPILE(
5806 [
5807 #include <time.h>
5808 ],
5809 [
5810 struct tm t;
5811 strptime("foo", "bar", &t);
5812 ],
5813 wx_cv_func_strptime_decl=yes,
5814 wx_cv_func_strptime_decl=no
5815 )
5816 ]
5817 )
5818 fi
5819 if test "$wx_cv_func_strptime_decl" = "yes"; then
5820 AC_DEFINE(HAVE_STRPTIME_DECL)
5821 fi
5822
5823 dnl check for timezone variable
5824 dnl doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
5825 AC_CACHE_CHECK(for timezone variable in <time.h>,
5826 wx_cv_var_timezone,
5827 [
5828 AC_TRY_COMPILE(
5829 [
5830 #include <time.h>
5831 ],
5832 [
5833 int tz;
5834 tz = timezone;
5835 ],
5836 [
5837 wx_cv_var_timezone=timezone
5838 ],
5839 [
5840 AC_TRY_COMPILE(
5841 [
5842 #include <time.h>
5843 ],
5844 [
5845 int tz;
5846 tz = _timezone;
5847 ],
5848 [
5849 wx_cv_var_timezone=_timezone
5850 ],
5851 [
5852 AC_TRY_COMPILE(
5853 [
5854 #include <time.h>
5855 ],
5856 [
5857 int tz;
5858 tz = __timezone;
5859 ],
5860 [
5861 wx_cv_var_timezone=__timezone
5862 ],
5863 [
5864 if test "$USE_DOS" = 0 ; then
5865 AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
5866 fi
5867 ]
5868 )
5869 ]
5870 )
5871 ]
5872 )
5873 ]
5874 )
5875
5876 dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
5877 if test "x$wx_cv_var_timezone" != x ; then
5878 AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
5879 fi
5880
5881 dnl check for localtime (it's POSIX, but the check can do no harm...)
5882 AC_CHECK_FUNCS(localtime)
5883
5884 if test "$ac_cv_func_localtime" = "yes"; then
5885 AC_CACHE_CHECK(for tm_gmtoff in struct tm,
5886 wx_cv_struct_tm_has_gmtoff,
5887 [
5888 AC_TRY_COMPILE(
5889 [
5890 #include <time.h>
5891 ],
5892 [
5893 struct tm tm;
5894 tm.tm_gmtoff++;
5895 ],
5896 [
5897 wx_cv_struct_tm_has_gmtoff=yes
5898 ],
5899 wx_cv_struct_tm_has_gmtoff=no
5900 )
5901 ])
5902 fi
5903
5904 if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
5905 AC_DEFINE(WX_GMTOFF_IN_TM)
5906 fi
5907
5908 dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
5909 dnl function to be used for high resolution timers
5910 AC_CHECK_FUNCS(gettimeofday ftime, break)
5911
5912 if test "$ac_cv_func_gettimeofday" = "yes"; then
5913 AC_CACHE_CHECK([whether gettimeofday takes two arguments],
5914 wx_cv_func_gettimeofday_has_2_args,
5915 [
5916 dnl on some _really_ old systems it takes only 1 argument
5917 AC_TRY_COMPILE(
5918 [
5919 #include <sys/time.h>
5920 #include <unistd.h>
5921 ],
5922 [
5923 struct timeval tv;
5924 gettimeofday(&tv, NULL);
5925 ],
5926 wx_cv_func_gettimeofday_has_2_args=yes,
5927 AC_TRY_COMPILE(
5928 [
5929 #include <sys/time.h>
5930 #include <unistd.h>
5931 ],
5932 [
5933 struct timeval tv;
5934 gettimeofday(&tv);
5935 ],
5936 wx_cv_func_gettimeofday_has_2_args=no,
5937 [
5938 AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
5939 wx_cv_func_gettimeofday_has_2_args=unknown
5940 ]
5941 )
5942 )
5943 ])
5944
5945 if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
5946 AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
5947 fi
5948 fi
5949
5950 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
5951 fi
5952
5953 dnl ------------------------------------------------------------------------
5954 dnl wxSocket
5955 dnl ------------------------------------------------------------------------
5956
5957 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
5958 if test "$wxUSE_SOCKETS" = "yes"; then
5959 if test "$wxUSE_MGL" = "1"; then
5960 AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
5961 wxUSE_SOCKETS="no"
5962 fi
5963 fi
5964
5965 if test "$wxUSE_SOCKETS" = "yes"; then
5966 dnl under MSW we always have sockets
5967 if test "$TOOLKIT" != "MSW"; then
5968 dnl under Solaris and OS/2, socket functions live in -lsocket
5969 AC_CHECK_FUNC(socket,,
5970 [
5971 AC_CHECK_LIB(socket, socket,
5972 if test "$INET_LINK" != " -lsocket"; then
5973 INET_LINK="$INET_LINK -lsocket"
5974 fi,
5975 [
5976 AC_MSG_WARN([socket library not found - sockets will be disabled])
5977 wxUSE_SOCKETS=no
5978 ]
5979 )
5980 ]
5981 )
5982 fi
5983 fi
5984
5985 if test "$wxUSE_SOCKETS" = "yes" ; then
5986 dnl this test may be appropriate if building under cygwin
5987 dnl right now I'm assuming it also uses the winsock stuff
5988 dnl like mingw does.. -- RL
5989 if test "$TOOLKIT" != "MSW"; then
5990 dnl determine the type of third argument for getsockname
5991 dnl This test needs to be done in C++ mode since gsocket.cpp now
5992 dnl is C++ code and pointer cast that are possible even without
5993 dnl warning in C still fail in C++.
5994 AC_CACHE_CHECK([what is the type of the third argument of getsockname],
5995 wx_cv_type_getsockname3,
5996 [
5997 AC_TRY_COMPILE(
5998 [
5999 #include <sys/types.h>
6000 #include <sys/socket.h>
6001 ],
6002 [
6003 socklen_t len;
6004 getsockname(0, 0, &len);
6005 ],
6006 wx_cv_type_getsockname3=socklen_t,
6007 [
6008 dnl the compiler will compile the version with size_t
6009 dnl even if the real type of the last parameter is int
6010 dnl but it should give at least a warning about
6011 dnl converting between incompatible pointer types, so
6012 dnl try to use it to get the correct behaviour at
6013 dnl least with gcc (otherwise we'd always use size_t)
6014 CXXFLAGS_OLD="$CXXFLAGS"
6015 if test "$GCC" = yes ; then
6016 CXXFLAGS="-Werror $CXXFLAGS"
6017 fi
6018
6019 AC_TRY_COMPILE(
6020 [
6021 #include <sys/types.h>
6022 #include <sys/socket.h>
6023 ],
6024 [
6025 size_t len;
6026 getsockname(0, 0, &len);
6027 ],
6028 wx_cv_type_getsockname3=size_t,
6029 AC_TRY_COMPILE(
6030 [
6031 #include <sys/types.h>
6032 #include <sys/socket.h>
6033 ],
6034 [
6035 int len;
6036 getsockname(0, 0, &len);
6037 ],
6038 wx_cv_type_getsockname3=int,
6039 wx_cv_type_getsockname3=unknown
6040 )
6041 )
6042
6043 CXXFLAGS="$CXXFLAGS_OLD"
6044 ]
6045 )
6046 ])
6047
6048 if test "$wx_cv_type_getsockname3" = "unknown"; then
6049 wxUSE_SOCKETS=no
6050 AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6051 else
6052 AC_DEFINE_UNQUOTED(WX_SOCKLEN_T, $wx_cv_type_getsockname3)
6053 fi
6054 dnl Do this again for getsockopt as it may be different
6055 AC_CACHE_CHECK([what is the type of the fifth argument of getsockopt],
6056 wx_cv_type_getsockopt5,
6057 [
6058 AC_TRY_COMPILE(
6059 [
6060 #include <sys/types.h>
6061 #include <sys/socket.h>
6062 ],
6063 [
6064 socklen_t len;
6065 getsockopt(0, 0, 0, 0, &len);
6066 ],
6067 wx_cv_type_getsockopt5=socklen_t,
6068 [
6069 dnl the compiler will compile the version with size_t
6070 dnl even if the real type of the last parameter is int
6071 dnl but it should give at least a warning about
6072 dnl converting between incompatible pointer types, so
6073 dnl try to use it to get the correct behaviour at
6074 dnl least with gcc (otherwise we'd always use size_t)
6075 CXXFLAGS_OLD="$CXXFLAGS"
6076 if test "$GCC" = yes ; then
6077 CXXFLAGS="-Werror $CXXFLAGS"
6078 fi
6079
6080 AC_TRY_COMPILE(
6081 [
6082 #include <sys/types.h>
6083 #include <sys/socket.h>
6084 ],
6085 [
6086 size_t len;
6087 getsockopt(0, 0, 0, 0, &len);
6088 ],
6089 wx_cv_type_getsockopt5=size_t,
6090 AC_TRY_COMPILE(
6091 [
6092 #include <sys/types.h>
6093 #include <sys/socket.h>
6094 ],
6095 [
6096 int len;
6097 getsockopt(0, 0, 0, 0, &len);
6098 ],
6099 wx_cv_type_getsockopt5=int,
6100 wx_cv_type_getsockopt5=unknown
6101 )
6102 )
6103
6104 CXXFLAGS="$CXXFLAGS_OLD"
6105 ]
6106 )
6107 ])
6108
6109 if test "$wx_cv_type_getsockopt5" = "unknown"; then
6110 wxUSE_SOCKETS=no
6111 AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
6112 else
6113 AC_DEFINE_UNQUOTED(SOCKOPTLEN_T, $wx_cv_type_getsockopt5)
6114 fi
6115 fi
6116 fi
6117
6118 if test "$wxUSE_SOCKETS" = "yes" ; then
6119 AC_DEFINE(wxUSE_SOCKETS)
6120 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
6121 fi
6122
6123 if test "$wxUSE_PROTOCOL" = "yes"; then
6124 if test "$wxUSE_SOCKETS" != "yes"; then
6125 AC_MSG_WARN(Protocol classes require sockets... disabled)
6126 wxUSE_PROTOCOL=no
6127 fi
6128 fi
6129
6130 if test "$wxUSE_PROTOCOL" = "yes"; then
6131 AC_DEFINE(wxUSE_PROTOCOL)
6132
6133 if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
6134 AC_DEFINE(wxUSE_PROTOCOL_HTTP)
6135 fi
6136 if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
6137 AC_DEFINE(wxUSE_PROTOCOL_FTP)
6138 fi
6139 if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
6140 AC_DEFINE(wxUSE_PROTOCOL_FILE)
6141 fi
6142 else
6143 if test "$wxUSE_FS_INET" = "yes"; then
6144 AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])
6145 wxUSE_FS_INET="no"
6146 fi
6147 fi
6148
6149 if test "$wxUSE_URL" = "yes"; then
6150 if test "$wxUSE_PROTOCOL" != "yes"; then
6151 AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
6152 wxUSE_URL=no
6153 fi
6154 if test "$wxUSE_URL" = "yes"; then
6155 AC_DEFINE(wxUSE_URL)
6156 fi
6157 fi
6158
6159 if test "$wxUSE_VARIANT" = "yes"; then
6160 AC_DEFINE(wxUSE_VARIANT)
6161 fi
6162
6163 if test "$wxUSE_FS_INET" = "yes"; then
6164 AC_DEFINE(wxUSE_FS_INET)
6165 fi
6166
6167 dnl ---------------------------------------------------------------------------
6168 dnl Joystick support
6169 dnl ---------------------------------------------------------------------------
6170
6171 if test "$wxUSE_GUI" = "yes" -a "$wxUSE_JOYSTICK" = "yes"; then
6172 wxUSE_JOYSTICK=no
6173
6174 dnl under MSW we always have joystick support
6175 if test "$TOOLKIT" = "MSW"; then
6176 wxUSE_JOYSTICK=yes
6177
6178 dnl mac only available on darwin
6179 elif test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
6180 if test "$USE_DARWIN" = 1; then
6181 dnl check for a bug in the headers, some have bad setEventCallout
6182 AC_MSG_CHECKING([headers have declarations needed for joystick support])
6183 AC_TRY_COMPILE( [ #include <IOKit/hid/IOHIDLib.h> ],
6184 [ IOHIDQueueInterface *qi = NULL;
6185 IOHIDCallbackFunction cb = NULL;
6186 qi->setEventCallout(NULL, cb, NULL, NULL); ],
6187 [ wxUSE_JOYSTICK=yes ]
6188 )
6189 AC_MSG_RESULT($wxUSE_JOYSTICK)
6190 fi
6191
6192 dnl joystick support is only for Linux 2.1.x or greater
6193 else
6194 AC_CHECK_HEADERS(linux/joystick.h, wxUSE_JOYSTICK=yes)
6195 fi
6196
6197 if test "$wxUSE_JOYSTICK" = "yes"; then
6198 AC_DEFINE(wxUSE_JOYSTICK)
6199 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
6200 else
6201 AC_MSG_WARN(Joystick not supported by this system... disabled)
6202 fi
6203 fi
6204
6205
6206 dnl ---------------------------------------------------------------------------
6207 dnl String stuff
6208 dnl ---------------------------------------------------------------------------
6209
6210 if test "$wxUSE_FONTMAP" = "yes" ; then
6211 AC_DEFINE(wxUSE_FONTMAP)
6212 fi
6213
6214 if test "$wxUSE_UNICODE" = "yes" ; then
6215 AC_DEFINE(wxUSE_UNICODE)
6216
6217 if test "$USE_WIN32" != 1; then
6218 wxUSE_UNICODE_MSLU=no
6219 fi
6220
6221 if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
6222 AC_CHECK_LIB(unicows,main,
6223 [
6224 AC_DEFINE(wxUSE_UNICODE_MSLU)
6225 ],
6226 [
6227 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
6228 Applications will only run on Windows NT/2000/XP!])
6229 wxUSE_UNICODE_MSLU=no
6230 ])
6231 fi
6232 fi
6233
6234 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
6235 AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
6236 fi
6237
6238 dnl ----------------------------------------------------------------
6239 dnl Register PostScript options for makefiles and setup.h
6240 dnl ----------------------------------------------------------------
6241
6242 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
6243 AC_DEFINE(wxUSE_POSTSCRIPT)
6244 fi
6245
6246 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
6247
6248 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
6249
6250 dnl ---------------------------------------------------------------------------
6251 dnl big GUI components: MDI, doc/view, printing, help, ...
6252 dnl ---------------------------------------------------------------------------
6253
6254 if test "$wxUSE_CONSTRAINTS" = "yes"; then
6255 AC_DEFINE(wxUSE_CONSTRAINTS)
6256 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
6257 fi
6258
6259 if test "$wxUSE_MDI" = "yes"; then
6260 AC_DEFINE(wxUSE_MDI)
6261
6262 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6263 AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
6264 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
6265 fi
6266 fi
6267
6268 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
6269 AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
6270 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
6271 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
6272 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
6273 fi
6274 fi
6275
6276 if test "$wxUSE_HELP" = "yes"; then
6277 AC_DEFINE(wxUSE_HELP)
6278 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
6279
6280 if test "$wxUSE_MSW" = 1; then
6281 if test "$wxUSE_MS_HTML_HELP" = "yes"; then
6282 AC_DEFINE(wxUSE_MS_HTML_HELP)
6283 fi
6284 fi
6285
6286 if test "$wxUSE_WXHTML_HELP" = "yes"; then
6287 if test "$wxUSE_HTML" = "yes"; then
6288 AC_DEFINE(wxUSE_WXHTML_HELP)
6289 else
6290 AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
6291 wxUSE_WXHTML_HELP=no
6292 fi
6293 fi
6294 fi
6295
6296 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
6297 if test "$wxUSE_CONSTRAINTS" != "yes"; then
6298 AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
6299 else
6300 AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
6301 fi
6302 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
6303 fi
6304
6305 if test "$wxUSE_PROLOGIO" = "yes" -o "$wxUSE_RESOURCES" = "yes"; then
6306 AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
6307 fi
6308
6309 dnl ---------------------------------------------------------------------------
6310 dnl wxMetafile availability
6311 dnl ---------------------------------------------------------------------------
6312
6313 if test "$wxUSE_METAFILE" = "yes"; then
6314 if test "$wxUSE_MSW" != 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_PM" != 1; then
6315 AC_MSG_WARN([wxMetafile is not available on this system... disabled])
6316 wxUSE_METAFILE=no
6317 fi
6318 fi
6319
6320 dnl ---------------------------------------------------------------------------
6321 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
6322 dnl ---------------------------------------------------------------------------
6323
6324 dnl check for ole headers and disable a few features requiring it if not
6325 dnl present (earlier versions of mingw32 don't have ole2.h)
6326 if test "$USE_WIN32" = 1 -a \( "$wxUSE_DATAOBJ" = "yes" \
6327 -o "$wxUSE_CLIPBOARD" = "yes" \
6328 -o "$wxUSE_OLE" = "yes" \
6329 -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
6330 AC_CHECK_HEADERS(ole2.h)
6331
6332 if test "$ac_cv_header_ole2_h" = "yes" ; then
6333 if test "$GCC" = yes ; then
6334 AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
6335 AC_TRY_COMPILE([#include <windows.h>
6336 #include <ole2.h>],
6337 [],
6338 [AC_MSG_RESULT(no)],
6339 [AC_MSG_RESULT(yes)
6340 WXCONFIG_CXXFLAGS="$WXCONFIG_CXXFLAGS -fvtable-thunks"])
6341 LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
6342 if test "$wxUSE_OLE" = "yes" ; then
6343 AC_DEFINE(wxUSE_OLE)
6344 AC_DEFINE(wxUSE_OLE_AUTOMATION)
6345 AC_DEFINE(wxUSE_OLE_ACTIVEX)
6346 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS oleauto"
6347 fi
6348 fi
6349
6350 dnl for OLE clipboard and dnd
6351 if test "$wxUSE_DATAOBJ" = "yes" ; then
6352 AC_DEFINE(wxUSE_DATAOBJ)
6353 fi
6354 else
6355 AC_MSG_WARN([Some features disabled because OLE headers not found])
6356
6357 wxUSE_CLIPBOARD=no
6358 wxUSE_DRAG_AND_DROP=no
6359 wxUSE_DATAOBJ=no
6360 wxUSE_OLE=no
6361 fi
6362
6363 if test "$wxUSE_METAFILE" = "yes"; then
6364 AC_DEFINE(wxUSE_METAFILE)
6365
6366 dnl this one should probably be made separately configurable
6367 AC_DEFINE(wxUSE_ENH_METAFILE)
6368 fi
6369 fi
6370
6371 if test "$wxUSE_IPC" = "yes"; then
6372 if test "$wxUSE_SOCKETS" != "yes" -a "$USE_WIN32" != 1; then
6373 AC_MSG_WARN(wxWidgets IPC classes require sockets... disabled)
6374 wxUSE_IPC=no
6375 fi
6376
6377 if test "$wxUSE_IPC" = "yes"; then
6378 AC_DEFINE(wxUSE_IPC)
6379 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ipc"
6380 fi
6381 fi
6382
6383 if test "$wxUSE_DATAOBJ" = "yes"; then
6384 if test "$wxUSE_MGL" = 1; then
6385 AC_MSG_WARN([wxDataObject not yet supported under MGL... disabled])
6386 wxUSE_DATAOBJ=no
6387 else
6388 AC_DEFINE(wxUSE_DATAOBJ)
6389 fi
6390 else
6391 AC_MSG_WARN([Clipboard and drag-and-drop require wxDataObject -- disabled])
6392 wxUSE_CLIPBOARD=no
6393 wxUSE_DRAG_AND_DROP=no
6394 fi
6395
6396 if test "$wxUSE_CLIPBOARD" = "yes"; then
6397 if test "$wxUSE_MGL" = 1; then
6398 AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
6399 wxUSE_CLIPBOARD=no
6400 fi
6401
6402 if test "$wxUSE_CLIPBOARD" = "yes"; then
6403 AC_DEFINE(wxUSE_CLIPBOARD)
6404 fi
6405 fi
6406
6407 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
6408 if test "$wxUSE_GTK" = 1; then
6409 if test "$WXGTK12" != 1; then
6410 AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
6411 wxUSE_DRAG_AND_DROP=no
6412 fi
6413 fi
6414
6415 if test "$wxUSE_MOTIF" = 1; then
6416 AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
6417 wxUSE_DRAG_AND_DROP=no
6418 fi
6419
6420 if test "$wxUSE_X11" = 1; then
6421 AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
6422 wxUSE_DRAG_AND_DROP=no
6423 fi
6424
6425 if test "$wxUSE_MGL" = 1; then
6426 AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
6427 wxUSE_DRAG_AND_DROP=no
6428 fi
6429
6430 if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
6431 AC_DEFINE(wxUSE_DRAG_AND_DROP)
6432 fi
6433
6434 fi
6435
6436 if test "$wxUSE_DRAG_AND_DROP" = "yes" -o "$wxUSE_CLIPBOARD" = "yes"; then
6437 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
6438 fi
6439
6440 if test "$wxUSE_SPLINES" = "yes" ; then
6441 AC_DEFINE(wxUSE_SPLINES)
6442 fi
6443
6444 if test "$wxUSE_MOUSEWHEEL" = "yes" ; then
6445 AC_DEFINE(wxUSE_MOUSEWHEEL)
6446 fi
6447
6448 dnl ---------------------------------------------------------------------------
6449 dnl GUI controls
6450 dnl ---------------------------------------------------------------------------
6451
6452 USES_CONTROLS=0
6453 if test "$wxUSE_CONTROLS" = "yes"; then
6454 USES_CONTROLS=1
6455 fi
6456
6457 if test "$wxUSE_ACCEL" = "yes"; then
6458 AC_DEFINE(wxUSE_ACCEL)
6459 USES_CONTROLS=1
6460 fi
6461
6462 if test "$wxUSE_BUTTON" = "yes"; then
6463 AC_DEFINE(wxUSE_BUTTON)
6464 USES_CONTROLS=1
6465 fi
6466
6467 if test "$wxUSE_BMPBUTTON" = "yes"; then
6468 AC_DEFINE(wxUSE_BMPBUTTON)
6469 USES_CONTROLS=1
6470 fi
6471
6472 if test "$wxUSE_CALCTRL" = "yes"; then
6473 AC_DEFINE(wxUSE_CALENDARCTRL)
6474 USES_CONTROLS=1
6475 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
6476 fi
6477
6478 if test "$wxUSE_CARET" = "yes"; then
6479 AC_DEFINE(wxUSE_CARET)
6480 USES_CONTROLS=1
6481 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
6482 fi
6483
6484 if test "$wxUSE_COMBOBOX" = "yes"; then
6485 AC_DEFINE(wxUSE_COMBOBOX)
6486 USES_CONTROLS=1
6487 fi
6488
6489 if test "$wxUSE_COMBOCTRL" = "yes"; then
6490 AC_DEFINE(wxUSE_COMBOCTRL)
6491 USES_CONTROLS=1
6492 fi
6493
6494 if test "$wxUSE_CHOICE" = "yes"; then
6495 AC_DEFINE(wxUSE_CHOICE)
6496 USES_CONTROLS=1
6497 fi
6498
6499 if test "$wxUSE_CHOICEBOOK" = "yes"; then
6500 AC_DEFINE(wxUSE_CHOICEBOOK)
6501 USES_CONTROLS=1
6502 fi
6503
6504 if test "$wxUSE_CHECKBOX" = "yes"; then
6505 AC_DEFINE(wxUSE_CHECKBOX)
6506 USES_CONTROLS=1
6507 fi
6508
6509 if test "$wxUSE_CHECKLST" = "yes"; then
6510 AC_DEFINE(wxUSE_CHECKLISTBOX)
6511 USES_CONTROLS=1
6512 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
6513 fi
6514
6515 if test "$wxUSE_COLOURPICKERCTRL" = "yes"; then
6516 AC_DEFINE(wxUSE_COLOURPICKERCTRL)
6517 USES_CONTROLS=1
6518 fi
6519
6520 if test "$wxUSE_DATEPICKCTRL" = "yes"; then
6521 AC_DEFINE(wxUSE_DATEPICKCTRL)
6522 USES_CONTROLS=1
6523 fi
6524
6525 if test "$wxUSE_DIRPICKERCTRL" = "yes"; then
6526 AC_DEFINE(wxUSE_DIRPICKERCTRL)
6527 USES_CONTROLS=1
6528 fi
6529
6530 if test "$wxUSE_FILEPICKERCTRL" = "yes"; then
6531 AC_DEFINE(wxUSE_FILEPICKERCTRL)
6532 USES_CONTROLS=1
6533 fi
6534
6535 if test "$wxUSE_FONTPICKERCTRL" = "yes"; then
6536 AC_DEFINE(wxUSE_FONTPICKERCTRL)
6537 USES_CONTROLS=1
6538 fi
6539
6540 if test "$wxUSE_DISPLAY" = "yes"; then
6541 AC_DEFINE(wxUSE_DISPLAY)
6542 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display multimon"
6543 fi
6544
6545 if test "$wxUSE_GAUGE" = "yes"; then
6546 AC_DEFINE(wxUSE_GAUGE)
6547 USES_CONTROLS=1
6548 fi
6549
6550 if test "$wxUSE_GRID" = "yes"; then
6551 AC_DEFINE(wxUSE_GRID)
6552 USES_CONTROLS=1
6553 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
6554 fi
6555
6556 if test "$wxUSE_HYPERLINKCTRL" = "yes"; then
6557 AC_DEFINE(wxUSE_HYPERLINKCTRL)
6558 USES_CONTROLS=1
6559 fi
6560
6561 if test "$wxUSE_BITMAPCOMBOBOX" = "yes"; then
6562 AC_DEFINE(wxUSE_BITMAPCOMBOBOX)
6563 USES_CONTROLS=1
6564 fi
6565
6566 if test "$wxUSE_DATAVIEWCTRL" = "yes"; then
6567 AC_DEFINE(wxUSE_DATAVIEWCTRL)
6568 USES_CONTROLS=1
6569 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dataview"
6570 fi
6571
6572 if test "$wxUSE_IMAGLIST" = "yes"; then
6573 AC_DEFINE(wxUSE_IMAGLIST)
6574 fi
6575
6576 if test "$wxUSE_LISTBOOK" = "yes"; then
6577 AC_DEFINE(wxUSE_LISTBOOK)
6578 USES_CONTROLS=1
6579 fi
6580
6581 if test "$wxUSE_LISTBOX" = "yes"; then
6582 AC_DEFINE(wxUSE_LISTBOX)
6583 USES_CONTROLS=1
6584 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listbox"
6585 fi
6586
6587 if test "$wxUSE_LISTCTRL" = "yes"; then
6588 if test "$wxUSE_IMAGLIST" = "yes"; then
6589 AC_DEFINE(wxUSE_LISTCTRL)
6590 USES_CONTROLS=1
6591 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
6592 else
6593 AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
6594 fi
6595 fi
6596
6597 if test "$wxUSE_NOTEBOOK" = "yes"; then
6598 AC_DEFINE(wxUSE_NOTEBOOK)
6599 USES_CONTROLS=1
6600 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
6601 fi
6602
6603 if test "$wxUSE_ODCOMBOBOX" = "yes"; then
6604 AC_DEFINE(wxUSE_ODCOMBOBOX)
6605 USES_CONTROLS=1
6606 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS combo"
6607 fi
6608
6609 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
6610 dnl AC_DEFINE(wxUSE_PROPSHEET)
6611 dnl USES_CONTROLS=1
6612 dnl SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
6613 dnl fi
6614
6615 if test "$wxUSE_RADIOBOX" = "yes"; then
6616 AC_DEFINE(wxUSE_RADIOBOX)
6617 USES_CONTROLS=1
6618 fi
6619
6620 if test "$wxUSE_RADIOBTN" = "yes"; then
6621 AC_DEFINE(wxUSE_RADIOBTN)
6622 USES_CONTROLS=1
6623 fi
6624
6625 if test "$wxUSE_SASH" = "yes"; then
6626 AC_DEFINE(wxUSE_SASH)
6627 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
6628 fi
6629
6630 if test "$wxUSE_SCROLLBAR" = "yes"; then
6631 AC_DEFINE(wxUSE_SCROLLBAR)
6632 USES_CONTROLS=1
6633 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
6634 fi
6635
6636 if test "$wxUSE_SLIDER" = "yes"; then
6637 AC_DEFINE(wxUSE_SLIDER)
6638 USES_CONTROLS=1
6639 fi
6640
6641 if test "$wxUSE_SPINBTN" = "yes"; then
6642 AC_DEFINE(wxUSE_SPINBTN)
6643 USES_CONTROLS=1
6644 fi
6645
6646 if test "$wxUSE_SPINCTRL" = "yes"; then
6647 AC_DEFINE(wxUSE_SPINCTRL)
6648 USES_CONTROLS=1
6649 fi
6650
6651 if test "$wxUSE_SPLITTER" = "yes"; then
6652 AC_DEFINE(wxUSE_SPLITTER)
6653 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
6654 fi
6655
6656 if test "$wxUSE_STATBMP" = "yes"; then
6657 AC_DEFINE(wxUSE_STATBMP)
6658 USES_CONTROLS=1
6659 fi
6660
6661 if test "$wxUSE_STATBOX" = "yes"; then
6662 AC_DEFINE(wxUSE_STATBOX)
6663 USES_CONTROLS=1
6664 fi
6665
6666 if test "$wxUSE_STATTEXT" = "yes"; then
6667 AC_DEFINE(wxUSE_STATTEXT)
6668 USES_CONTROLS=1
6669 fi
6670
6671 if test "$wxUSE_STATLINE" = "yes"; then
6672 AC_DEFINE(wxUSE_STATLINE)
6673 USES_CONTROLS=1
6674 fi
6675
6676 if test "$wxUSE_STATUSBAR" = "yes"; then
6677 dnl this will get undefined in wx/chkconf.h if it's not supported
6678 AC_DEFINE(wxUSE_NATIVE_STATUSBAR)
6679 AC_DEFINE(wxUSE_STATUSBAR)
6680 USES_CONTROLS=1
6681
6682 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
6683 fi
6684
6685 if test "$wxUSE_TAB_DIALOG" = "yes"; then
6686 AC_DEFINE(wxUSE_TAB_DIALOG)
6687 fi
6688
6689 if test "$wxUSE_TEXTCTRL" = "yes"; then
6690 AC_DEFINE(wxUSE_TEXTCTRL)
6691 USES_CONTROLS=1
6692 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
6693 fi
6694
6695 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6696 if test "$wxUSE_COCOA" = 1 ; then
6697 AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
6698 wxUSE_TOGGLEBTN=no
6699 fi
6700
6701 if test "$wxUSE_TOGGLEBTN" = "yes"; then
6702 AC_DEFINE(wxUSE_TOGGLEBTN)
6703 USES_CONTROLS=1
6704 fi
6705 fi
6706
6707 if test "$wxUSE_TOOLBAR" = "yes"; then
6708 AC_DEFINE(wxUSE_TOOLBAR)
6709 USES_CONTROLS=1
6710
6711 if test "$wxUSE_UNIVERSAL" = "yes"; then
6712 wxUSE_TOOLBAR_NATIVE="no"
6713 else
6714 wxUSE_TOOLBAR_NATIVE="yes"
6715 AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
6716 fi
6717
6718 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
6719 fi
6720
6721 if test "$wxUSE_TOOLTIPS" = "yes"; then
6722 if test "$wxUSE_MOTIF" = 1; then
6723 AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
6724 else
6725 if test "$wxUSE_UNIVERSAL" = "yes"; then
6726 AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
6727 else
6728 AC_DEFINE(wxUSE_TOOLTIPS)
6729 fi
6730 fi
6731 fi
6732
6733 if test "$wxUSE_TREEBOOK" = "yes"; then
6734 AC_DEFINE(wxUSE_TREEBOOK)
6735 USES_CONTROLS=1
6736 fi
6737
6738 if test "$wxUSE_TOOLBOOK" = "yes"; then
6739 AC_DEFINE(wxUSE_TOOLBOOK)
6740 USES_CONTROLS=1
6741 fi
6742
6743 if test "$wxUSE_TREECTRL" = "yes"; then
6744 if test "$wxUSE_IMAGLIST" = "yes"; then
6745 AC_DEFINE(wxUSE_TREECTRL)
6746 USES_CONTROLS=1
6747 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
6748 else
6749 AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
6750 fi
6751 fi
6752
6753 if test "$wxUSE_POPUPWIN" = "yes"; then
6754 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6755 AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
6756 else
6757 if test "$wxUSE_PM" = 1; then
6758 AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
6759 else
6760 AC_DEFINE(wxUSE_POPUPWIN)
6761 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS popup"
6762
6763 USES_CONTROLS=1
6764 fi
6765 fi
6766 fi
6767
6768 if test "$wxUSE_DIALUP_MANAGER" = "yes"; then
6769 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
6770 AC_MSG_WARN([Dialup manager not yet supported under Mac OS X... disabled])
6771 else
6772 AC_DEFINE(wxUSE_DIALUP_MANAGER)
6773 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
6774 fi
6775 fi
6776
6777 if test "$wxUSE_TIPWINDOW" = "yes"; then
6778 if test "$wxUSE_PM" = 1; then
6779 AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
6780 else
6781 AC_DEFINE(wxUSE_TIPWINDOW)
6782 fi
6783 fi
6784
6785 if test "$USES_CONTROLS" = 1; then
6786 AC_DEFINE(wxUSE_CONTROLS)
6787 fi
6788
6789 dnl ---------------------------------------------------------------------------
6790 dnl misc options
6791 dnl ---------------------------------------------------------------------------
6792
6793 dnl please keep the settings below in alphabetical order
6794 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
6795 AC_DEFINE(wxUSE_ACCESSIBILITY)
6796 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
6797 fi
6798
6799 if test "$wxUSE_DC_CACHEING" = "yes"; then
6800 AC_DEFINE(wxUSE_DC_CACHEING)
6801 fi
6802
6803 if test "$wxUSE_DRAGIMAGE" = "yes"; then
6804 AC_DEFINE(wxUSE_DRAGIMAGE)
6805 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
6806 fi
6807
6808 if test "$wxUSE_EXCEPTIONS" = "yes"; then
6809 if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
6810 AC_MSG_WARN([--enable-exceptions can't be used with --enable-no_exceptions])
6811 else
6812 AC_DEFINE(wxUSE_EXCEPTIONS)
6813 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS except"
6814 fi
6815 fi
6816
6817 USE_HTML=0
6818 if test "$wxUSE_HTML" = "yes"; then
6819 AC_DEFINE(wxUSE_HTML)
6820 USE_HTML=1
6821 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
6822 if test "$wxUSE_MAC" = 1; then
6823 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html/htmlctrl"
6824 fi
6825 fi
6826 if test "$wxUSE_WEBKIT" = "yes"; then
6827 if test "$wxUSE_MAC" = 1 -a "$USE_DARWIN" = 1; then
6828 old_CPPFLAGS="$CPPFLAGS"
6829 CPPFLAGS="-x objective-c++ $CPPFLAGS"
6830 AC_CHECK_HEADER([WebKit/HIWebView.h],
6831 [
6832 AC_DEFINE(wxUSE_WEBKIT)
6833 WEBKIT_LINK="-framework WebKit"
6834 ],
6835 [
6836 AC_MSG_WARN([WebKit headers not found; disabling wxWebKit])
6837 wxUSE_WEBKIT=no
6838 ],
6839 [#include <Carbon/Carbon.h>])
6840 CPPFLAGS="$old_CPPFLAGS"
6841 elif test "$wxUSE_COCOA" = 1; then
6842 AC_DEFINE(wxUSE_WEBKIT)
6843 else
6844 wxUSE_WEBKIT=no
6845 fi
6846 fi
6847
6848 USE_XRC=0
6849 if test "$wxUSE_XRC" = "yes"; then
6850 if test "$wxUSE_XML" != "yes"; then
6851 AC_MSG_WARN([XML library not built, XRC resources disabled])
6852 wxUSE_XRC=no
6853 else
6854 AC_DEFINE(wxUSE_XRC)
6855 USE_XRC=1
6856 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS xrc"
6857 fi
6858 fi
6859
6860 USE_AUI=0
6861 if test "$wxUSE_AUI" = "yes"; then
6862 AC_DEFINE(wxUSE_AUI)
6863 USE_AUI=1
6864 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS aui"
6865 fi
6866
6867 if test "$wxUSE_MENUS" = "yes"; then
6868 AC_DEFINE(wxUSE_MENUS)
6869 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
6870 fi
6871
6872 if test "$wxUSE_METAFILE" = "yes"; then
6873 AC_DEFINE(wxUSE_METAFILE)
6874 fi
6875
6876 if test "$wxUSE_MIMETYPE" = "yes"; then
6877 AC_DEFINE(wxUSE_MIMETYPE)
6878 fi
6879
6880 if test "$wxUSE_MINIFRAME" = "yes"; then
6881 AC_DEFINE(wxUSE_MINIFRAME)
6882 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
6883 fi
6884
6885 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
6886 AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
6887 if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
6888 "$TOOLKIT" = "MOTIF" -o "$TOOLKIT" = "COCOA"; then
6889 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
6890 fi
6891 fi
6892
6893
6894 if test "$wxUSE_VALIDATORS" = "yes"; then
6895 AC_DEFINE(wxUSE_VALIDATORS)
6896 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
6897 fi
6898
6899 if test "$wxUSE_PALETTE" = "yes" ; then
6900 AC_DEFINE(wxUSE_PALETTE)
6901 fi
6902
6903 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
6904 dnl Must be done this late because -lunicows must be before all the other libs
6905 LIBS=" -lunicows $LIBS"
6906 fi
6907
6908 USE_RICHTEXT=0
6909 if test "$wxUSE_RICHTEXT" = "yes"; then
6910 AC_DEFINE(wxUSE_RICHTEXT)
6911 USE_RICHTEXT=1
6912 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS richtext"
6913 fi
6914
6915 if test "$wxUSE_GRAPHICS_CONTEXT" = "yes"; then
6916 AC_DEFINE(wxUSE_GRAPHICS_CONTEXT)
6917 fi
6918
6919 dnl ---------------------------------------------------------------------------
6920 dnl wxImage options
6921 dnl ---------------------------------------------------------------------------
6922
6923 if test "$wxUSE_IMAGE" = "yes" ; then
6924 AC_DEFINE(wxUSE_IMAGE)
6925
6926 if test "$wxUSE_GIF" = "yes" ; then
6927 AC_DEFINE(wxUSE_GIF)
6928 fi
6929
6930 if test "$wxUSE_PCX" = "yes" ; then
6931 AC_DEFINE(wxUSE_PCX)
6932 fi
6933
6934 if test "$wxUSE_IFF" = "yes" ; then
6935 AC_DEFINE(wxUSE_IFF)
6936 fi
6937
6938 if test "$wxUSE_PNM" = "yes" ; then
6939 AC_DEFINE(wxUSE_PNM)
6940 fi
6941
6942 if test "$wxUSE_XPM" = "yes" ; then
6943 AC_DEFINE(wxUSE_XPM)
6944 fi
6945
6946 if test "$wxUSE_ICO_CUR" = "yes" ; then
6947 AC_DEFINE(wxUSE_ICO_CUR)
6948 fi
6949 fi
6950
6951 dnl ---------------------------------------------------------------------------
6952 dnl common dialogs
6953 dnl ---------------------------------------------------------------------------
6954
6955 if test "$wxUSE_CHOICEDLG" = "yes"; then
6956 AC_DEFINE(wxUSE_CHOICEDLG)
6957 fi
6958
6959 if test "$wxUSE_COLOURDLG" = "yes"; then
6960 AC_DEFINE(wxUSE_COLOURDLG)
6961 fi
6962
6963 if test "$wxUSE_FILEDLG" = "yes"; then
6964 AC_DEFINE(wxUSE_FILEDLG)
6965 fi
6966
6967 if test "$wxUSE_FINDREPLDLG" = "yes"; then
6968 AC_DEFINE(wxUSE_FINDREPLDLG)
6969 fi
6970
6971 if test "$wxUSE_FONTDLG" = "yes"; then
6972 AC_DEFINE(wxUSE_FONTDLG)
6973 fi
6974
6975 if test "$wxUSE_DIRDLG" = "yes"; then
6976 if test "$wxUSE_TREECTRL" != "yes"; then
6977 AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
6978 else
6979 AC_DEFINE(wxUSE_DIRDLG)
6980 fi
6981 fi
6982
6983 if test "$wxUSE_MSGDLG" = "yes"; then
6984 AC_DEFINE(wxUSE_MSGDLG)
6985 fi
6986
6987 if test "$wxUSE_NUMBERDLG" = "yes"; then
6988 AC_DEFINE(wxUSE_NUMBERDLG)
6989 fi
6990
6991 if test "$wxUSE_PROGRESSDLG" = "yes"; then
6992 if test "$wxUSE_CONSTRAINTS" != "yes"; then
6993 AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
6994 else
6995 AC_DEFINE(wxUSE_PROGRESSDLG)
6996 fi
6997 fi
6998
6999 if test "$wxUSE_SPLASH" = "yes"; then
7000 AC_DEFINE(wxUSE_SPLASH)
7001 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splash"
7002 fi
7003
7004 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
7005 if test "$wxUSE_CONSTRAINTS" != "yes"; then
7006 AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
7007 else
7008 AC_DEFINE(wxUSE_STARTUP_TIPS)
7009 fi
7010 fi
7011
7012 if test "$wxUSE_TEXTDLG" = "yes"; then
7013 AC_DEFINE(wxUSE_TEXTDLG)
7014 fi
7015
7016 if test "$wxUSE_WIZARDDLG" = "yes"; then
7017 AC_DEFINE(wxUSE_WIZARDDLG)
7018 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
7019 fi
7020
7021 dnl ---------------------------------------------------------------------------
7022 dnl wxMediaCtrl
7023 dnl ---------------------------------------------------------------------------
7024
7025 USE_MEDIA=0
7026
7027 if test "$wxUSE_MEDIACTRL" = "yes"; then
7028 USE_MEDIA=1
7029
7030 dnl -----------------------------------------------------------------------
7031 dnl GStreamer
7032 dnl -----------------------------------------------------------------------
7033 if test "$wxUSE_GTK" = 1; then
7034 wxUSE_GSTREAMER="no"
7035
7036 dnl -------------------------------------------------------------------
7037 dnl Test for at least 0.8 gstreamer module from pkg-config
7038 dnl Even totem doesn't accept 0.9 evidently.
7039 dnl
7040 dnl So, we first check to see if 0.10 if available - if not we
7041 dnl try the older 0.8 version
7042 dnl -------------------------------------------------------------------
7043 GST_VERSION_MAJOR=0
7044 GST_VERSION_MINOR=10
7045 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
7046
7047 if test "$wxUSE_GSTREAMER8" = "no"; then
7048 PKG_CHECK_MODULES(GST,
7049 [gstreamer-$GST_VERSION gstreamer-plugins-base-$GST_VERSION gconf-2.0],
7050 [
7051 wxUSE_GSTREAMER="yes"
7052 GST_LIBS="$GST_LIBS -lgstinterfaces-$GST_VERSION"
7053 ],
7054 [
7055 AC_MSG_WARN([GStreamer 0.10 not available, falling back to 0.8])
7056 GST_VERSION_MINOR=8
7057 ]
7058 )
7059 else
7060 dnl check only for 0.8
7061 GST_VERSION_MINOR=8
7062 fi
7063
7064 if test $GST_VERSION_MINOR = "8"; then
7065 GST_VERSION=$GST_VERSION_MAJOR.$GST_VERSION_MINOR
7066 PKG_CHECK_MODULES(GST,
7067 [gstreamer-$GST_VERSION gstreamer-interfaces-$GST_VERSION gstreamer-gconf-$GST_VERSION],
7068 wxUSE_GSTREAMER="yes",
7069 [
7070 AC_MSG_WARN([GStreamer 0.8/0.10 not available.])
7071 ])
7072 fi
7073
7074
7075 if test "$wxUSE_GSTREAMER" = "yes"; then
7076 dnl system gstreamer package is compiled with Sun CC and outputs
7077 dnl CC-specific "-mt" in its flags, remove it for gcc compilation
7078 case "${host}" in
7079 *-*-solaris2* )
7080 if "$GCC" = yes; then
7081 GST_CFLAGS=`echo $GST_CFLAGS | sed 's/-mt//'`
7082 GST_LIBS=`echo $GST_LIBS | sed 's/-mt//'`
7083 fi
7084 esac
7085
7086 CPPFLAGS="$GST_CFLAGS $CPPFLAGS"
7087 LIBS="$GST_LIBS $LIBS"
7088
7089 AC_DEFINE(wxUSE_GSTREAMER)
7090 else
7091 USE_MEDIA=0
7092 fi
7093 fi
7094
7095 if test $USE_MEDIA = 1; then
7096 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mediaplayer"
7097 AC_DEFINE(wxUSE_MEDIACTRL)
7098 fi
7099 fi
7100
7101 dnl ---------------------------------------------------------------------------
7102 dnl get the string with OS info - used by wxGetOsDescription() on MacOS X
7103 dnl ---------------------------------------------------------------------------
7104
7105 if test "$cross_compiling" = "yes"; then
7106 dnl Use best guess from host as we can't use uname when cross compiling
7107 OSINFO="\"$host\""
7108 else
7109 dnl attualy work out OS version
7110 OSINFO=`uname -s -r -m`
7111 OSINFO="\"$OSINFO\""
7112 fi
7113
7114 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
7115
7116 dnl ---------------------------------------------------------------------------
7117 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
7118 dnl ---------------------------------------------------------------------------
7119
7120 if test "x$prefix" != "xNONE"; then
7121 wxPREFIX=$prefix
7122 else
7123 wxPREFIX=$ac_default_prefix
7124 fi
7125
7126 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
7127
7128
7129 dnl ---------------------------------------------------------------------------
7130 dnl define variables with all built libraries for wx-config
7131 dnl ---------------------------------------------------------------------------
7132
7133 CORE_BASE_LIBS="net base"
7134 CORE_GUI_LIBS="adv core"
7135
7136 if test "$wxUSE_XML" = "yes" ; then
7137 CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
7138 fi
7139 if test "$wxUSE_ODBC" != "no" ; then
7140 CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
7141 CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
7142 fi
7143 if test "$wxUSE_HTML" = "yes" ; then
7144 CORE_GUI_LIBS="html $CORE_GUI_LIBS"
7145 fi
7146 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7147 CORE_GUI_LIBS="qa $CORE_GUI_LIBS"
7148 fi
7149 if test "$wxUSE_XRC" = "yes" ; then
7150 CORE_GUI_LIBS="xrc $CORE_GUI_LIBS"
7151 fi
7152 if test "$wxUSE_AUI" = "yes" ; then
7153 CORE_GUI_LIBS="aui $CORE_GUI_LIBS"
7154 fi
7155
7156 if test "$wxUSE_GUI" != "yes"; then
7157 CORE_GUI_LIBS=""
7158 fi
7159
7160 AC_SUBST(CORE_BASE_LIBS)
7161 AC_SUBST(CORE_GUI_LIBS)
7162
7163 dnl ---------------------------------------------------------------------------
7164 dnl Output the makefiles and such from the results found above
7165 dnl ---------------------------------------------------------------------------
7166
7167 dnl no more tests from here
7168 AC_LANG_POP
7169
7170 dnl all additional libraries (except wxWidgets itself) we link with
7171
7172 if test "$wxUSE_MAC" = 1 ; then
7173 if test "$wxUSE_SOUND" = "yes" || test "$wxUSE_MEDIACTRL" = "yes"; then
7174 if test "$USE_DARWIN" = 1; then
7175 LDFLAGS="$LDFLAGS -framework QuickTime"
7176 else
7177 LDFLAGS="$LDFLAGS -lQuickTimeLib"
7178 fi
7179 fi
7180 if test "$USE_DARWIN" = 1; then
7181 LDFLAGS="$LDFLAGS -framework IOKit -framework Carbon -framework Cocoa -framework System"
7182 else
7183 LDFLAGS="$LDFLAGS -lCarbonLib"
7184 fi
7185 fi
7186 if test "$wxUSE_COCOA" = 1 ; then
7187 LDFLAGS="$LDFLAGS -framework IOKit -framework Cocoa"
7188 if test "$wxUSE_MEDIACTRL" = "yes"; then
7189 LDFLAGS="$LDFLAGS -framework QuickTime"
7190 fi
7191 fi
7192 if test "$USE_DARWIN" = 1 -a "$wxUSE_MAC" != 1 -a "$wxUSE_COCOA" != 1 ; then
7193 LDFLAGS="$LDFLAGS -framework IOKit -framework CoreServices -framework System -framework ApplicationServices"
7194 fi
7195
7196 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
7197
7198 if test "$wxUSE_GUI" = "yes"; then
7199
7200 dnl TODO add checks that these samples will really compile (i.e. all the
7201 dnl library features they need are present)
7202
7203 dnl TODO some samples are never built so far: mfc (requires VC++)
7204 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs drawing \
7205 dynamic erase event exec font image minimal mobile \
7206 mobile/wxedit mobile/styles propsize render \
7207 rotate shaped vscroll widgets"
7208
7209 if test "$wxUSE_MONOLITHIC" != "yes"; then
7210 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
7211 fi
7212 if test "$TOOLKIT" = "MSW"; then
7213 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS regtest"
7214 if test "$wxUSE_UNIVERSAL" != "yes"; then
7215 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw nativdlg"
7216 fi
7217 fi
7218 if test "$TOOLKIT" = "PM" -a "$wxUSE_UNIVERSAL" != "yes"; then
7219 SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS ownerdrw"
7220 fi
7221 else
7222 SAMPLES_SUBDIRS="console"
7223 fi
7224
7225
7226 dnl C/C++ compiler options used to compile wxWidgets
7227 dnl
7228 dnl check for icc before gcc as icc is also recognized as gcc
7229 if test "x$INTELCC" = "xyes" ; then
7230 dnl Warnings which can't be easily suppressed in C code are disabled:
7231 dnl
7232 dnl remark #810: conversion from "x" to "y" may lose significant bits
7233 dnl remark #869: parameter "foo" was never referenced
7234 dnl remark #1572: floating-point equality and inequality comparisons
7235 dnl are unreliable
7236 dnl remark #1684: conversion from pointer to same-sized integral type
7237 dnl
7238 dnl (for others see below)
7239 CWARNINGS="-Wall -wd810,869,981,1418,1572,1684"
7240 elif test "$GCC" = yes ; then
7241 CWARNINGS="-Wall -Wundef"
7242 fi
7243
7244 if test "x$INTELCXX" = "xyes" ; then
7245 dnl Intel compiler gives some warnings which simply can't be worked
7246 dnl around or of which we have too many (810, 869) so it's impractical to
7247 dnl keep them enabled even if in theory it would be nice and some others
7248 dnl (279) are generated for standard macros and so there is nothing we can
7249 dnl do about them
7250 dnl
7251 dnl remark #279: controlling expression is constant
7252 dnl remark #383: value copied to temporary, reference to temporary used
7253 dnl remark #444: destructor for base class "xxx" is not virtual
7254 dnl remark #810: conversion from "x" to "y" may lose significant bits
7255 dnl remark #869: parameter "foo" was never referenced
7256 dnl remark #981: operands are evaluated in unspecified order
7257 dnl remark #1418: external definition with no prior declaration
7258 dnl remark #1419: external declaration in primary source file
7259 CXXWARNINGS="-Wall -wd279,383,444,810,869,981,1418,1419"
7260 elif test "$GXX" = yes ; then
7261 dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
7262 CXXWARNINGS="-Wall -Wundef -Wno-ctor-dtor-privacy"
7263 fi
7264
7265
7266 dnl combine everything together and remove the extra white space while doing it
7267 WXCONFIG_CFLAGS=`echo $WXCONFIG_CFLAGS`
7268 WXCONFIG_CXXFLAGS=`echo $WXCONFIG_CFLAGS $WXCONFIG_CXXFLAGS`
7269
7270
7271 dnl add -I options we use during library compilation
7272 dnl
7273 dnl note that the order is somewhat important: wxWidgets headers should
7274 dnl come first and the one with setup.h should be before $(top_srcdir)/include
7275 dnl in case the latter contains setup.h used by non-autoconf makefiles (e.g.
7276 dnl CodeWarrior):
7277 CPPFLAGS=`echo $WXCONFIG_CPPFLAGS \
7278 -I\\${top_builddir}lib/wx/include/${TOOLCHAIN_FULLNAME} \
7279 -I\\${top_srcdir}/include $TOOLKIT_INCLUDE \
7280 $CPPFLAGS `
7281
7282 C_AND_CXX_FLAGS="$DEBUG_CFLAGS $PROFILE_FLAGS $OPTIMISE_CFLAGS"
7283 CFLAGS=`echo $WXCONFIG_CFLAGS $CWARNINGS $C_AND_CXX_FLAGS $CFLAGS `
7284 CXXFLAGS=`echo $WXCONFIG_CXXFLAGS $CXXWARNINGS $C_AND_CXX_FLAGS $CXXFLAGS `
7285
7286 dnl now that we added WXCONFIG_CPPFLAGS to CPPFLAGS we can add the wx-config
7287 dnl only stuff to it
7288 WXCONFIG_CPPFLAGS=`echo $WXCONFIG_CPPFLAGS $WXCONFIG_ONLY_CPPFLAGS`
7289
7290
7291 if test "x$MWCC" = "xyes"; then
7292 dnl Correct MW 8.3 to be more similar to GCC. In particular we
7293 dnl must use <regex.h> from system not our local copy on OS X,
7294 dnl but must use local not system on OS 9.
7295 dnl The following should make all -I paths usable for <> includes
7296 dnl while first checking in real system paths. With 8.3 using
7297 dnl -gccincludes it will actually check local paths before system
7298 dnl even for <> which is totally wrong.
7299
7300 dnl Note that because this absolutely needs to be before any -I
7301 dnl that we have to tack it on to the end of the compiler commandline.
7302 CC="$CC -cwd source -I-"
7303 CXX="$CXX -cwd source -I-"
7304 fi
7305
7306
7307 LIBS=`echo $LIBS`
7308 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
7309 EXTRALIBS_XML="$EXPAT_LINK"
7310 EXTRALIBS_HTML="$MSPACK_LINK"
7311 EXTRALIBS_ODBC="$ODBC_LINK"
7312 if test "$wxUSE_GUI" = "yes"; then
7313 EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK $WEBKIT_LINK $EXTRALIBS_HILDON $EXTRALIBS_GNOMEVFS $EXTRALIBS_GNOMEPRINT`
7314 fi
7315 if test "$wxUSE_OPENGL" = "yes"; then
7316 EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
7317 fi
7318
7319 LDFLAGS="$LDFLAGS $PROFILE_FLAGS"
7320
7321 WXCONFIG_LIBS="$LIBS"
7322
7323 dnl wx-config must output builtin 3rd party libs in --libs in static build:
7324 if test "$wxUSE_REGEX" = "builtin" ; then
7325 wxconfig_3rdparty="regex${lib_unicode_suffix} $wxconfig_3rdparty"
7326 fi
7327 if test "$wxUSE_EXPAT" = "builtin" ; then
7328 wxconfig_3rdparty="expat $wxconfig_3rdparty"
7329 fi
7330 if test "$wxUSE_ODBC" = "builtin" ; then
7331 wxconfig_3rdparty="odbc $wxconfig_3rdparty"
7332 fi
7333 if test "$wxUSE_LIBTIFF" = "builtin" ; then
7334 wxconfig_3rdparty="tiff $wxconfig_3rdparty"
7335 fi
7336 if test "$wxUSE_LIBJPEG" = "builtin" ; then
7337 wxconfig_3rdparty="jpeg $wxconfig_3rdparty"
7338 fi
7339 if test "$wxUSE_LIBPNG" = "builtin" ; then
7340 wxconfig_3rdparty="png $wxconfig_3rdparty"
7341 fi
7342 if test "$wxUSE_ZLIB" = "builtin" ; then
7343 wxconfig_3rdparty="zlib $wxconfig_3rdparty"
7344 fi
7345
7346 for i in $wxconfig_3rdparty ; do
7347 WXCONFIG_LIBS="-lwx${i}${lib_debug_suffix}${WX_LIB_FLAVOUR}-${WX_RELEASE}${HOST_SUFFIX} $WXCONFIG_LIBS"
7348 done
7349
7350
7351 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
7352 WXUNIV=1
7353
7354 case "$wxUNIV_THEMES" in
7355 ''|all)
7356 AC_DEFINE(wxUSE_ALL_THEMES)
7357 ;;
7358
7359 *)
7360 for t in `echo $wxUNIV_THEMES | tr , ' ' | tr a-z A-Z`; do
7361 AC_DEFINE_UNQUOTED(wxUSE_THEME_$t)
7362 done
7363 esac
7364 else
7365 WXUNIV=0
7366 fi
7367
7368 AC_SUBST(wxUSE_ZLIB)
7369 AC_SUBST(wxUSE_REGEX)
7370 AC_SUBST(wxUSE_EXPAT)
7371 AC_SUBST(wxUSE_ODBC)
7372 AC_SUBST(wxUSE_LIBJPEG)
7373 AC_SUBST(wxUSE_LIBPNG)
7374 AC_SUBST(wxUSE_LIBTIFF)
7375
7376 if test $wxUSE_MONOLITHIC = "yes" ; then
7377 MONOLITHIC=1
7378 else
7379 MONOLITHIC=0
7380 fi
7381
7382 if test $wxUSE_PLUGINS = "yes" ; then
7383 USE_PLUGINS=1
7384 else
7385 USE_PLUGINS=0
7386 fi
7387
7388 if test $wxUSE_ODBC != "no" ; then
7389 USE_ODBC=1
7390 else
7391 USE_ODBC=0
7392 fi
7393
7394 if test "$wxUSE_DEBUGREPORT" = "yes" ; then
7395 USE_QA=1
7396 else
7397 USE_QA=0
7398 fi
7399
7400 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
7401 OFFICIAL_BUILD=1
7402 else
7403 OFFICIAL_BUILD=0
7404 fi
7405
7406 AC_SUBST(VENDOR)
7407 AC_SUBST(OFFICIAL_BUILD)
7408 AC_SUBST(WX_FLAVOUR)
7409 AC_SUBST(WX_LIB_FLAVOUR)
7410
7411 AC_SUBST(WXUNIV)
7412 AC_SUBST(MONOLITHIC)
7413 AC_SUBST(USE_PLUGINS)
7414 AC_SUBST(LIBS)
7415 AC_SUBST(EXTRALIBS)
7416 AC_SUBST(EXTRALIBS_XML)
7417 AC_SUBST(EXTRALIBS_HTML)
7418 AC_SUBST(EXTRALIBS_ODBC)
7419 AC_SUBST(EXTRALIBS_GUI)
7420 AC_SUBST(EXTRALIBS_OPENGL)
7421 AC_SUBST(EXTRALIBS_SDL)
7422 AC_SUBST(WITH_PLUGIN_SDL)
7423 AC_SUBST(EXTRALIBS_GNOMEPRINT)
7424 AC_SUBST(EXTRALIBS_GNOMEVFS)
7425 AC_SUBST(EXTRALIBS_HILDON)
7426 AC_SUBST(UNICODE)
7427 AC_SUBST(BUILD)
7428 AC_SUBST(DEBUG_INFO)
7429 AC_SUBST(DEBUG_FLAG)
7430 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr "[[A-Z]]" "[[a-z]]"`
7431 AC_SUBST(TOOLKIT_LOWERCASE)
7432 AC_SUBST(TOOLKIT_VERSION)
7433 AC_SUBST(SAMPLES_RPATH_FLAG)
7434 AC_SUBST(SAMPLES_RPATH_POSTLINK)
7435 AC_SUBST(HOST_SUFFIX)
7436 AC_SUBST(CPPUNIT_CFLAGS)
7437 AC_SUBST(CPPUNIT_LIBS)
7438
7439 case "$TOOLKIT" in
7440 GTK)
7441 TOOLKIT_DESC="GTK+"
7442 if test "$WXGTK20" = 1; then
7443 TOOLKIT_DESC="$TOOLKIT_DESC 2"
7444 if test "$wxUSE_LIBGNOMEPRINT" = "yes" ; then
7445 TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomeprint";
7446 fi
7447 if test "$wxUSE_LIBGNOMEVFS" = "yes" ; then
7448 TOOLKIT_EXTRA="$TOOLKIT_EXTRA gnomevfs"
7449 fi
7450 if test "$wxUSE_LIBHILDON" = "yes"; then
7451 TOOLKIT_EXTRA="$TOOLKIT_EXTRA hildon"
7452 fi
7453
7454 if test "$TOOLKIT_EXTRA" != ""; then
7455 TOOLKIT_DESC="$TOOLKIT_DESC with support for `echo $TOOLKIT_EXTRA | tr -s ' '`"
7456 fi
7457 fi
7458 ;;
7459
7460 ?*)
7461 TOOLKIT_DESC=$TOOLKIT_LOWERCASE
7462 ;;
7463
7464 *)
7465 TOOLKIT_DESC="base only"
7466 ;;
7467 esac
7468
7469 if test "$wxUSE_WINE" = "yes"; then
7470 BAKEFILE_FORCE_PLATFORM=win32
7471 fi
7472
7473 dnl ---------------------------------------------------------------------------
7474 dnl Add Universal binary support
7475 dnl Note we don't do this earlier because adding these cpp/ld flags could
7476 dnl cause configure tests to fail.
7477 dnl ---------------------------------------------------------------------------
7478 if test "$wxUSE_MAC" = 1 ; then
7479 if test "x$wxUSE_UNIVERSAL_BINARY" != xno ; then
7480 dnl --enable-universal_binary uses a default SDK (currently 10.4u)
7481 dnl --enable-universal_binary=SDK names a path to an SDK
7482 if test "x$wxUSE_UNIVERSAL_BINARY" == xyes; then
7483 OSX_UNIV_OPTS="-isysroot /Developer/SDKs/MacOSX10.4u.sdk"
7484 else
7485 dnl '' would mean universal with no SDK, which may be the case if
7486 dnl the compiler uses a sysroot by default
7487 OSX_UNIV_OPTS=${wxUSE_UNIVERSAL_BINARY:+"-isysroot '$wxUSE_UNIVERSAL_BINARY'"}
7488 fi
7489 OSX_UNIV_OPTS="$OSX_UNIV_OPTS -arch ppc -arch i386"
7490 CXXFLAGS="$OSX_UNIV_OPTS $CXXFLAGS"
7491 CFLAGS="$OSX_UNIV_OPTS $CFLAGS"
7492 LDFLAGS="$OSX_UNIV_OPTS $LDFLAGS"
7493 bk_use_pch=no
7494 fi
7495 # TODO: where do we add "-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk" for libtool (static builds only)?
7496 # The makefile currently uses AR and RANLIB, which libtool apparently supercedes.
7497 fi
7498
7499 AC_BAKEFILE([m4_include(autoconf_inc.m4)])
7500
7501 dnl HACK ALERT!!
7502 dnl For now, we need to alter bk-deps not to generate deps
7503 dnl when we've configured a Universal binary build.
7504 dnl The next version of Bakefile will have the correct fix for this
7505 dnl at which time, this hack can be removed.
7506
7507 if test "$wxUSE_MAC" = 1 ; then
7508 if test "x$wxUSE_UNIVERSAL_BINARY" != "xno" ; then
7509 sed "s/DEPSMODE=gcc/DEPSMODE=none/" < bk-deps > temp
7510 mv temp bk-deps
7511 chmod +x bk-deps
7512 fi
7513 fi
7514
7515 if test "$wxUSE_SHARED" = "yes"; then
7516
7517 dnl We get the shared build linker from bakefile, since it
7518 dnl moved all the logic for this out of this file and into
7519 dnl its own macro. But it can't decide on whether to return
7520 dnl us $(VAR), ${VAR}, or the present expansion of VAR.
7521 dnl So normalise and expand everything here now, because its
7522 dnl not going to change inside wx-config anyway.
7523 sanitised_bakefile_mess=`echo "$SHARED_LD_CXX" | tr -d '()'`
7524 EXE_LINKER=`eval echo "$sanitised_bakefile_mess"`
7525
7526 dnl Need addtional flag on OS/2, so override bakefiles value
7527 dnl (there currently is no suitable variable to which the
7528 dnl missing flags could be added, AFAICS. SN, 18.12.2004. )
7529 case "${host}" in
7530 *-pc-os2_emx | *-pc-os2-emx )
7531 SHARED_LD_CC="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7532 SHARED_LD_CXX="`pwd`/dllar.sh -name-mangler-script ./dllnames.sh -libf INITINSTANCE -libf TERMINSTANCE -o"
7533 cp -p ${srcdir}/src/os2/dllnames.sh .
7534 cp -p ${srcdir}/src/os2/dllar.sh .
7535 ;;
7536 esac
7537 else
7538
7539 dnl No bakefile support for static builds, but this should be ok for most.
7540 EXE_LINKER="$CXX -o"
7541
7542 fi
7543 if test "$wxUSE_OMF" = "yes"; then
7544 case "${host}" in
7545 *-pc-os2_emx | *-pc-os2-emx )
7546 LDFLAGS="$LDFLAGS -Zlinker /EXEPACK"
7547 LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7548 WXCONFIG_LDFLAGS_GUI="-Zlinker /PMTYPE:PM"
7549 ;;
7550 esac
7551 fi
7552
7553 dnl find out if the compiler supports PCH
7554 dnl
7555 dnl TODO: this should be in bakefile
7556 if test $GCC_PCH = 1 ; then
7557 CPPFLAGS="-DWX_PRECOMP $CPPFLAGS"
7558 fi
7559
7560 dnl TOOLCHAIN_DEFS should be used for both wx and client code
7561 WXCONFIG_CPPFLAGS="$WXCONFIG_CPPFLAGS $TOOLCHAIN_DEFS"
7562
7563 dnl for convenience, sort the samples in alphabetical order
7564 dnl
7565 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
7566 dnl in this list - hence uniq. But normally, this shouldn't be needed!
7567 dnl
7568 dnl Unfortunately, there is a bug in OS/2's tr, such that
7569 dnl tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
7570 dnl only removes the Unix-like part of the introduced line break.
7571 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
7572
7573 dnl subtle bakefile goop.
7574 dnl Used in wx-config now too, as its STATIC_FLAG with different makeup.
7575 dnl I wish we would have called it something less likely to clash with
7576 dnl things though.
7577 AC_SUBST(SHARED)
7578
7579 dnl global options
7580 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
7581 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
7582
7583 dnl toolkit options
7584 AC_SUBST(USE_GUI)
7585 AC_SUBST(AFMINSTALL)
7586 AC_SUBST(WIN32INSTALL)
7587 AC_SUBST(TOOLKIT)
7588 AC_SUBST(TOOLKIT_DIR)
7589 AC_SUBST(TOOLCHAIN_NAME)
7590 AC_SUBST(TOOLCHAIN_FULLNAME)
7591
7592 dnl wx-config options
7593 AC_SUBST(host_alias)
7594 AC_SUBST(cross_compiling)
7595 AC_SUBST(WIDGET_SET)
7596 AC_SUBST(WX_RELEASE)
7597 AC_SUBST(WX_VERSION)
7598 AC_SUBST(WX_SUBVERSION)
7599 AC_SUBST(WX_CHARTYPE)
7600 AC_SUBST(WX_DEBUGTYPE)
7601
7602 dnl note that in addition to the usual CPP/C/CXXFLAGS which are used for
7603 dnl building the library itself, we also have WXCONFIG_-prefixed variants which
7604 dnl are used when building the libraries using the library
7605 dnl
7606 dnl so put anything which should be used only during the library build in, e.g.
7607 dnl CXXFLAGS, but put everything else (by default) into WXCONFIG_CXXFLAGS
7608 dnl
7609 dnl and, finally, for some things which should be only used by wx-config but
7610 dnl not during the library compilation, use WXCONFIG_ONLY_CPPFLAGS which is
7611 dnl added to WXCONFIG_CPPFLAGS after adding the latter to CPPFLAGS
7612 AC_SUBST(WXCONFIG_CPPFLAGS)
7613 AC_SUBST(WXCONFIG_CFLAGS)
7614 AC_SUBST(WXCONFIG_CXXFLAGS)
7615
7616 AC_SUBST(WXCONFIG_LIBS)
7617 AC_SUBST(WXCONFIG_RPATH)
7618 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
7619 AC_SUBST(WXCONFIG_RESFLAGS)
7620 AC_SUBST(EXE_LINKER)
7621
7622 dnl distribution vars
7623 AC_SUBST(GUIDIST)
7624 AC_SUBST(DISTDIR)
7625
7626 dnl additional subdirectories where we will build
7627 AC_SUBST(SAMPLES_SUBDIRS)
7628
7629 dnl additional libraries and linker settings
7630 AC_SUBST(LDFLAGS)
7631 AC_SUBST(LDFLAGS_GL)
7632 AC_SUBST(OPENGL_LIBS)
7633 AC_SUBST(DMALLOC_LIBS)
7634 AC_SUBST(WX_VERSION_TAG)
7635
7636 dnl additional resurces settings
7637 AC_SUBST(RESCOMP)
7638 AC_SUBST(WINDRES)
7639 AC_SUBST(REZ)
7640 AC_SUBST(RESFLAGS)
7641 AC_SUBST(RESPROGRAMOBJ)
7642 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
7643 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
7644
7645 dnl additional for Mac OS X
7646 AC_SUBST(DEREZ)
7647 AC_SUBST(LIBWXMACRES)
7648 AC_SUBST(POSTLINK_COMMAND)
7649 AC_SUBST(MACSETFILE)
7650
7651 dnl other tools
7652 AC_SUBST(GCC)
7653 AC_SUBST(DLLTOOL)
7654
7655
7656 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
7657 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
7658 dnl - and we do use it)
7659 AC_PROG_MAKE_SET
7660
7661
7662 AC_CONFIG_HEADERS([lib/wx/include/${TOOLCHAIN_FULLNAME}/wx/setup.h:setup.h.in])
7663
7664 if test "$USE_WIN32" = 1; then
7665 AC_CONFIG_COMMANDS(
7666 [
7667 rcdefs.h
7668 ],
7669 [
7670 mkdir -p $outdir &&
7671 $CPP $infile | sed 's/^# *[1-9].*//;s/^ *//;/./,/^$/!d' > $outdir/rcdefs.h
7672 ],
7673 [
7674 CPP="$CPP"
7675 infile="$srcdir/include/wx/msw/genrcdefs.h"
7676 outdir="lib/wx/include/$TOOLCHAIN_FULLNAME/wx/msw"
7677 ]
7678 )
7679 fi
7680
7681 AC_CONFIG_FILES([ lib/wx/config/${TOOLCHAIN_FULLNAME}:wx-config.in ],
7682 [ chmod +x lib/wx/config/${TOOLCHAIN_FULLNAME} ],
7683 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7684
7685 AC_CONFIG_FILES([ lib/wx/config/inplace-${TOOLCHAIN_FULLNAME}:wx-config-inplace.in ],
7686 [ chmod +x lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} ],
7687 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}" ])
7688
7689 AC_CONFIG_FILES([ version-script Makefile ])
7690
7691 AC_CONFIG_COMMANDS([wx-config],
7692 [ rm -f wx-config
7693 ${LN_S} lib/wx/config/inplace-${TOOLCHAIN_FULLNAME} wx-config
7694 ],
7695 [ TOOLCHAIN_FULLNAME="${TOOLCHAIN_FULLNAME}"
7696 LN_S="${LN_S}"
7697 ])
7698
7699 dnl This would give us us build dir that in every significant way
7700 dnl resembles an installed wx in prefix=$builddir. It is troublesome
7701 dnl though in this form because AC_CONFIG_LINKS will fail for directories
7702 dnl on platforms that do not have symlinks.
7703 dnl AC_CONFIG_LINKS([ include/wx-$WX_RELEASE$WX_FLAVOUR:include ])
7704 dnl AC_CONFIG_LINKS([ contrib/include ])
7705
7706 if test "$wxWITH_SUBDIRS" != "no"; then
7707 dnl Configure samples, contrib etc. directories, but only if they are present:
7708 if test "$wxUSE_GUI" = "yes"; then
7709 SUBDIRS="samples demos utils contrib"
7710 else dnl we build wxBase only
7711 dnl there are no wxBase programs in contrib nor demos
7712 SUBDIRS="samples utils"
7713 fi
7714 dnl Add tests to the list of subdirs if cppunit 1.8.0+ is detected
7715 AM_PATH_CPPUNIT(1.8.0, [SUBDIRS="$SUBDIRS tests"])
7716
7717 for subdir in `echo $SUBDIRS`; do
7718 if test -d ${srcdir}/${subdir} ; then
7719 if test "$wxUSE_GUI" = "yes"; then
7720 if test ${subdir} = "samples"; then
7721 dnl only take those samples which compile in the current
7722 dnl configuration and which exist
7723 makefiles="samples/Makefile.in $makefiles"
7724 for sample in `echo $SAMPLES_SUBDIRS`; do
7725 if test -d $srcdir/samples/$sample; then
7726 makefiles="samples/$sample/Makefile.in $makefiles"
7727 fi
7728 done
7729 else
7730 dnl assume that everything compiles for utils &c
7731 dnl any that shouldn't be built can be added to
7732 dnl DISABLED_UTILS, DISABLED_CONTRIB or DISABLED_DEMOS
7733 disabled_var=DISABLED_`echo $subdir | tr [[a-z]] [[A-Z]]`;
7734 eval "disabled=\$$disabled_var"
7735 disabled=/`echo X $disabled | sed 's@ @/|/@g'`/
7736 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in) | egrep -v "$disabled"`
7737 fi
7738 else dnl we build wxBase only
7739 dnl don't take all samples/utils, just those which build with
7740 dnl wxBase
7741 if test ${subdir} = "samples"; then
7742 makefiles="samples/Makefile.in samples/console/Makefile.in"
7743 elif test ${subdir} = "utils"; then
7744 makefiles=""
7745 for util in HelpGen tex2rtf ; do
7746 if test -d $srcdir/utils/$util ; then
7747 makefiles="utils/$util/Makefile.in \
7748 utils/$util/src/Makefile.in \
7749 $makefiles"
7750 fi
7751 done
7752 else dnl assume that everything compiles for tests
7753 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
7754 fi
7755 fi
7756
7757 for mkin in $makefiles ; do
7758 mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
7759 AC_CONFIG_FILES([$mk])
7760 done
7761 fi
7762 done
7763 fi dnl wxWITH_SUBDIRS
7764
7765 AC_OUTPUT
7766
7767 dnl report how we have been configured
7768 echo
7769 echo "Configured wxWidgets ${WX_VERSION} for \`${host}'"
7770 echo ""
7771 echo " Which GUI toolkit should wxWidgets use? ${TOOLKIT_DESC}"
7772 echo " Should wxWidgets be compiled into single library? ${wxUSE_MONOLITHIC:-yes}"
7773
7774 echo " Should wxWidgets be compiled in debug mode? ${wxUSE_DEBUG:-no}"
7775 echo " Should wxWidgets be linked as a shared library? ${wxUSE_SHARED:-no}"
7776 echo " Should wxWidgets be compiled in Unicode mode? ${wxUSE_UNICODE:-no}"
7777
7778 echo " What level of wxWidgets compatibility should be enabled?"
7779 echo " wxWidgets 2.4 ${WXWIN_COMPATIBILITY_2_4:-no}"
7780 echo " wxWidgets 2.6 ${WXWIN_COMPATIBILITY_2_6:-yes}"
7781
7782 echo " Which libraries should wxWidgets use?"
7783 echo " jpeg ${wxUSE_LIBJPEG-none}"
7784 echo " png ${wxUSE_LIBPNG-none}"
7785 echo " regex ${wxUSE_REGEX}"
7786 echo " tiff ${wxUSE_LIBTIFF-none}"
7787 if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1; then
7788 echo " xpm ${wxUSE_LIBXPM-none}"
7789 fi
7790 echo " zlib ${wxUSE_ZLIB}"
7791 echo " odbc ${wxUSE_ODBC}"
7792 echo " expat ${wxUSE_EXPAT}"
7793 echo " libmspack ${wxUSE_LIBMSPACK}"
7794 echo " sdl ${wxUSE_LIBSDL}"
7795
7796 echo ""
7797
7798 dnl vi: set et sts=4 sw=4 com=\:dnl: