fixed iODBC detection
[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.57)
5
6 dnl ---------------------------------------------------------------------------
7 dnl
8 dnl Top-level configure.in for wxWindows by Robert Roebling, Phil Blecker,
9 dnl Vadim Zeitlin and Ron Lee
10 dnl
11 dnl This script is under the wxWindows licence.
12 dnl
13 dnl Version: $Id$
14 dnl ---------------------------------------------------------------------------
15
16 dnl ---------------------------------------------------------------------------
17 dnl initialization
18 dnl ---------------------------------------------------------------------------
19
20 AC_INIT([wxWindows], [2.5.0], [wx-dev@lists.wxwindows.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 dnl
35 dnl ..and update WX_CURRENT, WX_RELEASE and WX_AGE according to the
36 dnl following rules:
37 dnl
38 dnl    If any changes have been made to the public interface, that is if any
39 dnl    exported class, method, global or global type has been added, removed
40 dnl    or changed in any way, then do:  WX_CURRENT += 1
41 dnl
42 dnl    If source changes have been made that *do not* alter the public
43 dnl    interface then do:  WX_REVISION += 1
44 dnl    If WX_CURRENT was incremented (as above) instead do:  WX_REVISION = 0
45 dnl
46 dnl    If any public interface was added, do:  WX_AGE += 1
47 dnl    If any public interface was removed (or altered in a way effectively
48 dnl    removing the previous definition), instead do:  WX_AGE = 0
49 dnl
50 dnl When the major or minor version numbers are incremented, all the above
51 dnl variables should be reset to 0.
52 dnl
53 dnl The resulting library name will be of the form:
54 dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
55
56 WX_MAJOR_VERSION_NUMBER=2
57 WX_MINOR_VERSION_NUMBER=5
58 WX_RELEASE_NUMBER=0
59
60 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
61 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
62
63 WX_MSW_VERSION=$WX_MAJOR_VERSION_NUMBER$WX_MINOR_VERSION_NUMBER$WX_RELEASE_NUMBER
64
65 WX_CURRENT=0
66 WX_REVISION=0
67 WX_AGE=0
68
69
70 dnl ------------------------------------------------------------------------
71 dnl Check platform (host system)
72 dnl ------------------------------------------------------------------------
73
74 dnl OS (assume Unix)
75 USE_UNIX=1
76 USE_OS2=0
77 USE_WIN32=0
78 USE_DOS=0
79 USE_BEOS=0
80 USE_MAC=0
81
82 dnl Unix kind
83 USE_AIX=
84 USE_BSD=                            dnl any BSD
85 USE_DARWIN=                         dnl a.k.a. Mac OS X
86 USE_FREEBSD=
87 USE_GNU=                            dnl GNU/Hurd
88 USE_HPUX=
89 USE_LINUX=
90 USE_NETBSD=
91 USE_OPENBSD=
92 USE_OSF=                            dnl OSF/1 (obsolete?)
93 USE_SGI=
94 USE_SOLARIS=                        dnl Solaris ("SunOS" >= 5)
95 USE_SUN=                            dnl SunOS or Solaris
96 USE_SUNOS=                          dnl old/real SunOS (obsolete)
97 USE_SVR4=                           dnl SysV R4
98 USE_SYSV=                           dnl any System V
99 USE_VMS=
100 USE_ULTRIX=
101 USE_UNIXWARE=
102
103 dnl hardware platform
104 USE_ALPHA=
105
106 dnl on some platforms xxx_r() functions are declared inside "#ifdef
107 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
108 dnl than checking it during run-time
109 NEEDS_D_REENTRANT_FOR_R_FUNCS=0
110
111 dnl the list of all available toolkits
112 dnl
113 dnl update NUM_TOOLKITS calculation below when adding a new toolkit here!
114 ALL_TOOLKITS="COCOA GTK MAC MGL MICROWIN MOTIF MSW PM X11"
115
116 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
117 dnl     which are either yes or no
118 DEFAULT_wxUSE_COCOA=0
119 DEFAULT_wxUSE_GTK=0
120 DEFAULT_wxUSE_MAC=0
121 DEFAULT_wxUSE_MGL=0
122 DEFAULT_wxUSE_MICROWIN=0
123 DEFAULT_wxUSE_MOTIF=0
124 DEFAULT_wxUSE_MSW=0
125 DEFAULT_wxUSE_PM=0
126 DEFAULT_wxUSE_X11=0
127
128 dnl these are the values which are really default for the given platform -
129 dnl they're not cached and are only used if no --with-toolkit was given *and*
130 dnl nothing was found in the cache
131 DEFAULT_DEFAULT_wxUSE_COCOA=0
132 DEFAULT_DEFAULT_wxUSE_GTK=0
133 DEFAULT_DEFAULT_wxUSE_MAC=0
134 DEFAULT_DEFAULT_wxUSE_MGL=0
135 DEFAULT_DEFAULT_wxUSE_MICROWIN=0
136 DEFAULT_DEFAULT_wxUSE_MOTIF=0
137 DEFAULT_DEFAULT_wxUSE_MSW=0
138 DEFAULT_DEFAULT_wxUSE_PM=0
139 DEFAULT_DEFAULT_wxUSE_X11=0
140
141 PROGRAM_EXT=
142 SO_SUFFIX=so
143 SAMPLES_RPATH_FLAG=
144 SAMPLES_RPATH_POSTLINK=
145
146 dnl to support a new system, you need to add its canonical name (as determined
147 dnl by config.sub or specified by the configure command line) to this "case"
148 dnl and also define the shared library flags below - search for
149 dnl SHARED_LIB_SETUP to find the exact place
150 case "${host}" in
151   *-hp-hpux* )
152     USE_HPUX=1
153     DEFAULT_DEFAULT_wxUSE_MOTIF=1
154     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
155     SO_SUFFIX=sl
156     AC_DEFINE(__HPUX__)
157   ;;
158   *-*-linux* )
159     USE_LINUX=1
160     AC_DEFINE(__LINUX__)
161     TMP=`uname -m`
162     if test "x$TMP" = "xalpha"; then
163       USE_ALPHA=1
164       AC_DEFINE(__ALPHA__)
165     fi
166     DEFAULT_DEFAULT_wxUSE_GTK=1
167   ;;
168   *-*-gnu* )
169     USE_GNU=1
170     AC_DEFINE(__GNU__)
171     TMP=`uname -m`
172     if test "x$TMP" = "xalpha"; then
173       USE_ALPHA=1
174       AC_DEFINE(__ALPHA__)
175     fi
176     DEFAULT_DEFAULT_wxUSE_GTK=1
177   ;;
178   *-*-irix5* | *-*-irix6* )
179     USE_SGI=1
180     USE_SVR4=1
181     AC_DEFINE(__SGI__)
182     AC_DEFINE(__SVR4__)
183     DEFAULT_DEFAULT_wxUSE_MOTIF=1
184   ;;
185   *-*-solaris2* )
186     USE_SUN=1
187     USE_SOLARIS=1
188     USE_SVR4=1
189     AC_DEFINE(__SUN__)
190     AC_DEFINE(__SOLARIS__)
191     AC_DEFINE(__SVR4__)
192     DEFAULT_DEFAULT_wxUSE_MOTIF=1
193     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
194   ;;
195   *-*-sunos4* )
196     USE_SUN=1
197     USE_SUNOS=1
198     USE_BSD=1
199     AC_DEFINE(__SUN__)
200     AC_DEFINE(__SUNOS__)
201     AC_DEFINE(__BSD__)
202     DEFAULT_DEFAULT_wxUSE_MOTIF=1
203   ;;
204   *-*-freebsd*)
205     USE_BSD=1
206     USE_FREEBSD=1
207     AC_DEFINE(__FREEBSD__)
208     AC_DEFINE(__BSD__)
209     DEFAULT_DEFAULT_wxUSE_GTK=1
210   ;;
211   *-*-openbsd*)
212     USE_BSD=1
213     USE_OPENBSD=1
214     AC_DEFINE(__OPENBSD__)
215     AC_DEFINE(__BSD__)
216     DEFAULT_DEFAULT_wxUSE_GTK=1
217   ;;
218   *-*-netbsd*)
219     USE_BSD=1
220     USE_NETBSD=1
221     AC_DEFINE(__NETBSD__)
222     AC_DEFINE(__BSD__)
223     DEFAULT_DEFAULT_wxUSE_GTK=1
224   ;;
225   *-*-osf* )
226     USE_ALPHA=1
227     USE_OSF=1
228     AC_DEFINE(__ALPHA__)
229     AC_DEFINE(__OSF__)
230     DEFAULT_DEFAULT_wxUSE_MOTIF=1
231     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
232   ;;
233   *-*-dgux5* )
234     USE_ALPHA=1
235     USE_SVR4=1
236     AC_DEFINE(__ALPHA__)
237     AC_DEFINE(__SVR4__)
238     DEFAULT_DEFAULT_wxUSE_MOTIF=1
239   ;;
240   *-*-sysv5* )
241     USE_SYSV=1
242     USE_SVR4=1
243     AC_DEFINE(__SYSV__)
244     AC_DEFINE(__SVR4__)
245     DEFAULT_DEFAULT_wxUSE_MOTIF=1
246   ;;
247   *-*-aix* )
248     USE_AIX=1
249     USE_SYSV=1
250     USE_SVR4=1
251     dnl quoting from http://www-1.ibm.com/servers/esdd/articles/gnu.html:
252     dnl
253     dnl     Both archive libraries and shared libraries on AIX have an .a
254     dnl     extension. This will explain why you can't link with an .so and
255     dnl     why it works with the name changed to .a.
256     SO_SUFFIX=a
257     AC_DEFINE(__AIX__)
258     AC_DEFINE(__SYSV__)
259     AC_DEFINE(__SVR4__)
260     DEFAULT_DEFAULT_wxUSE_MOTIF=1
261   ;;
262
263   *-*-*UnixWare*)
264     USE_SYSV=1
265     USE_SVR4=1
266     USE_UNIXWARE=1
267     AC_DEFINE(__UNIXWARE__)
268   ;;
269
270   *-*-cygwin* | *-*-mingw32* )
271     dnl MBN: some of the defines have been moved after toolkit detection
272     dnl      because for wxMotif/wxGTK/wxX11 to build on Cygwin
273     dnl      USE_UNIX  must be set and not USE_WIN32
274     SO_SUFFIX=dll
275     PROGRAM_EXT=".exe"
276     RESCOMP=windres
277     DEFAULT_DEFAULT_wxUSE_MSW=1
278   ;;
279
280   *-pc-msdosdjgpp )
281     USE_UNIX=0
282     USE_DOS=1
283     AC_DEFINE(__DOS__)
284     PROGRAM_EXT=".exe"
285     DEFAULT_DEFAULT_wxUSE_MGL=1
286     dnl DJGPP needs explicit -lstdc++ for some reason (VS: mayb some versions only?)
287     LIBS="$LIBS -lstdc++"
288   ;;
289
290   *-pc-os2_emx | *-pc-os2-emx )
291     AC_DEFINE(__EMX__)
292     USE_OS2=1
293     PROGRAM_EXT=".exe"
294     DEFAULT_DEFAULT_wxUSE_PM=1
295     dnl "c++" wrapper is not always available, so always use plain gcc.
296     CXX=gcc
297     LDFLAGS="$LDFLAGS -Zcrtdll -Zsysv-signals"
298     dnl
299     dnl Some special code that's automatically added by autoconf-2.57 for OS/2
300     dnl and hopefully also by autoconf-2.58 and newer on all other platforms.
301     dnl For now however, we still need it to make sure the configure script
302     dnl works on OS/2 no matter what platform it is generated on.
303     ac_executable_extensions=".exe"
304     export ac_executable_extensions
305     dnl This strange code is necessary to deal with handling of
306     dnl backslashes by ksh and pdksh's sh variant.
307     ac_save_IFS="$IFS"
308     IFS='\\'
309     ac_TEMP_PATH=
310     for ac_dir in $PATH; do
311       IFS=$ac_save_IFS
312       if test -z "$ac_TEMP_PATH"; then
313         ac_TEMP_PATH="$ac_dir"
314       else
315         ac_TEMP_PATH="$ac_TEMP_PATH/$ac_dir"
316       fi
317     done
318     export PATH="$ac_TEMP_PATH"
319     unset ac_TEMP_PATH
320   ;;
321
322   powerpc-*-darwin* )
323     dnl PowerPC Darwin based distributions (including Mac OS X)
324     USE_BSD=1
325     USE_DARWIN=1
326     SO_SUFFIX=dylib
327     AC_DEFINE(__BSD__)
328     AC_DEFINE(__DARWIN__)
329     AC_DEFINE(__POWERPC__)
330     AC_DEFINE(TARGET_CARBON)
331     DEFAULT_DEFAULT_wxUSE_MAC=1
332   ;;
333
334   *-*-beos* )
335     dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
336     USE_BEOS=1
337     AC_DEFINE(__BEOS__)
338   ;;
339
340   *)
341     AC_MSG_ERROR(unknown system type ${host}.)
342 esac
343
344 dnl ---------------------------------------------------------------------------
345 dnl command line options for configure
346 dnl ---------------------------------------------------------------------------
347
348 dnl the default values for all options - we collect them all here to simplify
349 dnl modification of the default values (for example, if the defaults for some
350 dnl platform should be changed, it can be done here too)
351 dnl
352 dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above
353
354 WX_ARG_CACHE_INIT
355
356 dnl useful to test the compilation with minimum options, define as 0 for normal
357 dnl usage
358 DEBUG_CONFIGURE=0
359 if test $DEBUG_CONFIGURE = 1; then
360   DEFAULT_wxUSE_UNIVERSAL=no
361   DEFAULT_wxUSE_STL=no
362
363   DEFAULT_wxUSE_NANOX=no
364
365   DEFAULT_wxUSE_THREADS=yes
366
367   DEFAULT_wxUSE_SHARED=yes
368   DEFAULT_wxUSE_OPTIMISE=no
369   DEFAULT_wxUSE_PROFILE=no
370   DEFAULT_wxUSE_NO_DEPS=no
371   DEFAULT_wxUSE_NO_RTTI=no
372   DEFAULT_wxUSE_NO_EXCEPTIONS=no
373   DEFAULT_wxUSE_PERMISSIVE=no
374   DEFAULT_wxUSE_DEBUG_FLAG=yes
375   DEFAULT_wxUSE_DEBUG_INFO=yes
376   DEFAULT_wxUSE_DEBUG_GDB=yes
377   DEFAULT_wxUSE_MEM_TRACING=no
378   DEFAULT_wxUSE_DEBUG_CONTEXT=no
379   DEFAULT_wxUSE_DMALLOC=no
380   DEFAULT_wxUSE_APPLE_IEEE=no
381
382   DEFAULT_wxUSE_EXCEPTIONS=no
383   DEFAULT_wxUSE_LOG=yes
384   DEFAULT_wxUSE_LOGWINDOW=no
385   DEFAULT_wxUSE_LOGGUI=no
386   DEFAULT_wxUSE_LOGDIALOG=no
387
388   DEFAULT_wxUSE_GUI=yes
389   DEFAULT_wxUSE_CONTROLS=no
390
391   DEFAULT_wxUSE_REGEX=no
392   DEFAULT_wxUSE_XML=no
393   DEFAULT_wxUSE_EXPAT=no
394   DEFAULT_wxUSE_ZLIB=no
395   DEFAULT_wxUSE_LIBPNG=no
396   DEFAULT_wxUSE_LIBJPEG=no
397   DEFAULT_wxUSE_LIBTIFF=no
398   DEFAULT_wxUSE_ODBC=no
399   DEFAULT_wxUSE_OPENGL=no
400
401   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
402   DEFAULT_wxUSE_SNGLINST_CHECKER=no
403   DEFAULT_wxUSE_STD_IOSTREAM=no
404   DEFAULT_wxUSE_CMDLINE_PARSER=no
405   DEFAULT_wxUSE_DATETIME=no
406   DEFAULT_wxUSE_TIMER=no
407   DEFAULT_wxUSE_STOPWATCH=no
408   DEFAULT_wxUSE_FILE=no
409   DEFAULT_wxUSE_FFILE=no
410   DEFAULT_wxUSE_TEXTBUFFER=no
411   DEFAULT_wxUSE_TEXTFILE=no
412   DEFAULT_wxUSE_WAVE=no
413   DEFAULT_wxUSE_INTL=no
414   DEFAULT_wxUSE_CONFIG=no
415   DEFAULT_wxUSE_FONTMAP=no
416   DEFAULT_wxUSE_STREAMS=no
417   DEFAULT_wxUSE_SOCKETS=no
418   DEFAULT_wxUSE_OLE=no
419   DEFAULT_wxUSE_DATAOBJ=no
420   DEFAULT_wxUSE_DIALUP_MANAGER=no
421   DEFAULT_wxUSE_JOYSTICK=no
422   DEFAULT_wxUSE_DYNLIB_CLASS=no
423   DEFAULT_wxUSE_DYNAMIC_LOADER=no
424   DEFAULT_wxUSE_LONGLONG=no
425   DEFAULT_wxUSE_GEOMETRY=no
426
427   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
428   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
429   DEFAULT_wxUSE_POSTSCRIPT=no
430
431   DEFAULT_wxUSE_CLIPBOARD=no
432   DEFAULT_wxUSE_TOOLTIPS=no
433   DEFAULT_wxUSE_DRAG_AND_DROP=no
434   DEFAULT_wxUSE_DRAGIMAGE=no
435   DEFAULT_wxUSE_SPLINES=no
436
437   DEFAULT_wxUSE_MDI_ARCHITECTURE=no
438   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
439   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
440
441   DEFAULT_wxUSE_RESOURCES=no
442   DEFAULT_wxUSE_CONSTRAINTS=no
443   DEFAULT_wxUSE_IPC=no
444   DEFAULT_wxUSE_HELP=no
445   DEFAULT_wxUSE_MS_HTML_HELP=no
446   DEFAULT_wxUSE_WXHTML_HELP=no
447   DEFAULT_wxUSE_TREELAYOUT=no
448   DEFAULT_wxUSE_METAFILE=no
449   DEFAULT_wxUSE_MIMETYPE=no
450   DEFAULT_wxUSE_SYSTEM_OPTIONS=no
451   DEFAULT_wxUSE_PROTOCOL=no
452   DEFAULT_wxUSE_PROTOCOL_HTTP=no
453   DEFAULT_wxUSE_PROTOCOL_FTP=no
454   DEFAULT_wxUSE_PROTOCOL_FILE=no
455   DEFAULT_wxUSE_URL=no
456
457   DEFAULT_wxUSE_COMMONDLGS=no
458   DEFAULT_wxUSE_CHOICEDLG=no
459   DEFAULT_wxUSE_COLOURDLG=no
460   DEFAULT_wxUSE_DIRDLG=no
461   DEFAULT_wxUSE_FILEDLG=no
462   DEFAULT_wxUSE_FINDREPLDLG=no
463   DEFAULT_wxUSE_FONTDLG=no
464   DEFAULT_wxUSE_MSGDLG=no
465   DEFAULT_wxUSE_NUMBERDLG=no
466   DEFAULT_wxUSE_TEXTDLG=no
467   DEFAULT_wxUSE_SPLASH=no
468   DEFAULT_wxUSE_STARTUP_TIPS=no
469   DEFAULT_wxUSE_PROGRESSDLG=no
470   DEFAULT_wxUSE_WIZARDDLG=no
471
472   DEFAULT_wxUSE_MENUS=no
473   DEFAULT_wxUSE_MINIFRAME=no
474   DEFAULT_wxUSE_HTML=no
475   DEFAULT_wxUSE_FILESYSTEM=no
476   DEFAULT_wxUSE_FS_INET=no
477   DEFAULT_wxUSE_FS_ZIP=no
478   DEFAULT_wxUSE_BUSYINFO=no
479   DEFAULT_wxUSE_ZIPSTREAM=no
480   DEFAULT_wxUSE_VALIDATORS=no
481
482   DEFAULT_wxUSE_ACCEL=no
483   DEFAULT_wxUSE_BUTTON=no
484   DEFAULT_wxUSE_BMPBUTTON=no
485   DEFAULT_wxUSE_CALCTRL=no
486   DEFAULT_wxUSE_CARET=no
487   DEFAULT_wxUSE_CHECKBOX=no
488   DEFAULT_wxUSE_CHECKLST=no
489   DEFAULT_wxUSE_CHOICE=no
490   DEFAULT_wxUSE_COMBOBOX=no
491   DEFAULT_wxUSE_DISPLAY=no
492   DEFAULT_wxUSE_GAUGE=no
493   DEFAULT_wxUSE_GRID=no
494   DEFAULT_wxUSE_IMAGLIST=no
495   DEFAULT_wxUSE_LISTBOOK=no
496   DEFAULT_wxUSE_LISTBOX=no
497   DEFAULT_wxUSE_LISTCTRL=no
498   DEFAULT_wxUSE_NOTEBOOK=no
499   DEFAULT_wxUSE_RADIOBOX=no
500   DEFAULT_wxUSE_RADIOBTN=no
501   DEFAULT_wxUSE_SASH=no
502   DEFAULT_wxUSE_SCROLLBAR=no
503   DEFAULT_wxUSE_SLIDER=no
504   DEFAULT_wxUSE_SPINBTN=no
505   DEFAULT_wxUSE_SPINCTRL=no
506   DEFAULT_wxUSE_SPLITTER=no
507   DEFAULT_wxUSE_STATBMP=no
508   DEFAULT_wxUSE_STATBOX=no
509   DEFAULT_wxUSE_STATLINE=no
510   DEFAULT_wxUSE_STATTEXT=no
511   DEFAULT_wxUSE_STATUSBAR=yes
512   DEFAULT_wxUSE_TABDIALOG=no
513   DEFAULT_wxUSE_TEXTCTRL=no
514   DEFAULT_wxUSE_TOGGLEBTN=no
515   DEFAULT_wxUSE_TOOLBAR=no
516   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
517   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
518   DEFAULT_wxUSE_TREECTRL=no
519   DEFAULT_wxUSE_POPUPWIN=no
520   DEFAULT_wxUSE_TIPWINDOW=no
521
522   DEFAULT_wxUSE_UNICODE=no
523   DEFAULT_wxUSE_UNICODE_MSLU=no
524   DEFAULT_wxUSE_WCSRTOMBS=no
525
526   DEFAULT_wxUSE_PALETTE=no
527   DEFAULT_wxUSE_IMAGE=no
528   DEFAULT_wxUSE_GIF=no
529   DEFAULT_wxUSE_PCX=no
530   DEFAULT_wxUSE_PNM=no
531   DEFAULT_wxUSE_IFF=no
532   DEFAULT_wxUSE_XPM=no
533   DEFAULT_wxUSE_ICO_CUR=no
534   DEFAULT_wxUSE_ACCESSIBILITY=no
535   
536   DEFAULT_wxUSE_MONOLITHIC=no
537   DEFAULT_wxUSE_OFFICIAL_BUILD=no
538 else
539   DEFAULT_wxUSE_UNIVERSAL=no
540   DEFAULT_wxUSE_STL=no
541
542   DEFAULT_wxUSE_NANOX=no
543
544   DEFAULT_wxUSE_THREADS=yes
545
546   DEFAULT_wxUSE_SHARED=yes
547   DEFAULT_wxUSE_OPTIMISE=yes
548   DEFAULT_wxUSE_PROFILE=no
549   DEFAULT_wxUSE_NO_DEPS=no
550   DEFAULT_wxUSE_NO_RTTI=no
551   DEFAULT_wxUSE_NO_EXCEPTIONS=no
552   DEFAULT_wxUSE_PERMISSIVE=no
553   DEFAULT_wxUSE_DEBUG_FLAG=no
554   DEFAULT_wxUSE_DEBUG_INFO=no
555   DEFAULT_wxUSE_DEBUG_GDB=no
556   DEFAULT_wxUSE_MEM_TRACING=no
557   DEFAULT_wxUSE_DEBUG_CONTEXT=no
558   DEFAULT_wxUSE_DMALLOC=no
559   DEFAULT_wxUSE_APPLE_IEEE=yes
560
561   DEFAULT_wxUSE_EXCEPTIONS=yes
562   DEFAULT_wxUSE_LOG=yes
563   DEFAULT_wxUSE_LOGWINDOW=yes
564   DEFAULT_wxUSE_LOGGUI=yes
565   DEFAULT_wxUSE_LOGDIALOG=yes
566
567   DEFAULT_wxUSE_GUI=yes
568
569   DEFAULT_wxUSE_REGEX=yes
570   DEFAULT_wxUSE_XML=yes
571   DEFAULT_wxUSE_EXPAT=yes
572   DEFAULT_wxUSE_ZLIB=yes
573   DEFAULT_wxUSE_LIBPNG=yes
574   DEFAULT_wxUSE_LIBJPEG=yes
575   DEFAULT_wxUSE_LIBTIFF=yes
576   DEFAULT_wxUSE_ODBC=no
577   DEFAULT_wxUSE_OPENGL=no
578
579   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
580   DEFAULT_wxUSE_SNGLINST_CHECKER=yes
581   DEFAULT_wxUSE_STD_IOSTREAM=no
582   DEFAULT_wxUSE_CMDLINE_PARSER=yes
583   DEFAULT_wxUSE_DATETIME=yes
584   DEFAULT_wxUSE_TIMER=yes
585   DEFAULT_wxUSE_STOPWATCH=yes
586   DEFAULT_wxUSE_FILE=yes
587   DEFAULT_wxUSE_FFILE=yes
588   DEFAULT_wxUSE_TEXTBUFFER=yes
589   DEFAULT_wxUSE_TEXTFILE=yes
590   DEFAULT_wxUSE_WAVE=no
591   DEFAULT_wxUSE_INTL=yes
592   DEFAULT_wxUSE_CONFIG=yes
593   DEFAULT_wxUSE_FONTMAP=yes
594   DEFAULT_wxUSE_STREAMS=yes
595   DEFAULT_wxUSE_SOCKETS=yes
596   DEFAULT_wxUSE_OLE=yes
597   DEFAULT_wxUSE_DATAOBJ=yes
598   DEFAULT_wxUSE_DIALUP_MANAGER=yes
599   DEFAULT_wxUSE_JOYSTICK=yes
600   DEFAULT_wxUSE_DYNLIB_CLASS=yes
601   DEFAULT_wxUSE_DYNAMIC_LOADER=yes
602   DEFAULT_wxUSE_LONGLONG=yes
603   DEFAULT_wxUSE_GEOMETRY=yes
604
605   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
606   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
607   DEFAULT_wxUSE_POSTSCRIPT=yes
608
609   DEFAULT_wxUSE_CLIPBOARD=yes
610   DEFAULT_wxUSE_TOOLTIPS=yes
611   DEFAULT_wxUSE_DRAG_AND_DROP=yes
612   DEFAULT_wxUSE_DRAGIMAGE=yes
613   DEFAULT_wxUSE_SPLINES=yes
614
615   DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
616   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
617   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
618
619   DEFAULT_wxUSE_RESOURCES=no
620   DEFAULT_wxUSE_CONSTRAINTS=yes
621   DEFAULT_wxUSE_IPC=yes
622   DEFAULT_wxUSE_HELP=yes
623   DEFAULT_wxUSE_MS_HTML_HELP=yes
624   DEFAULT_wxUSE_WXHTML_HELP=yes
625   DEFAULT_wxUSE_TREELAYOUT=yes
626   DEFAULT_wxUSE_METAFILE=yes
627   DEFAULT_wxUSE_MIMETYPE=yes
628   DEFAULT_wxUSE_SYSTEM_OPTIONS=yes
629   DEFAULT_wxUSE_PROTOCOL=yes
630   DEFAULT_wxUSE_PROTOCOL_HTTP=yes
631   DEFAULT_wxUSE_PROTOCOL_FTP=yes
632   DEFAULT_wxUSE_PROTOCOL_FILE=yes
633   DEFAULT_wxUSE_URL=yes
634
635   DEFAULT_wxUSE_COMMONDLGS=yes
636   DEFAULT_wxUSE_CHOICEDLG=yes
637   DEFAULT_wxUSE_COLOURDLG=yes
638   DEFAULT_wxUSE_DIRDLG=yes
639   DEFAULT_wxUSE_FILEDLG=yes
640   DEFAULT_wxUSE_FINDREPLDLG=yes
641   DEFAULT_wxUSE_FONTDLG=yes
642   DEFAULT_wxUSE_MSGDLG=yes
643   DEFAULT_wxUSE_NUMBERDLG=yes
644   DEFAULT_wxUSE_TEXTDLG=yes
645   DEFAULT_wxUSE_SPLASH=yes
646   DEFAULT_wxUSE_STARTUP_TIPS=yes
647   DEFAULT_wxUSE_PROGRESSDLG=yes
648   DEFAULT_wxUSE_WIZARDDLG=yes
649
650   DEFAULT_wxUSE_MENUS=yes
651   DEFAULT_wxUSE_MINIFRAME=yes
652   DEFAULT_wxUSE_HTML=yes
653   DEFAULT_wxUSE_FILESYSTEM=yes
654   DEFAULT_wxUSE_FS_INET=yes
655   DEFAULT_wxUSE_FS_ZIP=yes
656   DEFAULT_wxUSE_BUSYINFO=yes
657   DEFAULT_wxUSE_ZIPSTREAM=yes
658   DEFAULT_wxUSE_VALIDATORS=yes
659
660   DEFAULT_wxUSE_ACCEL=yes
661   DEFAULT_wxUSE_BUTTON=yes
662   DEFAULT_wxUSE_BMPBUTTON=yes
663   DEFAULT_wxUSE_CALCTRL=yes
664   DEFAULT_wxUSE_CARET=yes
665   DEFAULT_wxUSE_CHECKBOX=yes
666   DEFAULT_wxUSE_CHECKLST=yes
667   DEFAULT_wxUSE_CHOICE=yes
668   DEFAULT_wxUSE_COMBOBOX=yes
669   DEFAULT_wxUSE_DISPLAY=no
670   DEFAULT_wxUSE_GAUGE=yes
671   DEFAULT_wxUSE_GRID=yes
672   DEFAULT_wxUSE_IMAGLIST=yes
673   DEFAULT_wxUSE_LISTBOOK=yes
674   DEFAULT_wxUSE_LISTBOX=yes
675   DEFAULT_wxUSE_LISTCTRL=yes
676   DEFAULT_wxUSE_NOTEBOOK=yes
677   DEFAULT_wxUSE_RADIOBOX=yes
678   DEFAULT_wxUSE_RADIOBTN=yes
679   DEFAULT_wxUSE_SASH=yes
680   DEFAULT_wxUSE_SCROLLBAR=yes
681   DEFAULT_wxUSE_SLIDER=yes
682   DEFAULT_wxUSE_SPINBTN=yes
683   DEFAULT_wxUSE_SPINCTRL=yes
684   DEFAULT_wxUSE_SPLITTER=yes
685   DEFAULT_wxUSE_STATBMP=yes
686   DEFAULT_wxUSE_STATBOX=yes
687   DEFAULT_wxUSE_STATLINE=yes
688   DEFAULT_wxUSE_STATTEXT=yes
689   DEFAULT_wxUSE_STATUSBAR=yes
690   DEFAULT_wxUSE_TABDIALOG=no
691   DEFAULT_wxUSE_TEXTCTRL=yes
692   DEFAULT_wxUSE_TOGGLEBTN=yes
693   DEFAULT_wxUSE_TOOLBAR=yes
694   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
695   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
696   DEFAULT_wxUSE_TREECTRL=yes
697   DEFAULT_wxUSE_POPUPWIN=yes
698   DEFAULT_wxUSE_TIPWINDOW=yes
699
700   DEFAULT_wxUSE_UNICODE=no
701   DEFAULT_wxUSE_UNICODE_MSLU=yes
702   DEFAULT_wxUSE_WCSRTOMBS=no
703
704   DEFAULT_wxUSE_PALETTE=yes
705   DEFAULT_wxUSE_IMAGE=yes
706   DEFAULT_wxUSE_GIF=yes
707   DEFAULT_wxUSE_PCX=yes
708   DEFAULT_wxUSE_IFF=no
709   DEFAULT_wxUSE_PNM=yes
710   DEFAULT_wxUSE_XPM=yes
711   DEFAULT_wxUSE_ICO_CUR=yes
712   DEFAULT_wxUSE_ACCESSIBILITY=no
713   
714   DEFAULT_wxUSE_MONOLITHIC=no
715   DEFAULT_wxUSE_OFFICIAL_BUILD=no
716 fi
717
718 dnl WX_ARG_WITH should be used to select whether an external package will be
719 dnl used or not, to configure compile-time features of this package itself,
720 dnl use WX_ARG_ENABLE instead
721
722 dnl ============================
723 dnl external package dependecies
724 dnl ============================
725
726 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
727 dnl these values manually
728 for toolkit in `echo $ALL_TOOLKITS`; do
729   LINE=`grep "wxUSE_$toolkit=" ${wx_arg_cache_file}`
730   if test "x$LINE" != "x" ; then
731     has_toolkit_in_cache=1
732     eval "DEFAULT_$LINE"
733     eval "CACHE_$toolkit=1"
734   fi
735 done
736
737 dnl ---------------------------------------------------------------------------
738 dnl --disable-gui will build only non-GUI part of wxWindows: check for this
739 dnl first to disable many other switches if it's given
740 dnl
741 dnl NB: this is still in testing stage, don't use if you don't know what you're
742 dnl     doing
743 dnl ---------------------------------------------------------------------------
744
745 WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
746 WX_ARG_ENABLE(monolithic,  [  --disable-monolithic    don't build wxWindows as single library], wxUSE_MONOLITHIC)
747
748 if test "$wxUSE_GUI" = "yes"; then
749
750 WX_ARG_ENABLE(universal,   [  --enable-universal      use wxWindows GUI controls instead of native ones], wxUSE_UNIVERSAL)
751 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
752 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
753 AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
754 AC_ARG_WITH(cocoa,         [  --with-cocoa            use Cocoa], [wxUSE_COCOA="$withval" TOOLKIT_GIVEN=1])
755 AC_ARG_WITH(wine,          [  --with-wine             use Wine], [wxUSE_WINE="$withval" CACHE_WINE=1])
756 AC_ARG_WITH(msw,           [  --with-msw              use MS-Windows], [wxUSE_MSW="$withval" CACHE_MSW=1 TOOLKIT_GIVEN=1])
757 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
758 AC_ARG_WITH(mgl,           [  --with-mgl              use SciTech MGL], [wxUSE_MGL="$withval" wxUSE_UNIVERSAL="yes" CACHE_MGL=1 TOOLKIT_GIVEN=1])
759 AC_ARG_WITH(microwin,      [  --with-microwin         use MicroWindows], [wxUSE_MICROWIN="$withval" CACHE_MICROWIN=1 TOOLKIT_GIVEN=1])
760 AC_ARG_WITH(x11,           [  --with-x11              use X11], [wxUSE_X11="$withval" wxUSE_UNIVERSAL="yes" CACHE_X11=1 TOOLKIT_GIVEN=1])
761 WX_ARG_ENABLE(nanox,       [  --enable-nanox          use NanoX], wxUSE_NANOX)
762
763 WX_ARG_ENABLE(gtk2,        [  --enable-gtk2           use GTK+ 2.0 if available (EXPERIMENTAL)], wxUSE_GTK2)
764
765 WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
766 WX_ARG_SYS_WITH(libjpeg,   [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
767 WX_ARG_SYS_WITH(libtiff,   [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
768 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
769
770 fi
771 dnl for GUI only
772
773 WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (http://dmalloc.com/)], wxUSE_DMALLOC)
774 WX_ARG_SYS_WITH(regex,     [  --with-regex            enable support for wxRegEx class], wxUSE_REGEX)
775 WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
776 WX_ARG_SYS_WITH(odbc,      [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
777 WX_ARG_SYS_WITH(expat,     [  --with-expat            enable XML support using expat parser], wxUSE_EXPAT)
778
779 dnl ---------------------------------------------------------------------------
780 dnl compile options
781 dnl ---------------------------------------------------------------------------
782
783 WX_ARG_ENABLE(shared,      [  --enable-shared         create shared library code], wxUSE_SHARED)
784 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
785 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
786 WX_ARG_ENABLE(stl,         [  --enable-stl            use STL for containers], wxUSE_STL)
787
788 if test "$wxUSE_DEBUG" = "yes"; then
789   DEFAULT_wxUSE_DEBUG_FLAG=yes
790   DEFAULT_wxUSE_DEBUG_INFO=yes
791   BUILD=debug
792 elif test "$wxUSE_DEBUG" = "no"; then
793   DEFAULT_wxUSE_DEBUG_FLAG=no
794   DEFAULT_wxUSE_DEBUG_INFO=no
795   BUILD=release
796 fi
797
798 WX_ARG_ENABLE(debug_flag,    [  --enable-debug_flag     set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
799 WX_ARG_ENABLE(debug_info,    [  --enable-debug_info     create code with debugging information], wxUSE_DEBUG_INFO)
800 WX_ARG_ENABLE(debug_gdb,     [  --enable-debug_gdb      create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
801 WX_ARG_ENABLE(debug_cntxt,   [  --enable-debug_cntxt    use wxDebugContext], wxUSE_DEBUG_CONTEXT)
802 WX_ARG_ENABLE(mem_tracing,   [  --enable-mem_tracing    create code with memory tracing], wxUSE_MEM_TRACING)
803 WX_ARG_ENABLE(profile,       [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
804 WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI information], wxUSE_NO_RTTI)
805 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without C++ exceptions handling], wxUSE_NO_EXCEPTIONS)
806 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
807 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
808
809 WX_ARG_ENABLE(compat22,      [  --enable-compat22       enable wxWindows 2.2 compatibility], WXWIN_COMPATIBILITY_2_2)
810 WX_ARG_ENABLE(compat24,      [  --disable-compat24      disable wxWindows 2.4 compatibility], WXWIN_COMPATIBILITY_2_4, disable)
811
812 AC_ARG_ENABLE(rpath,         [  --enable-rpath=DIR      output the rpath flag from wx-config], [wxRPATH_DIR="$enableval"])
813
814 if test "$wxRPATH_DIR" != "" -a "$wxRPATH_DIR" != "disable"; then
815    WXCONFIG_RPATH="-Wl,-rpath -Wl,$wxRPATH_DIR"
816 fi
817
818
819 dnl ---------------------------------------------------------------------------
820 dnl (small) optional non GUI classes
821 dnl ---------------------------------------------------------------------------
822
823 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
824 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
825
826 WX_ARG_ENABLE(protocols,     [  --enable-protocols      use wxProtocol and derived classes], wxUSE_PROTOCOL)
827 WX_ARG_ENABLE(ftp,           [  --enable-ftp            use wxFTP (requires wxProtocol], wxUSE_PROTOCOL_FTP)
828 WX_ARG_ENABLE(http,          [  --enable-http           use wxHTTP (requires wxProtocol], wxUSE_PROTOCOL_HTTP)
829 WX_ARG_ENABLE(fileproto,     [  --enable-fileproto      use wxFileProto class (requires wxProtocol], wxUSE_PROTOCOL_FILE)
830 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
831 WX_ARG_ENABLE(ole,           [  --enable-ole            use OLE classes (Win32 only)], wxUSE_OLE)
832 WX_ARG_ENABLE(dataobj,       [  --enable-dataobj        use data object classes], wxUSE_DATAOBJ)
833
834 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
835
836 dnl please keep the settings below in alphabetical order
837 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
838 WX_ARG_ENABLE(catch_segvs,   [  --enable-catch_segvs    catch signals in wxApp::OnFatalException (Unix only)], wxUSE_ON_FATAL_EXCEPTION)
839 WX_ARG_ENABLE(cmdline,       [  --enable-cmdline        use wxCmdLineParser class], wxUSE_CMDLINE_PARSER)
840 WX_ARG_ENABLE(datetime,      [  --enable-datetime       use wxDateTime class], wxUSE_DATETIME)
841 WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
842 WX_ARG_ENABLE(dynlib,        [  --enable-dynlib         use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
843 WX_ARG_ENABLE(dynamicloader, [  --enable-dynamicloader  use (new) wxDynamicLibrary class], wxUSE_DYNAMIC_LOADER)
844 WX_ARG_ENABLE(exceptions,    [  --enable-exceptions     build exception-safe library], wxUSE_EXCEPTIONS)
845 WX_ARG_ENABLE(ffile,         [  --enable-ffile          use wxFFile class], wxUSE_FFILE)
846 WX_ARG_ENABLE(file,          [  --enable-file           use wxFile class], wxUSE_FILE)
847 WX_ARG_ENABLE(filesystem,    [  --enable-filesystem     use virtual file systems classes], wxUSE_FILESYSTEM)
848 WX_ARG_ENABLE(fontmap,       [  --enable-fontmap        use font encodings conversion classes], wxUSE_FONTMAP)
849 WX_ARG_ENABLE(fs_inet,       [  --enable-fs_inet        use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
850 WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         use virtual ZIP filesystems], wxUSE_FS_ZIP)
851 WX_ARG_ENABLE(geometry,      [  --enable-geometry       use geometry class], wxUSE_GEOMETRY)
852 WX_ARG_ENABLE(log,           [  --enable-log            use logging system], wxUSE_LOG)
853 WX_ARG_ENABLE(longlong,      [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
854 WX_ARG_ENABLE(mimetype,      [  --enable-mimetype       use wxMimeTypesManager], wxUSE_MIMETYPE)
855 WX_ARG_ENABLE(mslu,          [  --enable-mslu           use MS Layer for Unicode on Windows 9x (Win32 only)], wxUSE_UNICODE_MSLU)
856 WX_ARG_ENABLE(snglinst,      [  --enable-snglinst       use wxSingleInstanceChecker class], wxUSE_SNGLINST_CHECKER)
857 WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
858 WX_ARG_ENABLE(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
859 WX_ARG_ENABLE(stopwatch,     [  --enable-stopwatch      use wxStopWatch class], wxUSE_STOPWATCH)
860 WX_ARG_ENABLE(system_options,[  --enable-sysoptions     use wxSystemOptions], wxUSE_SYSTEM_OPTIONS)
861 WX_ARG_ENABLE(textbuf,       [  --enable-textbuf        use wxTextBuffer class], wxUSE_TEXTBUFFER)
862 WX_ARG_ENABLE(textfile,      [  --enable-textfile       use wxTextFile class], wxUSE_TEXTFILE)
863 WX_ARG_ENABLE(timer,         [  --enable-timer          use wxTimer class], wxUSE_TIMER)
864 WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
865 WX_ARG_ENABLE(wave,          [  --enable-wave           use wxWave class], wxUSE_WAVE)
866 WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
867 WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZipInputStream], wxUSE_ZIPSTREAM)
868
869 WX_ARG_ENABLE(url,           [  --enable-url            use wxURL class], wxUSE_URL)
870 WX_ARG_ENABLE(protocol,      [  --enable-protocol       use wxProtocol class], wxUSE_PROTOCOL)
871 WX_ARG_ENABLE(protocol_http, [  --enable-protocol-http  HTTP support in wxProtocol], wxUSE_PROTOCOL_HTTP)
872 WX_ARG_ENABLE(protocol_ftp,  [  --enable-protocol-ftp   FTP support in wxProtocol], wxUSE_PROTOCOL_FTP)
873 WX_ARG_ENABLE(protocol_file, [  --enable-protocol-file  FILE support in wxProtocol], wxUSE_PROTOCOL_FILE)
874
875
876 dnl ---------------------------------------------------------------------------
877 dnl "big" options (i.e. those which change a lot of things throughout the library)
878 dnl ---------------------------------------------------------------------------
879
880 WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
881
882 if test "$wxUSE_GUI" = "yes"; then
883
884 dnl ---------------------------------------------------------------------------
885 dnl "big" GUI options
886 dnl ---------------------------------------------------------------------------
887
888 WX_ARG_ENABLE(docview,     [  --enable-docview        use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
889 WX_ARG_ENABLE(help,        [  --enable-help           use help subsystem], wxUSE_HELP)
890 WX_ARG_ENABLE(mshtmlhelp,  [  --enable-mshtmlhelp     use MS HTML Help (win32)], wxUSE_MS_HTML_HELP)
891 WX_ARG_ENABLE(html,        [  --enable-html           use wxHTML sub-library], wxUSE_HTML)
892 WX_ARG_ENABLE(htmlhelp,    [  --enable-htmlhelp       use wxHTML-based help], wxUSE_WXHTML_HELP)
893 WX_ARG_ENABLE(constraints, [  --enable-constraints    use layout-constraints system], wxUSE_CONSTRAINTS)
894 WX_ARG_ENABLE(printarch,   [  --enable-printarch      use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
895 WX_ARG_ENABLE(mdi,         [  --enable-mdi            use multiple document interface architecture], wxUSE_MDI_ARCHITECTURE)
896 WX_ARG_ENABLE(loggui,      [  --enable-loggui         use standard GUI logger], wxUSE_LOGGUI)
897 WX_ARG_ENABLE(logwin,      [  --enable-logwin         use wxLogWindow], wxUSE_LOGWINDOW)
898 WX_ARG_ENABLE(logdialog,   [  --enable-logdialog      use wxLogDialog], wxUSE_LOGDIALOG)
899
900 dnl ---------------------------------------------------------------------------
901 dnl PostScript options
902 dnl ---------------------------------------------------------------------------
903 WX_ARG_ENABLE(postscript,  [  --enable-postscript     use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
904
905 dnl VZ: these options seem to be always on, if someone wants to change it please do
906 dnl WX_ARG_ENABLE(PS-normalized,    [  --enable-PS-normalized  use normalized PS fonts], dnl             wxUSE_NORMALIZED_PS_FONTS)
907 dnl WX_ARG_ENABLE(afmfonts,        [  --enable-afmfonts       use Adobe Font Metric Font table], dnl             wxUSE_AFM_FOR_POSTSCRIPT)
908
909 dnl ---------------------------------------------------------------------------
910 dnl resources
911 dnl ---------------------------------------------------------------------------
912
913 WX_ARG_ENABLE(prologio,    [  --enable-prologio       not available; see contrib], wxUSE_PROLOGIO)
914 WX_ARG_ENABLE(resources,   [  --enable-resources      not available; see contrib], wxUSE_RESOURCES)
915
916 dnl ---------------------------------------------------------------------------
917 dnl IPC &c
918 dnl ---------------------------------------------------------------------------
919
920 WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard class], wxUSE_CLIPBOARD)
921 WX_ARG_ENABLE(dnd,         [  --enable-dnd            use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
922 WX_ARG_ENABLE(metafile,    [  --enable-metafile       use win32 metafiles], wxUSE_METAFILE)
923
924 dnl WX_ARG_ENABLE(treelayout,  [  --enable-treelayout     use wxTreeLayout class], wxUSE_TREELAYOUT)
925
926 dnl ---------------------------------------------------------------------------
927 dnl optional GUI controls (in alphabetical order except the first one)
928 dnl ---------------------------------------------------------------------------
929
930 WX_ARG_ENABLE(controls,    [  --enable-controls       use all usual controls], wxUSE_CONTROLS)
931
932 dnl even with --enable-controls, some may be disabled by giving
933 dnl --disable-<control> later on the command line - but by default all will be
934 dnl used (and vice versa)
935 if test "$wxUSE_CONTROLS" = "yes"; then
936   DEFAULT_wxUSE_ACCEL=yes
937   DEFAULT_wxUSE_BMPBUTTON=yes
938   DEFAULT_wxUSE_BUTTON=yes
939   DEFAULT_wxUSE_CALCTRL=no
940   DEFAULT_wxUSE_CARET=yes
941   DEFAULT_wxUSE_COMBOBOX=yes
942   DEFAULT_wxUSE_CHECKBOX=yes
943   DEFAULT_wxUSE_CHECKLISTBOX=yes
944   DEFAULT_wxUSE_CHOICE=yes
945   DEFAULT_wxUSE_GAUGE=yes
946   DEFAULT_wxUSE_GRID=yes
947   DEFAULT_wxUSE_IMAGLIST=yes
948   DEFAULT_wxUSE_LISTBOOK=yes
949   DEFAULT_wxUSE_LISTBOX=yes
950   DEFAULT_wxUSE_LISTCTRL=yes
951   DEFAULT_wxUSE_NOTEBOOK=yes
952   DEFAULT_wxUSE_RADIOBOX=yes
953   DEFAULT_wxUSE_RADIOBTN=yes
954   DEFAULT_wxUSE_SASH=yes
955   DEFAULT_wxUSE_SCROLLBAR=yes
956   DEFAULT_wxUSE_SLIDER=yes
957   DEFAULT_wxUSE_SPINBTN=yes
958   DEFAULT_wxUSE_SPINCTRL=yes
959   DEFAULT_wxUSE_SPLITTER=yes
960   DEFAULT_wxUSE_STATBMP=yes
961   DEFAULT_wxUSE_STATBOX=yes
962   DEFAULT_wxUSE_STATLINE=yes
963   DEFAULT_wxUSE_STATUSBAR=yes
964   DEFAULT_wxUSE_TAB_DIALOG=yes
965   DEFAULT_wxUSE_TOGGLEBTN=yes
966   DEFAULT_wxUSE_TOOLBAR=yes
967   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
968   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
969   DEFAULT_wxUSE_TOOLTIPS=yes
970   DEFAULT_wxUSE_TREECTRL=yes
971   DEFAULT_wxUSE_POPUPWIN=yes
972   DEFAULT_wxUSE_TIPWINDOW=yes
973 elif test "$wxUSE_CONTROLS" = "no"; then
974   DEFAULT_wxUSE_ACCEL=no
975   DEFAULT_wxUSE_BMPBUTTON=no
976   DEFAULT_wxUSE_BUTTON=no
977   DEFAULT_wxUSE_CALCTRL=no
978   DEFAULT_wxUSE_CARET=no
979   DEFAULT_wxUSE_COMBOBOX=no
980   DEFAULT_wxUSE_CHECKBOX=no
981   DEFAULT_wxUSE_CHECKLISTBOX=no
982   DEFAULT_wxUSE_CHOICE=no
983   DEFAULT_wxUSE_GAUGE=no
984   DEFAULT_wxUSE_GRID=no
985   DEFAULT_wxUSE_IMAGLIST=no
986   DEFAULT_wxUSE_LISTBOOK=no
987   DEFAULT_wxUSE_LISTBOX=no
988   DEFAULT_wxUSE_LISTCTRL=no
989   DEFAULT_wxUSE_NOTEBOOK=no
990   DEFAULT_wxUSE_RADIOBOX=no
991   DEFAULT_wxUSE_RADIOBTN=no
992   DEFAULT_wxUSE_SASH=no
993   DEFAULT_wxUSE_SCROLLBAR=no
994   DEFAULT_wxUSE_SLIDER=no
995   DEFAULT_wxUSE_SPINBTN=no
996   DEFAULT_wxUSE_SPINCTRL=no
997   DEFAULT_wxUSE_SPLITTER=no
998   DEFAULT_wxUSE_STATBMP=no
999   DEFAULT_wxUSE_STATBOX=no
1000   DEFAULT_wxUSE_STATLINE=no
1001   DEFAULT_wxUSE_STATUSBAR=no
1002   DEFAULT_wxUSE_TAB_DIALOG=no
1003   DEFAULT_wxUSE_TOGGLEBTN=no
1004   DEFAULT_wxUSE_TOOLBAR=no
1005   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1006   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
1007   DEFAULT_wxUSE_TOOLTIPS=no
1008   DEFAULT_wxUSE_TREECTRL=no
1009   DEFAULT_wxUSE_POPUPWIN=no
1010   DEFAULT_wxUSE_TIPWINDOW=no
1011 fi
1012
1013 ## FIXME: This is a blatant hack
1014 if test "x$wxUSE_COCOA" != "x" -a "$wxUSE_COCOA" != "0" ; then
1015   wxUSE_PRINTING_ARCHITECTURE=no
1016   wxUSE_DRAG_AND_DROP=no
1017   # Generic notebook requires tab dialog
1018   DEFAULT_wxUSE_TABDIALOG=yes
1019   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1020   DEFAULT_wxUSE_SCROLLBAR=no
1021   DEFAULT_wxUSE_TOOLTIPS=no
1022   DEFAULT_wxUSE_DRAGIMAGE=no
1023 fi
1024
1025 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
1026 WX_ARG_ENABLE(button,      [  --enable-button         use wxButton class], wxUSE_BUTTON)
1027 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
1028 WX_ARG_ENABLE(calendar,    [  --enable-calendar       use wxCalendarCtrl class], wxUSE_CALCTRL)
1029 WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_CARET)
1030 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
1031 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
1032 WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
1033 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox class], wxUSE_COMBOBOX)
1034 WX_ARG_ENABLE(display,     [  --enable-display        use wxDisplay class], wxUSE_DISPLAY)
1035 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
1036 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
1037 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
1038 WX_ARG_ENABLE(listbook,    [  --enable-listbook       use wxListbook class], wxUSE_LISTBOOK)
1039 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
1040 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
1041 WX_ARG_ENABLE(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
1042 WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
1043 WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
1044 WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
1045 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
1046 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
1047 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
1048 WX_ARG_ENABLE(spinctrl,    [  --enable-spinctrl       use wxSpinCtrl class], wxUSE_SPINCTRL)
1049 WX_ARG_ENABLE(splitter,    [  --enable-splitter       use wxSplitterWindow class], wxUSE_SPLITTER)
1050 WX_ARG_ENABLE(statbmp,     [  --enable-statbmp        use wxStaticBitmap class], wxUSE_STATBMP)
1051 WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wxUSE_STATBOX)
1052 WX_ARG_ENABLE(statline,    [  --enable-statline       use wxStaticLine class], wxUSE_STATLINE)
1053 WX_ARG_ENABLE(stattext,    [  --enable-stattext       use wxStaticText class], wxUSE_STATTEXT)
1054 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
1055 WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TABDIALOG)
1056 WX_ARG_ENABLE(textctrl,    [  --enable-textctrl       use wxTextCtrl class], wxUSE_TEXTCTRL)
1057 WX_ARG_ENABLE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
1058 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
1059 WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
1060 WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
1061 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
1062 WX_ARG_ENABLE(tipwindow,   [  --enable-tipwindow      use wxTipWindow class], wxUSE_TIPWINDOW)
1063 WX_ARG_ENABLE(popupwin,    [  --enable-popupwin       use wxPopUpWindow class], wxUSE_POPUPWIN)
1064
1065 dnl ---------------------------------------------------------------------------
1066 dnl common dialogs
1067 dnl ---------------------------------------------------------------------------
1068
1069 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use all common dialogs], wxUSE_COMMONDLGS)
1070 WX_ARG_ENABLE(choicedlg,   [  --enable-choicedlg      use wxChoiceDialog], wxUSE_CHOICEDLG)
1071 WX_ARG_ENABLE(coldlg,      [  --enable-coldlg         use wxColourDialog], wxUSE_COLOURDLG)
1072 WX_ARG_ENABLE(filedlg,     [  --enable-filedlg        use wxFileDialog], wxUSE_FILEDLG)
1073 WX_ARG_ENABLE(finddlg,     [  --enable-finddlg        use wxFindReplaceDialog], wxUSE_FINDREPLDLG)
1074 WX_ARG_ENABLE(fontdlg,     [  --enable-fontdlg        use wxFontDialog], wxUSE_FONTDLG)
1075 WX_ARG_ENABLE(dirdlg,      [  --enable-dirdlg         use wxDirDialog], wxUSE_DIRDLG)
1076 WX_ARG_ENABLE(msgdlg,      [  --enable-msgdlg         use wxMessageDialog], wxUSE_MSGDLG)
1077 WX_ARG_ENABLE(numberdlg,   [  --enable-numberdlg      use wxNumberEntryDialog], wxUSE_NUMBERDLG)
1078 WX_ARG_ENABLE(splash,      [  --enable-splash         use wxSplashScreen], wxUSE_SPLASH)
1079 WX_ARG_ENABLE(textdlg,     [  --enable-textdlg        use wxTextDialog], wxUSE_TEXTDLG)
1080 WX_ARG_ENABLE(tipdlg,      [  --enable-tipdlg         use startup tips], wxUSE_STARTUP_TIPS)
1081 WX_ARG_ENABLE(progressdlg, [  --enable-progressdlg    use wxProgressDialog], wxUSE_PROGRESSDLG)
1082 WX_ARG_ENABLE(wizarddlg,   [  --enable-wizarddlg      use wxWizard], wxUSE_WIZARDDLG)
1083
1084 dnl ---------------------------------------------------------------------------
1085 dnl misc GUI options
1086 dnl ---------------------------------------------------------------------------
1087
1088 WX_ARG_ENABLE(menus,       [  --enable-menus          use wxMenu/wxMenuBar/wxMenuItem classes], wxUSE_MENUS)
1089 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
1090 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
1091 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
1092 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
1093 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
1094 WX_ARG_ENABLE(joystick,    [  --enable-joystick       use wxJoystick (Linux only)], wxUSE_JOYSTICK)
1095 WX_ARG_ENABLE(metafile,    [  --enable-metafiles      use wxMetaFile (Windows only)], wxUSE_METAFILE)
1096 WX_ARG_ENABLE(dragimage,   [  --enable-dragimage      use wxDragImage], wxUSE_DRAGIMAGE)
1097 WX_ARG_ENABLE(accessibility,[  --enable-accessibility  enable accessibility support], wxUSE_ACCESSIBILITY)
1098
1099 dnl ---------------------------------------------------------------------------
1100 dnl support for image formats that do not rely on external library
1101 dnl ---------------------------------------------------------------------------
1102
1103 WX_ARG_ENABLE(palette,     [  --enable-palette        use wxPalette class], wxUSE_PALETTE)
1104 WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
1105 WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
1106 WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
1107 WX_ARG_ENABLE(iff,         [  --enable-iff            use iff images (IFF file format)], wxUSE_IFF)
1108 WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
1109 WX_ARG_ENABLE(xpm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)
1110 WX_ARG_ENABLE(ico_cur,     [  --enable-icocur         use Windows ICO and CUR formats], wxUSE_ICO_CUR)
1111
1112 fi
1113
1114 dnl ---------------------------------------------------------------------------
1115 dnl some win32 settings
1116 dnl ---------------------------------------------------------------------------
1117
1118 WX_ARG_ENABLE(official_build,  [  --enable-official_build official build of wxWindows (win32 DLL only)], wxUSE_OFFICIAL_BUILD)
1119 AC_ARG_ENABLE(vendor,  [  --enable-vendor=VENDOR  vendor name (win32 DLL only)], [VENDOR="$enableval"])
1120 if test "x$VENDOR" = "x"; then
1121     VENDOR="custom"
1122 fi
1123
1124 dnl General settings (needed for GUI and non-GUI compilations alike).
1125 dnl Path separator; ':' for unix, ';' for OS/2
1126 case "${host}" in
1127   *-pc-os2_emx | *-pc-os2-emx )
1128     PATH_IFS=';'
1129   ;;
1130   *)
1131     PATH_IFS=':'
1132   ;;
1133 esac
1134
1135 dnl for GUI only
1136
1137 dnl cache the options values before (may be) aborting below
1138 WX_ARG_CACHE_FLUSH
1139
1140 dnl check that no more than one toolkit is given and that if none are given that
1141 dnl we have a default one
1142
1143 AC_MSG_CHECKING(for toolkit)
1144
1145 # In Wine, we need to default to MSW, not GTK or MOTIF
1146 if test "$wxUSE_WINE" = "yes"; then
1147     DEFAULT_DEFAULT_wxUSE_GTK=0
1148     DEFAULT_DEFAULT_wxUSE_MOTIF=0
1149     DEFAULT_DEFAULT_wxUSE_MSW=1
1150 fi
1151
1152 if test "$wxUSE_GUI" = "yes"; then
1153
1154     if test "$USE_BEOS" = 1; then
1155         AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
1156     fi
1157
1158     if test "$TOOLKIT_GIVEN" = 1; then
1159       dnl convert "yes" to 1 and "no" to 0
1160       for toolkit in `echo $ALL_TOOLKITS`; do
1161         var=wxUSE_$toolkit
1162         eval "value=\$${var}"
1163         eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
1164       done
1165     else
1166       dnl try to guess the most apropriate toolkit for this platform
1167       for toolkit in `echo $ALL_TOOLKITS`; do
1168         if test "$has_toolkit_in_cache" != 1; then
1169           var=DEFAULT_DEFAULT_wxUSE_$toolkit
1170         else
1171           var=DEFAULT_wxUSE_$toolkit
1172         fi
1173         eval "wxUSE_$toolkit=\$${var}"
1174       done
1175     fi
1176
1177     dnl we suppose that expr is available (maybe there is a better way to do
1178     dnl this? what about using ALL_TOOLKITS? TODO)
1179     NUM_TOOLKITS=`expr ${wxUSE_COCOA:-0} + ${wxUSE_GTK:-0} + ${wxUSE_MAC:-0} \
1180                   + ${wxUSE_MGL:-0} + ${wxUSE_MICROWIN:-0} \
1181                   + ${wxUSE_MOTIF:-0} + ${wxUSE_MSW:-0} + ${wxUSE_X11:-0}`
1182
1183     dnl Allow wxUSE_PM only for OS/2 with EMX.
1184     case "${host}" in
1185       *-pc-os2_emx | *-pc-os2-emx )
1186         NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
1187     esac
1188
1189     case "$NUM_TOOLKITS" in
1190       1)
1191       ;;
1192       0)
1193         AC_MSG_ERROR(Please specify a toolkit -- cannot determine the default for ${host})
1194       ;;
1195       *)
1196         AC_MSG_ERROR(Please specify at most one toolkit (maybe some are cached in configarg.cache?))
1197     esac
1198
1199     dnl cache the wxUSE_<TOOLKIT> values too
1200     for toolkit in `echo $ALL_TOOLKITS`; do
1201       var=wxUSE_$toolkit
1202       eval "value=\$${var}"
1203       if test "x$value" != x; then
1204         cache_var=CACHE_$toolkit
1205         eval "cache=\$${cache_var}"
1206         if test "$cache" = 1; then
1207           echo "$var=$value" >> ${wx_arg_cache_file}
1208         fi
1209         if test "$value" = 1; then
1210           toolkit_echo=`echo $toolkit | tr [[A-Z]] [[a-z]]`
1211           AC_MSG_RESULT($toolkit_echo)
1212         fi
1213       fi
1214     done
1215 else
1216     if test "x$host_alias" != "x"; then
1217         AC_MSG_RESULT(base ($host_alias hosted) only)
1218     else
1219         AC_MSG_RESULT(base only)
1220     fi
1221 fi
1222
1223 dnl ---------------------------------------------------------------------------
1224 dnl When we are using Cygwin with Motif/GTK+, we want it to appear like
1225 dnl 'just' a POSIX platform, so the Win32 API must not be available
1226 dnl ---------------------------------------------------------------------------
1227 dnl (Windows-only piece)
1228 wants_win32=0
1229 doesnt_want_win32=0
1230 case "${host}" in
1231   *-*-cygwin*)
1232       if test "$wxUSE_MSW" = 1 ; then
1233         wants_win32=1
1234       else
1235         doesnt_want_win32=1
1236       fi
1237   ;;
1238   *-*-mingw*)
1239       wants_win32=1
1240   ;;
1241 esac
1242
1243 dnl ---------------------------------------------------------------------------
1244 dnl Wine is a virtual platform, we need to patch things up a bit
1245 dnl ---------------------------------------------------------------------------
1246 if test "$wxUSE_WINE" = "yes"; then
1247     wants_win32=1
1248     dnl FIXME: we should do a better job of testing for these
1249     CC=winegcc
1250     CXX=wineg++
1251     RESCOMP=wrc
1252 fi
1253
1254 dnl NB: The two tests bellow are *NOT* mutually exclusive! They should only
1255 dnl     take effect on Cygwin/Mingw and not other platforms.
1256 if test "$wants_win32" = 1 ; then
1257     USE_UNIX=0
1258     USE_WIN32=1
1259     AC_DEFINE(__WIN32__)
1260     AC_DEFINE(__WIN95__)
1261     AC_DEFINE(__WINDOWS__)
1262     AC_DEFINE(__GNUWIN32__)
1263     AC_DEFINE(STRICT)
1264     AC_DEFINE(WINVER, 0x0400)
1265 fi
1266 if test "$doesnt_want_win32" = 1 ; then
1267     USE_UNIX=1
1268     USE_WIN32=0
1269 fi
1270 dnl (end of Windows-only piece)
1271
1272 if test "$USE_UNIX" = 1 ; then
1273     wxUSE_UNIX=yes
1274     AC_DEFINE(__UNIX__)
1275 fi
1276
1277 dnl ---------------------------------------------------------------------------
1278 dnl Checks for programs
1279 dnl ---------------------------------------------------------------------------
1280
1281 dnl flush the cache because checking for programs might abort
1282 AC_CACHE_SAVE
1283
1284 dnl cross-compiling support: we're cross compiling if the build system is
1285 dnl different from the target one (assume host and target be always the same)
1286 if test "$build" != "$host" ; then
1287     if test "$USE_WIN32" = 1 -o "$USE_DOS" = 1 -o "$USE_UNIX"; then
1288         CC=$host_alias-gcc
1289         CXX=$host_alias-c++
1290         AR=$host_alias-ar
1291         RANLIB=$host_alias-ranlib
1292         DLLTOOL=$host_alias-dlltool
1293         RESCOMP=$host_alias-windres
1294         LD=$host_alias-ld
1295         NM=$host_alias-nm
1296         STRIP=$host_alias-strip
1297     else
1298         AC_MSG_ERROR($build_alias -> $host_alias cross compilation not supported yet.)
1299     fi
1300 fi
1301
1302 dnl C-compiler checks
1303 dnl   defines CC with the compiler to use
1304 dnl   defines GCC with yes if using gcc
1305 dnl   defines GCC empty if not using gcc
1306 dnl   defines CFLAGS
1307 dnl
1308 dnl this magic incantation is needed to prevent AC_PROG_CC from setting the
1309 dnl default CFLAGS (something like "-g -O2") -- we don't need this as we add
1310 dnl -g and -O flags ourselves below
1311 CFLAGS=${CFLAGS:=}
1312 AC_PROG_CC
1313
1314 dnl is -traditional needed for correct compilations
1315 dnl   adds -traditional for gcc if needed
1316 AC_PROG_GCC_TRADITIONAL
1317
1318 AC_LANG_SAVE
1319 AC_LANG_CPLUSPLUS
1320
1321 dnl C++-compiler checks
1322 dnl   defines CXX with the compiler to use
1323 dnl   defines GXX with yes if using gxx
1324 dnl   defines GXX empty if not using gxx
1325 dnl   defines CXXFLAGS
1326 dnl
1327 dnl see CFLAGS line above
1328 CXXFLAGS=${CXXFLAGS:=}
1329 AC_PROG_CXX
1330
1331 AC_LANG_RESTORE
1332
1333 dnl ranlib command
1334 dnl   defines RANLIB with the appropriate command
1335 AC_PROG_RANLIB
1336
1337 dnl ar command
1338 dnl   defines AR with the appropriate command
1339 AC_CHECK_PROG(AR, ar, ar)
1340 if test "x$AR" = "x" ; then
1341     AC_MSG_ERROR([ar is needed to build wxWindows])
1342 fi
1343
1344 dnl install checks
1345 dnl   defines INSTALL with the appropriate command
1346 AC_PROG_INSTALL
1347
1348 dnl   make install path absolute (if not already);
1349 dnl   will fail with (some) MSDOS paths
1350 case ${INSTALL} in
1351   /* ) # Absolute
1352      ;;
1353   ?:* ) # Drive letter, considered as absolute.
1354      ;;
1355   *)
1356      INSTALL=`pwd`/${INSTALL} ;;
1357 esac
1358
1359 dnl HP-UX install doesn't handle the "-d" switch so don't use it there
1360 case ${host} in
1361     *-hp-hpux* )
1362         INSTALL_DIR="mkdir"
1363         ;;
1364
1365     *)  INSTALL_DIR="$INSTALL -d"
1366         ;;
1367 esac
1368
1369
1370 case "${host}" in
1371
1372     dnl The other BSD's should probably go in here too, since this is
1373     dnl to workaround a strange static lib BSDism.
1374     dnl Mac OS X install seems to ignore -p option...
1375     powerpc-*-darwin* )
1376         INSTALL_PROGRAM="cp -fp"
1377         INSTALL_DATA="cp -fp"
1378         ;;
1379     *)
1380         ;;
1381 esac
1382
1383 dnl strip command
1384 dnl   defines STRIP as strip or nothing if not found
1385 AC_CHECK_PROG(STRIP, strip, strip, true)
1386
1387 dnl does make support "-include" (only GNU make does AFAIK)?
1388 AC_CACHE_CHECK([if make is GNU make], wx_cv_prog_makeisgnu,
1389 [
1390     if ( ${SHELL-sh} -c "${MAKE-make} --version" 2> /dev/null |
1391             egrep -s GNU > /dev/null); then
1392         wx_cv_prog_makeisgnu="yes"
1393     else
1394         wx_cv_prog_makeisgnu="no"
1395     fi
1396 ])
1397
1398 if test "x$wx_cv_prog_makeisgnu" = "xyes"; then
1399     IF_GNU_MAKE=""
1400 else
1401     IF_GNU_MAKE="#"
1402 fi
1403
1404 AC_SUBST(IF_GNU_MAKE)
1405
1406 dnl we don't need to check for VPATH support in GNU make - it does have it
1407 if test "x$wx_cv_prog_makeisgnu" != "xyes"; then
1408 dnl check if VPATH works
1409 AC_CACHE_CHECK([if make supports VPATH], wx_cv_prog_makevpath, [
1410 dnl create Makefile
1411 cat - << EOF > confMake
1412 check : file
1413         cp \$? \$@
1414         cp \$? final_file
1415 EOF
1416
1417 if test ! -d sub ; then
1418   mkdir sub
1419 fi
1420 echo dummy > sub/file
1421 ${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null
1422 RESULT=$?
1423 rm -f sub/file check final_file confMake
1424 rmdir sub
1425 if test "$RESULT" = 0; then
1426   wx_cv_prog_makevpath="yes"
1427 else
1428   wx_cv_prog_makevpath="no"
1429 fi
1430 ])
1431
1432 if test "x$wx_cv_prog_makevpath" != "xyes"; then
1433 AC_MSG_ERROR([
1434 You need a make-utility that is able to use the variable
1435 VPATH correctly.
1436 If your version of make does not support VPATH correctly,
1437 please install GNU-make (possibly as gmake), and start
1438 configure with the following command:
1439 export MAKE=gmake; ./configure  for sh-type shells
1440 setenv MAKE gmake; ./configure  for csh-type shells
1441 Also please do remember to use gmake in this case every time
1442 you are trying to compile.
1443 ])
1444 fi dnl make without VPATH
1445 fi dnl not GNU make
1446
1447 dnl needed for making link to setup.h
1448 AC_PROG_LN_S
1449
1450 dnl ---------------------------------------------------------------------------
1451 dnl When we are using gcc on OS/2, we want to be either using resources (PM)
1452 dnl or a more complete POSIX emulation for Motif/GTK+/X11
1453 dnl Moreover we need to link explicitly against either stdcpp.a or stdcxx.a
1454 dnl (depending on compiler version), since we are using "gcc", not "g++/c++".
1455 dnl ---------------------------------------------------------------------------
1456 dnl (OS/2-only piece)
1457 case "${host}" in
1458   *-pc-os2_emx | *-pc-os2-emx )
1459       if test "$wxUSE_MOTIF" = 1 -o "$wxUSE_GTK" = 1 -o "$wxUSE_X11" = 1; then
1460           dnl More complete Unix emulation for unix-like ports
1461           dnl by linking in POSIX/2's cExt (if available).
1462           AC_CHECK_LIB(cExt, drand48, LIBS="$LIBS -lcExt")
1463       else
1464           dnl Include resources for the "native" port (wxPM).
1465           RESPROGRAMOBJ="\${top_srcdir}/include/wx/os2/wx.res"
1466       fi
1467       AC_CACHE_CHECK([for gcc 3 or later], wx_cv_gcc3,[
1468           AC_TRY_COMPILE([#include <features.h>],
1469               [
1470                   #if (__GNUC__ < 3)
1471                       #error old gcc
1472                   #endif
1473               ],
1474               [
1475                   wx_cv_gcc3=yes
1476               ],
1477               [
1478                   wx_cv_gcc3=no
1479               ]
1480           )
1481       ])
1482       if test "$wx_cv_gcc3" = "no"; then
1483           LIBS="$LIBS -lstdcpp"
1484       else
1485           LIBS="$LIBS -lstdcxx"
1486       fi
1487   ;;
1488 esac
1489 dnl (end of OS/2-only piece)
1490
1491 dnl ------------------------------------------------------------------------
1492 dnl Check for headers
1493 dnl ------------------------------------------------------------------------
1494
1495 dnl test for strings.h needed under AIX, but do not check for it wxMac as
1496 dnl it exists but is only a simple redirection to string.h and it is in
1497 dnl conflict with Strings.h in FlatCarbon headers
1498 dnl
1499 dnl Autoconf 2.5 tends to check for strings.h on its own, so avoiding the 
1500 dnl test (as the current configure script does) is not possible.  Instead, 
1501 dnl you must remind autoconf that strings.h is NOT valid.  The autoconf 
1502 dnl test succeeds because there is a strings.h file that simply includes 
1503 dnl string.h.  Unfortunately, there is also a strings.h as part of the 
1504 dnl FlatCarbon headers.                                    -- David Elliott
1505 if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1; then
1506     AC_CACHE_CHECK([for strings.h], ac_cv_header_strings_h, 
1507                    [ac_cv_header_strings_h=no])
1508     if test "$ac_cv_header_strings_h" = "no"; then
1509         AC_MSG_RESULT([forced no into cache])
1510     else
1511         AC_MSG_WARN([strings.h is not compatible with Mac OS X])
1512     fi
1513 fi
1514 dnl defines HAVE_STRINGS_H
1515 AC_CHECK_HEADERS(strings.h)
1516
1517 dnl defines HAVE_STDLIB_H
1518 AC_CHECK_HEADERS(stdlib.h)
1519 dnl defines HAVE_MALLOC_H
1520 AC_CHECK_HEADERS(malloc.h)
1521 dnl defines HAVE_UNISTD_H
1522 AC_CHECK_HEADERS(unistd.h)
1523 dnl defines HAVE_WCHAR_H
1524 AC_CHECK_HEADERS(wchar.h)
1525
1526 dnl maybe wchar_t is in wcstr.h if we don't have wchar.h?
1527 if test "$ac_cv_header_wchar_h" != "yes"; then
1528     dnl defines HAVE_WCSTR_H
1529     AC_CHECK_HEADERS(wcstr.h)
1530 fi
1531
1532 dnl defines HAVE_FNMATCH_H
1533 AC_CHECK_HEADERS(fnmatch.h)
1534
1535 if test "x$ac_cv_header_fnmatch_h" = "xyes"; then
1536     AC_CHECK_FUNCS(fnmatch)
1537 fi
1538
1539 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
1540 AC_CHECK_HEADERS(langinfo.h)
1541
1542 case "${host}" in
1543   *-pc-os2_emx | *-pc-os2-emx )
1544       dnl Explicitly link -lintl if langinfo.h is available.
1545       if test $ac_cv_header_langinfo_h = "yes"; then
1546           LIBS="$LIBS -lintl"
1547       fi
1548   ;;
1549 esac
1550
1551 if test "$wxUSE_GUI" = "yes"; then
1552     if test "$wxUSE_UNIX" = "yes" -a "$wxUSE_PM" != 1; then
1553         dnl defines HAVE_X11_XKBLIB_H
1554         AC_CHECK_HEADERS(X11/Xlib.h)
1555         AC_CHECK_HEADERS([X11/XKBlib.h], [], [], 
1556                          [
1557                           #if HAVE_X11_XLIB_H
1558                             #include <X11/Xlib.h>
1559                           #endif
1560                          ])
1561     fi
1562 fi
1563
1564 dnl ---------------------------------------------------------------------------
1565 dnl Checks for compiler characteristics
1566 dnl ---------------------------------------------------------------------------
1567
1568 dnl defines const to be empty if c-compiler does not support const fully
1569 AC_C_CONST
1570 dnl defines inline to a sensible value for the c-compiler
1571 AC_C_INLINE
1572
1573 dnl check the sizes of integral types (give some reasonable default values for
1574 dnl cross-compiling)
1575 dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
1576 AC_CHECK_SIZEOF(char, 1)
1577 AC_CHECK_SIZEOF(short, 2)
1578 AC_CHECK_SIZEOF(void *, 4)
1579 AC_CHECK_SIZEOF(int, 4)
1580 AC_CHECK_SIZEOF(long, 4)
1581
1582 case "${host}" in
1583     arm-*-linux* )
1584         AC_CHECK_SIZEOF(long long, 8)
1585     ;;
1586     *-hp-hpux* )
1587         AC_CHECK_SIZEOF(long long, 0)
1588         if test "$ac_cv_sizeof_long_long" != "0"; then
1589             dnl HPUX 10.20 headers need this define in order to use long long definitions
1590             CPPFLAGS="$CPPFLAGS -D_INCLUDE_LONGLONG"
1591         fi
1592     ;;
1593     * )
1594         AC_CHECK_SIZEOF(long long, 0)
1595 esac
1596
1597 dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
1598 dnl wchar_t and AC_CHECK_SIZEOF only includes stdio.h
1599 dnl Mac OS X does not provide wchar.h and wchar_t is defined by stdlib.h (GD)
1600 AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
1601 [
1602     AC_TRY_RUN(
1603         [
1604             /* DJGPP only has fake wchar_t: */
1605             #ifdef __DJGPP__
1606             #  error "fake wchar_t"
1607             #endif
1608             #ifdef HAVE_WCHAR_H
1609             #  ifdef __CYGWIN__
1610             #    include <stddef.h>
1611             #  endif
1612             #  include <wchar.h>
1613             #endif
1614             #ifdef HAVE_STDLIB_H
1615             #  include <stdlib.h>
1616             #endif
1617             #include <stdio.h>
1618             int main()
1619             {
1620                 FILE *f=fopen("conftestval", "w");
1621                 if (!f) exit(1);
1622                 fprintf(f, "%i", sizeof(wchar_t));
1623                 exit(0);
1624             }
1625         ],
1626         wx_cv_sizeof_wchar_t=`cat conftestval`,
1627         wx_cv_sizeof_wchar_t=0,
1628         [
1629             case "${host}" in
1630               *-pc-msdosdjgpp )
1631                 wx_cv_sizeof_wchar_t=0
1632                 ;;
1633               * )
1634                 wx_cv_sizeof_wchar_t=4
1635                 ;;
1636             esac
1637         ]
1638     )
1639 ])
1640
1641 AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
1642
1643 dnl check for large file support
1644 AC_SYS_LARGEFILE
1645
1646 dnl we need to define _FILE_OFFSET_BITS or _LARGE_FILES on the compiler command
1647 dnl line because otherwise the system headers risk being included before
1648 dnl wx/defs.h which defines these constants leading to inconsistent
1649 dnl sizeof(off_t) in different source files of the same program and linking
1650 dnl problems
1651 if test "x$wx_largefile" = "xyes"; then
1652     if test "x$ac_cv_sys_file_offset_bits" = "x64"; then
1653         WX_LARGEFILE_FLAGS="-D_FILE_OFFSET_BITS=64 -D_LARGE_FILES"
1654     else
1655         WX_LARGEFILE_FLAGS="-D_LARGE_FILES"
1656     fi
1657     CPPFLAGS="$CPPFLAGS $WX_LARGEFILE_FLAGS"
1658 fi
1659
1660 dnl check for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
1661 WX_C_BIGENDIAN
1662
1663 dnl check for iostream (as opposed to iostream.h) standard header
1664 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
1665
1666 dnl check whether C++ compiler supports bool built-in type
1667 WX_CPP_BOOL
1668
1669 dnl check whether C++ compiler supports explicit keyword
1670 WX_CPP_EXPLICIT
1671
1672 dnl check whether C++ compiler supports C++ casts
1673 AC_CXX_CONST_CAST
1674
1675 dnl check various STL features
1676 if test "$wxUSE_STL" = "yes"; then
1677     AC_LANG_PUSH(C++)
1678
1679     dnl check for basic STL functionality
1680     AC_MSG_CHECKING([for basic STL functionality])
1681     AC_TRY_COMPILE([#include <string>
1682                     #include <functional>
1683                     #include <algorithm>
1684                     #include <vector>
1685                     #include <list>],
1686                     [std::vector<int> moo;
1687                      std::list<int> foo;
1688                      std::vector<int>::iterator it = 
1689                          std::find_if(moo.begin(), moo.end(),
1690                                       std::bind2nd(std::less<int>(), 3));],
1691                     [AC_MSG_RESULT([yes])],
1692                     [AC_MSG_RESULT([no])
1693                      AC_MSG_ERROR([Basic STL functionality missing])])
1694
1695     dnl check if <string> declares std::wstring
1696     AC_MSG_CHECKING([for std::wstring in <string>])
1697     AC_TRY_COMPILE([#include <string>],
1698                    [std::wstring foo;],
1699                    [AC_MSG_RESULT(yes)
1700                     AC_DEFINE(HAVE_STD_WSTRING)],
1701                    [AC_MSG_RESULT(no)])
1702
1703     dnl check for compliant std::string::compare
1704     AC_MSG_CHECKING([for compliant std::string::compare])
1705     AC_TRY_COMPILE([#include <string>],
1706                    [std::string foo, bar;
1707                     foo.compare(bar);
1708                     foo.compare(1, 1, bar);
1709                     foo.compare(1, 1, bar, 1, 1);
1710                     foo.compare("");
1711                     foo.compare(1, 1, "");
1712                     foo.compare(1, 1, "", 2);],
1713                    [AC_MSG_RESULT(yes)
1714                     AC_DEFINE(HAVE_STD_STRING_COMPARE)],
1715                    [AC_MSG_RESULT(no)])
1716
1717     AC_LANG_POP
1718 fi
1719
1720 dnl ---------------------------------------------------------------------------
1721 dnl Define search path for includes and libraries: all headers and libs will be
1722 dnl looked for in all directories of this path
1723 dnl ---------------------------------------------------------------------------
1724
1725 dnl Notice that /usr/include should *not* be in this list, otherwise it breaks
1726 dnl compilation on Solaris/AIX/... with gcc because standard (non ANSI C)
1727 dnl headers are included instead of the "fixed" (ANSI-fied) gcc ones.
1728 dnl
1729 dnl Also try to put all directories which may contain X11R6 before those which
1730 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
1731 SEARCH_INCLUDE="\
1732     /usr/local/include        \
1733                               \
1734     /usr/Motif-1.2/include    \
1735     /usr/Motif-2.1/include    \
1736                               \
1737     /usr/include/Motif1.2     \
1738     /opt/xpm/include/X11      \
1739     /opt/GBxpm/include/       \
1740     /opt/GBxpm/X11/include/   \
1741                               \
1742     /usr/Motif1.2/include     \
1743     /usr/dt/include           \
1744     /usr/openwin/include      \
1745                               \
1746     /usr/include/Xm           \
1747                               \
1748     /usr/X11R6/include        \
1749     /usr/X11R6.4/include      \
1750     /usr/X11R5/include        \
1751     /usr/X11R4/include        \
1752                               \
1753     /usr/include/X11R6        \
1754     /usr/include/X11R5        \
1755     /usr/include/X11R4        \
1756                               \
1757     /usr/local/X11R6/include  \
1758     /usr/local/X11R5/include  \
1759     /usr/local/X11R4/include  \
1760                               \
1761     /usr/local/include/X11R6  \
1762     /usr/local/include/X11R5  \
1763     /usr/local/include/X11R4  \
1764                               \
1765     /usr/X11/include          \
1766     /usr/include/X11          \
1767     /usr/local/X11/include    \
1768     /usr/local/include/X11    \
1769                               \
1770     /usr/X386/include         \
1771     /usr/x386/include         \
1772     /usr/XFree86/include/X11  \
1773                               \
1774     X:/XFree86/include        \
1775     X:/XFree86/include/X11    \
1776                               \
1777     /usr/include/gtk          \
1778     /usr/local/include/gtk    \
1779     /usr/include/glib         \
1780     /usr/local/include/glib   \
1781                               \
1782     /usr/include/qt           \
1783     /usr/local/include/qt     \
1784                               \
1785     /usr/include/windows      \
1786     /usr/include/wine         \
1787     /usr/local/include/wine   \
1788                               \
1789     /usr/unsupported/include  \
1790     /usr/athena/include       \
1791     /usr/local/x11r5/include  \
1792     /usr/lpp/Xamples/include  \
1793                               \
1794     /usr/openwin/share/include"
1795
1796 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
1797
1798 dnl ------------------------------------------------------------------------
1799 dnl Check for libraries
1800 dnl ------------------------------------------------------------------------
1801
1802 dnl flush the cache because checking for libraries below might abort
1803 AC_CACHE_SAVE
1804
1805 dnl check for glibc version
1806 dnl
1807 dnl VZ: I have no idea why had this check been there originally, but now
1808 dnl     we could probably do without it by just always adding _GNU_SOURCE
1809 if test "$USE_LINUX" = 1 -o "$USE_GNU" = 1; then
1810     AC_CACHE_CHECK([for glibc 2.1 or later], wx_cv_lib_glibc21,[
1811         AC_TRY_COMPILE([#include <features.h>],
1812             [
1813                 #if (__GLIBC__ < 2) || (__GLIBC_MINOR__ < 1)
1814                     #error not glibc2.1
1815                 #endif
1816             ],
1817             [
1818                 wx_cv_lib_glibc21=yes
1819             ],
1820             [
1821                 wx_cv_lib_glibc21=no
1822             ]
1823         )
1824     ])
1825     if test "$wx_cv_lib_glibc21" = "yes"; then
1826         AC_DEFINE(wxHAVE_GLIBC2)
1827     fi
1828 fi
1829
1830 dnl we may need _GNU_SOURCE for 2 things:
1831 dnl
1832 dnl  1. to get PTHREAD_MUTEX_RECURSIVE with glibc 2.1+ (strictly speaking we
1833 dnl  only need _XOPEN_SOURCE=500 but just defining this disables _BSD_SOURCE
1834 dnl  which breaks libtiff compilation, so it is simpler to just define
1835 dnl  _GNU_SOURCE to get everything)
1836 dnl
1837 dnl  2. for Unicode functions
1838 if test "x$wx_cv_lib_glibc21" = "xyes"; then
1839     if test "$wxUSE_UNICODE" = "yes" -o "$wxUSE_THREADS" = "yes"; then
1840         AC_DEFINE(_GNU_SOURCE)
1841     fi
1842 fi
1843
1844 dnl ---------------------------------------------------------------------------
1845 dnl Optional libraries
1846 dnl
1847 dnl   --with-<lib>=sys
1848 dnl       looks for system library and fails if not found
1849 dnl
1850 dnl   --with-<lib>
1851 dnl   --with-<lib>=yes
1852 dnl       looks for system library and, if not found, prints a warning,
1853 dnl       falls back to the builtin wx version, and continues configuration
1854 dnl
1855 dnl   --with-<lib>=builtin
1856 dnl       uses builtin wx version without searching for system library
1857 dnl
1858 dnl   --with-<lib>=no
1859 dnl   --without-<lib>
1860 dnl       do not use library (neither system nor builtin wx version)
1861 dnl
1862 dnl ---------------------------------------------------------------------------
1863
1864 dnl ------------------------------------------------------------------------
1865 dnl Check for regex libraries
1866 dnl ------------------------------------------------------------------------
1867
1868 REGEX_INCLUDE=
1869 if test "$wxUSE_REGEX" != "no"; then
1870     AC_DEFINE(wxUSE_REGEX)
1871
1872     if test "$wxUSE_REGEX" = "sys" -o "$wxUSE_REGEX" = "yes" ; then
1873         dnl according to Unix 98 specs, regcomp() is in libc but I believe that
1874         dnl on some old systems it may be in libregex - check for it too?
1875         AC_CHECK_HEADER(regex.h, [AC_CHECK_FUNCS(regcomp)])
1876
1877         if test "x$ac_cv_func_regcomp" != "xyes"; then
1878             if test "$wxUSE_REGEX" = "sys" ; then
1879                 AC_MSG_ERROR([system regex library not found! Use --with-regex to use built-in version])
1880             else
1881                 AC_MSG_WARN([system regex library not found, will use built-in instead])
1882                 wxUSE_REGEX=builtin
1883             fi
1884         else
1885             dnl we are using the system library
1886             wxUSE_REGEX=sys
1887         fi
1888     fi
1889
1890     if test "$wxUSE_REGEX" = "builtin" ; then
1891         REGEX_INCLUDE="-I\${top_srcdir}/src/regex"
1892     fi
1893 fi
1894
1895 dnl ------------------------------------------------------------------------
1896 dnl Check for zlib compression library
1897 dnl ------------------------------------------------------------------------
1898
1899 ZLIB_INCLUDE=
1900 ZLIB_LINK=
1901 if test "$wxUSE_ZLIB" != "no" ; then
1902     AC_DEFINE(wxUSE_ZLIB)
1903
1904     if test "$wxUSE_ZLIB" = "sys" -o "$wxUSE_ZLIB" = "yes" ; then
1905         dnl don't test for zlib under Mac -- its verson there is 1.1.3 but we
1906         dnl should still use it because hopefully (can someone confirm this?)
1907         dnl Apple did fix the security problem in it and not using the system
1908         dnl library results in a whole bunch of warnings when linking with
1909         dnl Carbon framework
1910         if test "$USE_DARWIN" = 1; then
1911             system_zlib_h_ok="yes"
1912         else
1913             dnl we have troubles with ancient zlib versions (e.g. 1.0.4 is
1914             dnl known to not work) and although I don't know which is
1915             dnl the minimal required version it's safer to test for 1.1.4 as
1916             dnl it fixes a security problem in 1.1.3 -- and hopefully nobody
1917             dnl has anything more ancient (1.1.3 was released in July 1998)
1918             dnl anyhow
1919             AC_CACHE_CHECK([for zlib.h >= 1.1.4], ac_cv_header_zlib_h,
1920                 [AC_TRY_RUN(
1921                     dnl zlib.h defines ZLIB_VERSION="x.y.z"
1922                     [
1923                         #include <zlib.h>
1924                         #include <stdio.h>
1925
1926                         int main()
1927                         {
1928                             FILE *f=fopen("conftestval", "w");
1929                             if (!f) exit(1);
1930                             fprintf(f, "%s",
1931                                     ZLIB_VERSION[0] == '1' &&
1932                                     (ZLIB_VERSION[2] > '1' ||
1933                                     (ZLIB_VERSION[2] == '1' &&
1934                                      ZLIB_VERSION[4] >= '4')) ? "yes" : "no");
1935                             exit(0);
1936                         }
1937                     ],
1938                     ac_cv_header_zlib_h=`cat conftestval`,
1939                     ac_cv_header_zlib_h=no,
1940                     dnl cross-compiling: don't have an answer, try later
1941                     unset ac_cv_header_zlib_h
1942                 )]
1943             )
1944             dnl If the test above did not come up with a value (e.g. cross
1945             dnl compiling) then this should give a definitive answer
1946             AC_CHECK_HEADER(zlib.h)
1947
1948             system_zlib_h_ok=$ac_cv_header_zlib_h
1949         fi
1950
1951         if test "$system_zlib_h_ok" = "yes"; then
1952             AC_CHECK_LIB(z, deflate, ZLIB_LINK=" -lz")
1953         fi
1954
1955         if test "x$ZLIB_LINK" = "x" ; then
1956             if test "$wxUSE_ZLIB" = "sys" ; then
1957                 AC_MSG_ERROR([zlib library not found or too old! Use --with-zlib=builtin to use built-in version])
1958             else
1959                 AC_MSG_WARN([zlib library not found or too old, will use built-in instead])
1960                 wxUSE_ZLIB=builtin
1961             fi
1962         else
1963             dnl we are using the system library
1964             wxUSE_ZLIB=sys
1965         fi
1966     fi
1967
1968     if test "$wxUSE_ZLIB" = "builtin" ; then
1969         ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
1970     fi
1971 fi
1972
1973 dnl ------------------------------------------------------------------------
1974 dnl Check for png library
1975 dnl ------------------------------------------------------------------------
1976
1977 PNG_INCLUDE=
1978 PNG_LINK=
1979 if test "$wxUSE_LIBPNG" != "no" ; then
1980     AC_DEFINE(wxUSE_LIBPNG)
1981
1982     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBPNG" = "builtin" ; then
1983         AC_MSG_WARN([wxMGL doesn't work with builtin png library, will use MGL one instead])
1984         wxUSE_LIBPNG=sys
1985     fi
1986
1987     dnl for the check below to have a chance to succeed, we must already have
1988     dnl libz somewhere (don't do this when bulding wxMGL since its libpng
1989     dnl doesn't depend on zlib)
1990     if test "$wxUSE_MGL" != 1 -a "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
1991         AC_MSG_WARN([system png library doesn't work without system zlib, will use built-in instead])
1992         wxUSE_LIBPNG=builtin
1993     fi
1994
1995     if test "$wxUSE_MGL" != 1 ; then
1996         dnl Don't check for libpng when building wxMGL, libmgl contains it
1997         if test "$wxUSE_LIBPNG" = "sys" -o "$wxUSE_LIBPNG" = "yes" ; then
1998             dnl libpng version 0.9 is known to not work, if an even newer
1999             dnl version is required, just bump it up in the test below
2000             AC_CACHE_CHECK([for png.h > 0.90], ac_cv_header_png_h,
2001                 [AC_TRY_RUN(
2002                     dnl png.h defines PNG_LIBPNG_VER=number
2003                     [
2004                         #include <png.h>
2005                         #include <stdio.h>
2006
2007                         int main()
2008                         {
2009                             FILE *f=fopen("conftestval", "w");
2010                             if (!f) exit(1);
2011                             fprintf(f, "%s",
2012                                      PNG_LIBPNG_VER > 90 ? "yes" : "no");
2013                             exit(0);
2014                         }
2015                     ],
2016                     ac_cv_header_png_h=`cat conftestval`,
2017                     ac_cv_header_png_h=no,
2018                     dnl cross-compiling: test (later) if we have any png.h
2019                     unset ac_cv_header_png_h
2020                 )]
2021             )
2022             AC_CHECK_HEADER(png.h)
2023
2024             if test "$ac_cv_header_png_h" = "yes"; then
2025                 AC_CHECK_LIB(png, png_check_sig, PNG_LINK=" -lpng", , [-lz -lm])
2026             fi
2027
2028             if test "x$PNG_LINK" = "x" ; then
2029                 if test "$wxUSE_LIBPNG" = "sys" ; then
2030                     AC_MSG_ERROR([system png library not found or too old! Use --with-libpng=builtin to use built-in version])
2031                 else
2032                     AC_MSG_WARN([system png library not found or too old, will use built-in instead])
2033                     wxUSE_LIBPNG=builtin
2034                 fi
2035             else
2036                 dnl we are using the system library
2037                 wxUSE_LIBPNG=sys
2038             fi
2039         fi
2040     fi
2041
2042     if test "$wxUSE_LIBPNG" = "builtin" ; then
2043         PNG_INCLUDE="-I\${top_srcdir}/src/png"
2044     fi
2045
2046     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
2047 fi
2048
2049 dnl ------------------------------------------------------------------------
2050 dnl Check for jpeg library
2051 dnl ------------------------------------------------------------------------
2052
2053 JPEG_INCLUDE=
2054 JPEG_LINK=
2055 if test "$wxUSE_LIBJPEG" != "no" ; then
2056     AC_DEFINE(wxUSE_LIBJPEG)
2057
2058     if test "$wxUSE_MGL" = 1 -a "$wxUSE_LIBJPEG" = "builtin" ; then
2059         AC_MSG_WARN([wxMGL doesn't work with builtin jpeg library, will use MGL one instead])
2060         wxUSE_LIBJPEG=sys
2061     fi
2062
2063     if test "$wxUSE_MGL" != 1 ; then
2064         dnl Don't check for libjpeg when building wxMGL, libmgl contains it
2065         if test "$wxUSE_LIBJPEG" = "sys" -o "$wxUSE_LIBJPEG" = "yes" ; then
2066             dnl can't use AC_CHECK_HEADER as jconfig.h defines things like
2067             dnl HAVE_STDLIB_H which are already defined and this provokes
2068             dnl a compiler warning which configure considers as an error...
2069             AC_MSG_CHECKING(for jpeglib.h)
2070             AC_CACHE_VAL(ac_cv_header_jpeglib_h,
2071                 AC_TRY_COMPILE(
2072                     [
2073                         #undef HAVE_STDLIB_H
2074                         #include <stdio.h>
2075                         #include <jpeglib.h>
2076                     ],
2077                     [
2078                     ],
2079                     ac_cv_header_jpeglib_h=yes,
2080                     ac_cv_header_jpeglib_h=no
2081                 )
2082             )
2083             AC_MSG_RESULT($ac_cv_header_jpeglib_h)
2084
2085             if test "$ac_cv_header_jpeglib_h" = "yes"; then
2086                 AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK=" -ljpeg")
2087             fi
2088
2089             if test "x$JPEG_LINK" = "x" ; then
2090                 if test "$wxUSE_LIBJPEG" = "sys" ; then
2091                     AC_MSG_ERROR([system jpeg library not found! Use --with-libjpeg=builtin to use built-in version])
2092                 else
2093                     AC_MSG_WARN([system jpeg library not found, will use built-in instead])
2094                     wxUSE_LIBJPEG=builtin
2095                 fi
2096             else
2097                 dnl we are using the system library
2098                 wxUSE_LIBJPEG=sys
2099             fi
2100         fi
2101     fi
2102
2103     if test "$wxUSE_LIBJPEG" = "builtin" ; then
2104         JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
2105     fi
2106 fi
2107
2108 dnl ------------------------------------------------------------------------
2109 dnl Check for tiff library
2110 dnl ------------------------------------------------------------------------
2111
2112 TIFF_INCLUDE=
2113 TIFF_LINK=
2114 TIFF_PREREQ_LINKS=-lm
2115 if test "$wxUSE_LIBTIFF" != "no" ; then
2116     AC_DEFINE(wxUSE_LIBTIFF)
2117
2118     if test "$wxUSE_LIBTIFF" = "sys" -o "$wxUSE_LIBTIFF" = "yes" ; then
2119         dnl libtiff may depend on libjpeg and libz so use them in the test
2120         dnl below or it would fail
2121         if test "$wxUSE_LIBJPEG" = "sys"; then
2122             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $JPEG_LINK"
2123         fi
2124         if test "$wxUSE_ZLIB" = "sys"; then
2125             TIFF_PREREQ_LINKS="$TIFF_PREREQ_LINKS $ZLIB_LINK"
2126         fi
2127         AC_CHECK_HEADER(tiffio.h,
2128                         [
2129                             AC_CHECK_LIB(tiff, TIFFError,
2130                                          TIFF_LINK=" -ltiff",
2131                                          ,
2132                                          $TIFF_PREREQ_LINKS)
2133                         ]
2134                        )
2135
2136         if test "x$TIFF_LINK" = "x" ; then
2137             if test "$wxUSE_LIBTIFF" = "sys" ; then
2138                 AC_MSG_ERROR([system tiff library not found! Use --with-libtiff=builtin to use built-in version])
2139             else
2140                 AC_MSG_WARN([system tiff library not found, will use built-in instead])
2141                 wxUSE_LIBTIFF=builtin
2142             fi
2143         else
2144             dnl we are using the system library
2145             wxUSE_LIBTIFF=sys
2146         fi
2147     fi
2148
2149     if test "$wxUSE_LIBTIFF" = "builtin" ; then
2150         TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
2151     fi
2152 fi
2153
2154 dnl ------------------------------------------------------------------------
2155 dnl Check for expat libraries
2156 dnl ------------------------------------------------------------------------
2157
2158 if test "$wxUSE_EXPAT" != "no"; then
2159     wxUSE_XML=yes
2160     AC_DEFINE(wxUSE_EXPAT)
2161     AC_DEFINE(wxUSE_XML)
2162     
2163     if test "$wxUSE_EXPAT" = "sys" -o "$wxUSE_EXPAT" = "yes" ; then           
2164         AC_CHECK_HEADER([expat.h], [found_expat_h=1])
2165         if test "x$found_expat_h" = "x1"; then
2166             dnl Expat 1.95.6 comes with broken expat.h:
2167             AC_CACHE_CHECK([if expat.h is valid C++ header],
2168                 wx_cv_expat_is_not_broken,
2169                 [
2170                 AC_LANG_SAVE
2171                 AC_LANG_CPLUSPLUS
2172                 AC_TRY_COMPILE([#include <expat.h>],[],
2173                     wx_cv_expat_is_not_broken=yes,
2174                     wx_cv_expat_is_not_broken=no
2175                 )
2176                 AC_LANG_RESTORE
2177                 ]
2178             )
2179             if test "$wx_cv_expat_is_not_broken" = "yes" ; then
2180                 AC_CHECK_LIB(expat, XML_ParserCreate, EXPAT_LINK=" -lexpat")
2181             fi
2182         fi
2183         if test "x$EXPAT_LINK" = "x" ; then
2184             if test "$wxUSE_EXPAT" = "sys" ; then
2185                 AC_MSG_ERROR([system expat library not found! Use --with-expat=builtin to use built-in version])
2186             else
2187                 AC_MSG_WARN([system expat library not found, will use built-in instead])
2188                 wxUSE_EXPAT=builtin
2189             fi
2190         else
2191             dnl we are using the system library
2192             wxUSE_EXPAT=sys
2193         fi
2194     fi
2195     if test "$wxUSE_EXPAT" = "builtin" ; then
2196         dnl Expat needs this:
2197         AC_CONFIG_SUBDIRS([src/expat])
2198     fi
2199 fi
2200
2201
2202 dnl ----------------------------------------------------------------
2203 dnl search for toolkit (widget sets)
2204 dnl ----------------------------------------------------------------
2205
2206 AFMINSTALL=
2207 WIN32INSTALL=
2208
2209 TOOLKIT=
2210 TOOLKIT_INCLUDE=
2211 WIDGET_SET=
2212
2213 dnl are we building for a win32 target environment?
2214 dnl If so, setup common stuff needed for both GUI and Base libs.
2215 if test "$USE_WIN32" = 1 ; then
2216     AC_CHECK_HEADERS(w32api.h)
2217     AC_CHECK_HEADER(windows.h, [],
2218     [
2219         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
2220     ])
2221
2222     dnl --- FIXME: This is still a somewhat random list of libs,
2223     dnl ---        some of them should probably be included conditionally.
2224     LIBS="$LIBS -lwinspool -lwinmm -lshell32 -lcomctl32 -lcomdlg32 -lctl3d32 -ladvapi32 -lwsock32 -lgdi32"
2225
2226     if test "$wxUSE_ACCESSIBILITY" = "yes" ; then
2227         LIBS="$LIBS -loleacc"
2228     fi
2229
2230     case "${host}" in
2231         *-*-cygwin* )
2232             dnl Cygwin doesn't include these by default
2233             LIBS="$LIBS -lkernel32 -luser32"
2234             TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WIN95__"
2235     esac
2236
2237     dnl add extra odbc libs if we have compiled in odbc
2238     if test "$wxUSE_ODBC" = "sys" ; then
2239         wxUSE_ODBC = "yes"
2240     fi
2241     if test "$wxUSE_ODBC" = "yes" ; then
2242         LIBS=" -lodbc32 -lole32 -loleaut32 $LIBS"
2243         AC_DEFINE(wxUSE_ODBC)
2244     fi
2245     dnl We might want to abort here if wxUSE_ODBC="builtin" isn't supported on msw.
2246
2247     RESFLAGS="--include-dir \$(top_srcdir)/include --include-dir \$(top_srcdir)/\$(program_dir) --define __WIN32__ --define __WIN95__ --define __GNUWIN32__"
2248     RESPROGRAMOBJ="\$(PROGRAM)_resources.o"
2249
2250     dnl install Win32-specific files in "make install"
2251     WIN32INSTALL=win32install
2252 fi
2253
2254 if test "$wxUSE_GUI" = "yes"; then
2255     USE_GUI=1
2256
2257     GUI_TK_LIBRARY=
2258
2259     WXGTK12=
2260     WXGTK127=
2261     WXGTK20=
2262
2263     if test "$wxUSE_MSW" = 1 ; then
2264         TOOLKIT=MSW
2265         GUIDIST=MSW_DIST
2266
2267         dnl -mwindows causes a heap of other default gui libs to be linked in.
2268         dnl FIXME: If cygwin needs this, please push it above, if not, please
2269         dnl        remove this comment :-)
2270         case "${host}" in
2271             *-*-mingw32* )
2272                 WXCONFIG_LDFLAGS_GUI="$LDFLAGS -Wl,--subsystem,windows -mwindows"
2273         esac
2274     fi
2275
2276     if test "$wxUSE_GTK" = 1; then
2277         AC_MSG_CHECKING([for GTK+ version])
2278
2279         gtk_version_cached=1
2280         AC_CACHE_VAL(wx_cv_lib_gtk,
2281             [
2282                 dnl stupid GTK+ AM macros produce their own messages, so we
2283                 dnl have to pass to the next line
2284                 gtk_version_cached=0
2285                 AC_MSG_RESULT()
2286
2287                 dnl we must link against lgthread unless the user
2288                 dnl used --disable-threads
2289                 GTK_MODULES=
2290                 if test "$wxUSE_THREADS" = "yes"; then
2291                     GTK_MODULES=gthread
2292                 fi
2293
2294                 dnl note that if we fail to find GTK2 we abort and don't fall
2295                 dnl back to GTK1.x
2296                 wx_cv_lib_gtk=
2297                 if test "x$wxUSE_GTK2" = "xyes"; then
2298                     AM_PATH_GTK_2_0(2.0.0, wx_cv_lib_gtk=2.0, , $GTK_MODULES)
2299                 else
2300                     AM_PATH_GTK(1.2.7, wx_cv_lib_gtk=1.2.7, , $GTK_MODULES)
2301
2302                     if test -z "$wx_cv_lib_gtk"; then
2303                         AM_PATH_GTK(1.2.3, wx_cv_lib_gtk=1.2.3, , $GTK_MODULES)
2304                     fi
2305                 fi
2306
2307                 if test -z "$wx_cv_lib_gtk"; then
2308                     dnl looks better in AC_MSG_RESULT
2309                     wx_cv_lib_gtk=none
2310                 else
2311                     dnl we need to cache GTK_CFLAGS and GTK_LIBS for the
2312                     dnl subsequent runs
2313                     wx_cv_cflags_gtk=$GTK_CFLAGS
2314                     wx_cv_libs_gtk=$GTK_LIBS
2315                 fi
2316             ]
2317         )
2318
2319         dnl if it wasn't cached, the messages from AM_PATH_GTK() above are
2320         dnl enough
2321         if test "$gtk_version_cached" = 1; then
2322             AC_MSG_RESULT($wx_cv_lib_gtk)
2323         fi
2324
2325         case "$wx_cv_lib_gtk" in
2326             2.0)    WXGTK20=1
2327                     TOOLKIT_VERSION=2
2328                     ;;
2329             1.2.7)  WXGTK127=1
2330                     WXGTK12=1
2331                     ;;
2332             1.2.3)  WXGTK12=1
2333                     ;;
2334             *)      AC_MSG_ERROR([
2335 Please check that gtk-config is in path, the directory
2336 where GTK+ libraries are installed (returned by
2337 'gtk-config --libs' command) is in LD_LIBRARY_PATH or
2338 equivalent variable and GTK+ is version 1.2.3 or above.
2339                             ])
2340                     ;;
2341         esac
2342
2343         if test "$WXGTK20" = 1; then
2344             if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
2345                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
2346                     [
2347                         CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
2348                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
2349                     ],
2350                     [
2351                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
2352                         wxUSE_PRINTING_ARCHITECTURE="no"
2353                     ]
2354                 )
2355             fi
2356         else
2357             if test "$wxUSE_UNICODE" = "yes"; then
2358                 AC_MSG_WARN([Unicode configuration not supported with GTK+ 1.x])
2359                 wxUSE_UNICODE=no
2360             fi
2361         fi
2362
2363         dnl we need poll() in src/gtk/app.cpp (we know that Darwin doesn't
2364         dnl have it but we do the check for the others)
2365         if test "$USE_DARWIN" != 1; then
2366             AC_CHECK_FUNCS(poll)
2367         fi
2368
2369         TOOLKIT_INCLUDE="$wx_cv_cflags_gtk"
2370         GUI_TK_LIBRARY="$wx_cv_libs_gtk $GUI_TK_LIBRARY"
2371
2372         AFMINSTALL=afminstall
2373         TOOLKIT=GTK
2374         GUIDIST=GTK_DIST
2375
2376         dnl test for XIM support in libgdk
2377         AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
2378     fi
2379
2380     if test "$wxUSE_MGL" = 1; then
2381        AC_MSG_CHECKING(for SciTech MGL library)
2382         if test "x$MGL_ROOT" = x ; then
2383             AC_MSG_RESULT(not found)
2384             AC_MSG_ERROR([Cannot find MGL library. Make sure MGL_ROOT is set.])
2385         else
2386             AC_MSG_RESULT($MGL_ROOT)
2387         fi
2388
2389         AC_MSG_CHECKING(for libmgl location)
2390         dnl Find MGL library that we want
2391         dnl FIXME_MGL - test for MGL variants for freebsd etc.
2392         case "${host}" in
2393             *-*-linux* )
2394               if test "x$wxUSE_SHARED" = xyes ; then
2395                   mgl_os_candidates="linux/gcc/glibc.so linux/gcc/glibc"
2396               else
2397                   mgl_os_candidates="linux/gcc/glibc linux/gcc/glibc.so"
2398               fi
2399               ;;
2400             *-pc-msdosdjgpp )
2401               mgl_os_candidates="dos32/dj2"
2402               ;;
2403             *)
2404               AC_MSG_ERROR(This system type ${host} is not yet supported by wxMGL.)
2405         esac
2406
2407         mgl_lib_type=""
2408         mgl_os=""
2409
2410         for mgl_os_i in $mgl_os_candidates ; do
2411             if test "x$mgl_os" = x ; then
2412                 if test "$wxUSE_DEBUG_FLAG" = yes ; then
2413                     if test -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.a -o \
2414                             -f $MGL_ROOT/lib/debug/$mgl_os_i/libmgl.so; then
2415                         mgl_lib_type=debug
2416                         mgl_os=$mgl_os_i
2417                     fi
2418                 fi
2419                 if test "x$mgl_lib_type" = x ; then
2420                     if test -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.a -o \
2421                             -f $MGL_ROOT/lib/release/$mgl_os_i/libmgl.so; then
2422                         mgl_lib_type=release
2423                         mgl_os=$mgl_os_i
2424                     fi
2425                 fi
2426             fi
2427         done
2428
2429         if test "x$mgl_os" = x ; then
2430             AC_MSG_RESULT(not found)
2431             AC_MSG_ERROR([Cannot find MGL libraries, make sure they are compiled.])
2432         fi
2433         AC_MSG_RESULT("$MGL_ROOT/lib/$mgl_lib_type/$mgl_os")
2434
2435         wxUSE_UNIVERSAL="yes"
2436
2437         TOOLKIT_INCLUDE="-I$MGL_ROOT/include"
2438         GUI_TK_LIBRARY="-L$MGL_ROOT/lib/$mgl_lib_type/$mgl_os -lmgl -lmglcpp -lpm"
2439
2440         AFMINSTALL=afminstall
2441         TOOLKIT=MGL
2442         GUIDIST=MGL_DIST
2443     fi
2444
2445     if test "$wxUSE_MICROWIN" = 1; then
2446         AC_MSG_CHECKING(for MicroWindows)
2447         if test "x$MICROWINDOWS" = x ; then
2448             AC_MSG_RESULT(not found)
2449             AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWINDOWS is set.])
2450         else
2451             AC_MSG_RESULT($MICROWINDOWS)
2452         fi
2453
2454         if test -f $MICROWINDOWS/lib/libmwin.a; then
2455             AC_MSG_RESULT(MicroWindows' libraries found.)
2456         else
2457             AC_MSG_ERROR([Cannot find MicroWindows libraries, make sure they are compiled.])
2458         fi
2459
2460         TOOLKIT_INCLUDE="-I$MICROWINDOWS/include"
2461         GUI_TK_LIBRARY="-L$MICROWINDOWS/lib -lmwin -lmwengine -mwfonts -mwdrivers -mwinlib"
2462
2463         wxUSE_UNIVERSAL="yes"
2464
2465         AFMINSTALL=afminstall
2466         TOOLKIT=MICROWIN
2467         GUIDIST=MICROWIN_DIST
2468
2469         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXMSW__ -D__WIN95__ -D__WIN32__ -DMWIN -DMICROWIN_NOCONTROLS -DMICROWIN_TODO=1"
2470     fi
2471
2472     if test "$wxUSE_X11" = 1; then
2473         dnl use standard macros to check for X headers/libs, this brings support
2474         dnl for the standard configure options --x-includes and --x-libraries
2475         AC_PATH_XTRA
2476
2477         if test "$no_x" = "yes"; then
2478           AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
2479         fi
2480
2481         GUI_TK_LIBRARY="$X_LIBS"
2482         TOOLKIT_INCLUDE="$X_CFLAGS"
2483         AFMINSTALL=afminstall
2484         COMPILED_X_PROGRAM=0
2485
2486         if test "$wxUSE_NANOX" = "yes"; then
2487             AC_MSG_CHECKING(for MicroWindows/NanoX distribution)
2488             if test "x$MICROWIN" = x ; then
2489                 AC_MSG_RESULT(not found)
2490                 AC_MSG_ERROR([Cannot find MicroWindows library. Make sure MICROWIN is set.])
2491             else
2492                 AC_MSG_RESULT($MICROWIN)
2493                 AC_DEFINE(wxUSE_NANOX)
2494             fi
2495         fi
2496
2497         xpm_link=
2498         AC_MSG_CHECKING(for Xpm library)
2499         WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
2500         if test "$ac_find_libraries" != "" ; then
2501             WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
2502             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
2503             xpm_link=" -lXpm"
2504             AC_DEFINE(wxHAVE_LIB_XPM)
2505             AC_MSG_RESULT(found at $ac_find_libraries)
2506         else
2507             AC_TRY_COMPILE(
2508                 [
2509                     #include <X11/xpm.h>
2510                 ],
2511                 [
2512                     int version;
2513                     version = XpmLibraryVersion();
2514                 ],
2515                 [
2516                     xpm_link=" -lXpm"
2517                     AC_DEFINE(wxHAVE_LIB_XPM)
2518                     AC_MSG_RESULT(found in default search path)
2519                     COMPILED_X_PROGRAM=0
2520                 ],
2521                 [
2522                     AC_MSG_RESULT(no)
2523                     AC_MSG_WARN(library will be compiled without support for images in XPM format)
2524                 ]
2525             )
2526         fi
2527
2528         AC_CHECK_LIB([Xext], [XShapeQueryExtension],
2529                      [
2530                       GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXext"
2531                       wxHAVE_XEXT_LIB=1
2532                      ],
2533                      [], [$GUI_TK_LIBRARY -lX11])
2534
2535         if test "$wxUSE_UNICODE" = "yes"; then
2536                 PKG_CHECK_MODULES(PANGOX, pangox,
2537                     [
2538                         CXXFLAGS="$CXXFLAGS $PANGOX_CFLAGS"
2539                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOX_LIBS"
2540                     ],
2541                     [
2542                         AC_MSG_ERROR([pangox library not found, library cannot be compiled in Unicode mode])
2543                     ]
2544                 )
2545                 PKG_CHECK_MODULES(PANGOFT2, pangoft2,
2546                     [
2547                         CXXFLAGS="$CXXFLAGS $PANGOFT2_CFLAGS"
2548                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOFT2_LIBS"
2549                     ],
2550                     [
2551                         AC_MSG_WARN([pangoft2 library not found, library will be compiled without printing support])
2552                         wxUSE_PRINTING_ARCHITECTURE="no"
2553                     ]
2554                 )
2555                 PKG_CHECK_MODULES(PANGOXFT, pangoxft,
2556                     [
2557                         CXXFLAGS="$CXXFLAGS $PANGOXFT_CFLAGS"
2558                         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $PANGOXFT_LIBS"
2559                     ],
2560                     [
2561                         AC_MSG_WARN([pangoxft library not found, library will be compiled without anti-aliasing support])
2562                     ]
2563                 )
2564         fi
2565
2566         wxUSE_UNIVERSAL="yes"
2567
2568         if test "$wxUSE_NANOX" = "yes"; then
2569             TOOLKIT_INCLUDE="-I\$(top_srcdir)/include/wx/x11/nanox -I\$(MICROWIN)/src/include $TOOLKIT_INCLUDE"
2570             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"
2571             GUI_TK_LIBRARY="$GUI_TK_LIBRARY \$(MICROWIN)/src/lib/libnano-X.a"
2572         else
2573             GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lX11$xpm_link"
2574         fi
2575
2576         TOOLKIT_VPATH="\${top_srcdir}/src/x11"
2577         TOOLKIT=X11
2578         GUIDIST=X11_DIST
2579     fi
2580
2581     if test "$wxUSE_MOTIF" = 1; then
2582         dnl use standard macros to check for X headers/libs, this brings support
2583         dnl for the standard configure options --x-includes and --x-libraries
2584         AC_PATH_XTRA
2585
2586         if test "$no_x" = "yes"; then
2587           AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
2588         fi
2589
2590         dnl for some reason AC_PATH_XTRA seems to add -INONE and -LNONE to
2591         dnl X_LIBS and X_CFLAGS respectively -- what for??
2592         GUI_TK_LIBRARY=`echo $X_LIBS | sed 's/ -LNONE//'`
2593         TOOLKIT_INCLUDE=`echo $X_CFLAGS | sed 's/ -INONE//'`
2594         AFMINSTALL=afminstall
2595         COMPILED_X_PROGRAM=0
2596
2597         AC_MSG_CHECKING(for Motif/Lesstif headers)
2598         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
2599         if test "$ac_find_includes" != "" ; then
2600             AC_MSG_RESULT(found in $ac_find_includes)
2601             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
2602             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE$ac_path_to_include"
2603         else
2604             AC_TRY_COMPILE(
2605                 [
2606                     #include <Xm/Xm.h>
2607                 ],
2608                 [
2609                     int version;
2610                     version = xmUseVersion;
2611                 ],
2612                 [
2613                     AC_MSG_RESULT(found in default search path)
2614                     COMPILED_X_PROGRAM=1
2615                 ],
2616                 [
2617                     AC_MSG_RESULT(no)
2618                     AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
2619                 ]
2620             )
2621         fi
2622
2623         if test "$COMPILED_X_PROGRAM" = 0; then
2624             AC_MSG_CHECKING(for Motif/Lesstif library)
2625             WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
2626             if test "$ac_find_libraries" != "" ; then
2627                 AC_MSG_RESULT(found at $ac_find_libraries)
2628
2629                 WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
2630                 GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
2631             else
2632                 dnl it might happen that we found headers in one of the
2633                 dnl standard paths but the libs are elsewhere - we do need to
2634                 dnl try to compile a sample program then here
2635                 save_CFLAGS=$CFLAGS
2636                 CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2637
2638                 AC_TRY_COMPILE(
2639                     [
2640                         #include <Xm/Xm.h>
2641                     ],
2642                     [
2643                         int version;
2644                         version = xmUseVersion;
2645                     ],
2646                     [
2647                         AC_MSG_RESULT(found in default search path)
2648                         COMPILED_X_PROGRAM=1
2649                     ],
2650                     [
2651                         AC_MSG_RESULT(no)
2652                         AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
2653                     ]
2654                 )
2655
2656                 CFLAGS=$save_CFLAGS
2657             fi
2658         fi
2659
2660         xpm_link=
2661         AC_MSG_CHECKING(for Xpm library)
2662         WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
2663         if test "$ac_find_libraries" != "" ; then
2664             WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
2665             GUI_TK_LIBRARY="$GUI_TK_LIBRARY$ac_path_to_link"
2666
2667             xpm_link=" -lXpm"
2668             AC_DEFINE(wxHAVE_LIB_XPM)
2669             AC_MSG_RESULT(found at $ac_find_libraries)
2670         else
2671             save_CFLAGS=$CFLAGS
2672             CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2673
2674             AC_TRY_COMPILE(
2675                 [
2676                     #include <X11/xpm.h>
2677                 ],
2678                 [
2679                     int version;
2680                     version = XpmLibraryVersion();
2681                 ],
2682                 [
2683                     xpm_link=" -lXpm"
2684                     AC_DEFINE(wxHAVE_LIB_XPM)
2685                     AC_MSG_RESULT(found in default search path)
2686                     COMPILED_X_PROGRAM=0
2687                 ],
2688                 [
2689                     AC_MSG_RESULT(no)
2690                     AC_MSG_WARN(library will be compiled without support for images in XPM format)
2691                 ]
2692             )
2693
2694             CFLAGS=$save_CFLAGS
2695         fi
2696
2697         AC_MSG_CHECKING([if we need -lXp and/or -lSM -lICE])
2698         libp_link=""
2699         libsm_ice_link=""
2700         libs_found=0
2701         for libp in "" " -lXp"; do
2702             if test "$libs_found" = "0"; then
2703                 for libsm_ice in " -lSM -lICE"; do
2704                     if test "$libs_found" = "0"; then
2705                         save_LIBS="$LIBS"
2706                         LIBS="$GUI_TK_LIBRARY -lXm${xpm_link} ${libp} -lXmu -lXext -lXt${libsm_ice} -lX11"
2707                         save_CFLAGS=$CFLAGS
2708                         CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2709
2710                         AC_TRY_LINK(
2711                             [
2712                                 #include <Xm/Xm.h>
2713                                 #include <Xm/List.h>
2714                             ],
2715                             [
2716                                 XmString string = NULL;
2717                                 Widget w = NULL;
2718                                 int position = 0;
2719                                 XmListAddItem(w, string, position);
2720                             ],
2721                             [
2722                                 libp_link="$libp"
2723                                 libsm_ice_link="$libsm_ice"
2724                                 AC_MSG_RESULT(
2725                                     [need${libp_link}${libsm_ice_link}])
2726                                 libs_found=1
2727                             ], []
2728                         )
2729
2730                         LIBS="$save_LIBS"
2731                         CFLAGS=$save_CFLAGS
2732                     fi
2733                 done
2734             fi
2735         done
2736
2737         if test "$libs_found" = "0"; then
2738             AC_MSG_RESULT([can't find the right libraries])
2739             AC_MSG_ERROR([can't link a simple motif program])
2740         fi
2741
2742         save_CFLAGS=$CFLAGS
2743         CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2744         AC_MSG_CHECKING([for Motif 2])
2745         AC_TRY_COMPILE([
2746                         #include <Xm/Xm.h>
2747                        ],
2748                        [
2749                         #if XmVersion < 2000
2750                         #error "Not Motif 2"
2751                         #endif
2752                        ],
2753                        [
2754                         AC_DEFINE(__WXMOTIF20__,1)
2755                         AC_MSG_RESULT([found])
2756                        ],
2757                        [
2758                         AC_DEFINE(__WXMOTIF20__,0)
2759                         AC_MSG_RESULT([not found])
2760                        ])
2761         CFLAGS=$save_CFLAGS
2762
2763         GUI_TK_LIBRARY="$GUI_TK_LIBRARY -lXm$xpm_link${libp_link} -lXmu -lXext -lXt${libsm_ice_link} -lX11"
2764         TOOLKIT_VPATH="\${top_srcdir}/src/motif${PATH_IFS}\${top_srcdir}/src/motif/xmcombo${PATH_IFS}\${top_srcdir}/src/x11"
2765         TOOLKIT=MOTIF
2766         GUIDIST=MOTIF_DIST
2767         wxHAVE_XEXT_LIB=1
2768     fi
2769
2770     if test "$wxUSE_X11" = 1 -o "$wxUSE_MOTIF" = 1 &&
2771        test "$wxHAVE_XEXT_LIB" = 1; then
2772         save_CFLAGS="$CFLAGS"
2773         CFLAGS="$CFLAGS $TOOLKIT_INCLUDE"
2774
2775         AC_MSG_CHECKING([for X11/extensions/shape.h])
2776         AC_TRY_COMPILE([
2777                         #include <X11/Xlib.h> 
2778                         #include <X11/extensions/shape.h>
2779                        ],
2780                        [
2781                         int dummy1, dummy2;
2782                         XShapeQueryExtension((Display*)NULL,
2783                                              (int*)NULL, (int*)NULL);
2784                        ],
2785                        [
2786                         AC_DEFINE(HAVE_XSHAPE)
2787                         AC_MSG_RESULT([found])
2788                        ],
2789                        [
2790                         AC_MSG_RESULT([not found])
2791                        ])
2792         CFLAGS="$save_CFLAGS"
2793     fi
2794
2795     if test "$wxUSE_MAC" = 1; then
2796         CPPFLAGS="$CPPFLAGS -fpascal-strings -I\${top_srcdir}/src/mac/morefilex -I/Developer/Headers/FlatCarbon"
2797
2798         TOOLKIT_VPATH="\${top_srcdir}/src/mac${PATH_IFS}\${top_srcdir}/src/mac/morefilex"
2799         TOOLKIT=MAC
2800         dnl we can't call this MAC_DIST or autoconf thinks its a macro
2801         GUIDIST=MACX_DIST
2802         dnl wxMac version of wxBase and wxCocoa or wxBase-only built on Darwin
2803         dnl are different, so they need different names:
2804         WXBASEPORT="_carbon"
2805     fi
2806
2807     if test "$wxUSE_COCOA" = 1; then
2808         TOOLKIT_VPATH="\${top_srcdir}/src/cocoa"
2809         TOOLKIT=COCOA
2810         GUIDIST=COCOA_DIST
2811     fi
2812
2813     if test "$wxUSE_PM" = 1; then
2814         TOOLKIT=PM
2815         GUIDIST=GTK_DIST
2816     fi
2817
2818     dnl the name of the directory where the files for this toolkit live
2819     if test "$TOOLKIT" = "PM" ; then
2820         TOOLKIT_DIR="os2"
2821     else
2822         TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
2823     fi
2824
2825     dnl misc other files depending on the port
2826     PORT_FILES="\${top_srcdir}/src/\$(TOOLKITDIR)/files.lst"
2827
2828     if test "$wxUSE_UNIVERSAL" = "yes"; then
2829         ALL_OBJECTS="\$(GUI_LOWLEVEL_OBJS) \${UNIVOBJS}"
2830
2831         dnl ALL_SOURCES and ALL_HEADERS shouldn't include really all sources
2832         dnl and headers as some/most are not needed for wxUniv but I don't
2833         dnl have time to add GUI_LOWLEVEL_SOURCES/HEADERS stuff now (TODO!)
2834         ALL_SOURCES="\$(ALL_SOURCES) \${UNIV_SOURCES}"
2835         ALL_HEADERS="\$(ALL_HEADERS) \${UNIV_HEADERS}"
2836
2837         PORT_FILES="${PORT_FILES} \${top_srcdir}/src/univ/files.lst"
2838         if test "$wxUSE_X11" = 1; then
2839             TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}${PATH_IFS}\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes"
2840         else
2841             TOOLKIT_VPATH="\${top_srcdir}/src/univ${PATH_IFS}\${top_srcdir}/src/univ/themes${PATH_IFS}\${top_srcdir}/src/${TOOLKIT_DIR}"
2842         fi
2843         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WXUNIVERSAL__"
2844         WIDGET_SET=univ
2845     else
2846         ALL_OBJECTS="\$(GUIOBJS)"
2847         ALL_SOURCES="\$(ALL_SOURCES)"
2848         ALL_HEADERS="\$(ALL_HEADERS)"
2849     fi
2850
2851     ALL_OBJECTS="${ALL_OBJECTS} \$(COMMONOBJS) \$(GENERICOBJS)"
2852
2853     if test "$TOOLKIT" != "MSW" -a "$USE_DOS" != 1; then
2854         ALL_OBJECTS="${ALL_OBJECTS} \$(UNIXOBJS)"
2855     fi
2856
2857     if test "$wxUSE_HTML" = "yes"; then
2858         ALL_OBJECTS="${ALL_OBJECTS} \$(HTMLOBJS)"
2859     fi
2860
2861     if test "$wxUSE_LIBJPEG" = "builtin" ; then
2862         ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
2863     fi
2864     if test "$wxUSE_LIBTIFF" = "builtin" ; then
2865         ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)"
2866     fi
2867     if test "$wxUSE_LIBPNG" = "builtin" ; then
2868         ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)"
2869     fi
2870
2871     dnl distribute samples/demos/utils with GUI versions
2872     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
2873     DISTDIR="wx\$(TOOLKIT)"
2874 else
2875     USE_GUI=0
2876
2877     dnl this doesn't quite work right for wxBase, but the places
2878     dnl where it is wrong aren't fatal (yet) though.
2879     TOOLKIT_DIR="base"
2880
2881     dnl the sources, their dependenices and the headers
2882     if test "$USE_WIN32" = 1 ; then
2883         ALL_OBJECTS="\${BASE_OBJS} \${BASE_MSW_OBJS}"
2884         TOOLKIT_VPATH="\${top_srcdir}/src/msw"
2885
2886         dnl yes, the toolkit for wxBase on win32 is actually MSW
2887         dnl wxBase on unix does not need a 'TOOLKIT' defined.
2888         TOOLKIT="MSW"
2889     else
2890         ALL_OBJECTS="\${BASE_OBJS} \${BASE_UNIX_OBJS}"
2891         TOOLKIT_VPATH="\${top_srcdir}/src/unix"
2892     fi
2893
2894     ALL_SOURCES="\$(ALL_SOURCES)"
2895     ALL_HEADERS="\$(ALL_HEADERS)"
2896
2897     PORT_FILES="\${top_srcdir}/src/files.lst"
2898
2899     dnl distribute only wxBase sources/headers
2900     GUIDIST="BASE_DIST"
2901     DISTDIR="wxBase"
2902 fi
2903
2904 dnl ---------------------------------------------------------------------------
2905 dnl Optional libraries included when system library is not used
2906 dnl ---------------------------------------------------------------------------
2907
2908
2909 dnl ----------------------------------------------------------------
2910 dnl iODBC support
2911 dnl ----------------------------------------------------------------
2912
2913 IODBC_C_SRC=""
2914
2915
2916 dnl ODBC is handled seperately for MSW 
2917 if test "$TOOLKIT" != "MSW" ; then
2918
2919     if test "$wxUSE_ODBC" = "sys" -o "$wxUSE_ODBC" = "yes" ; then
2920         dnl This is not ideal we really ough to use the unixodbc-config
2921         dnl  or iodbc-config if they exist.
2922
2923         AC_CHECK_HEADER([sql.h], [found_sql_h=1])
2924         if test "x$found_sql_h" = "x1" ; then
2925             AC_CHECK_LIB(iodbc, SQLAllocEnv, ODBC_LINK=" -liodbc",
2926             [
2927                 AC_CHECK_LIB(unixodbc, SQLAllocEnv, ODBC_LINK=" -lunixodbc",
2928                 [
2929                     AC_CHECK_LIB(odbc, SQLAllocEnv, ODBC_LINK=" -lodbc")
2930                 ])
2931             ])
2932         fi 
2933         if test "x$ODBC_LINK" = "x" ; then
2934             if test "$wxUSE_ODBC" = "sys" ; then
2935                 AC_MSG_ERROR([system ODBC library not found! Use --with-odbc=builtin to use built-in version])
2936             else
2937                 AC_MSG_WARN([system ODBC library not found, will use built-in instead])
2938                 wxUSE_ODBC=builtin
2939             fi
2940         else
2941             dnl we are using the system library
2942             wxUSE_ODBC=sys
2943         fi
2944     fi
2945     if test "$wxUSE_ODBC" != "no" ; then
2946         AC_DEFINE(wxUSE_ODBC)
2947         if test "$wxUSE_ODBC" = "builtin" ; then
2948             AC_DEFINE(wxUSE_BUILTIN_IODBC)
2949         fi
2950         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
2951     
2952         dnl is this still necessary in 2.5?
2953         WXODBCFLAG="-D_IODBC_"
2954     fi
2955 fi
2956
2957 if test "$wxUSE_REGEX" = "builtin" ; then
2958     ALL_OBJECTS="${ALL_OBJECTS} \$(REGEXOBJS)"
2959 fi
2960 if test "$wxUSE_ZLIB" = "builtin" ; then
2961     ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
2962 fi
2963
2964 dnl ---------------------------------------------------------------------------
2965 dnl OpenGL libraries
2966 dnl ---------------------------------------------------------------------------
2967
2968 USE_OPENGL=0
2969 if test "$wxUSE_OPENGL" = "yes"; then
2970     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = "1"; then
2971         OPENGL_LIBS="-framework OpenGL -framework AGL"
2972     elif test "$wxUSE_MSW" = 1; then
2973         OPENGL_LIBS="-lopengl32 -lglu32"
2974     else
2975         dnl David Elliott: Without this snippet AC_CHECK_HEADER fails to find
2976         dnl GL/gl.h on Mac OS X where it is located in
2977         dnl /usr/X11R6/include/GL/gl.h:
2978
2979         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, GL/gl.h)
2980         if test "$ac_find_includes" != "" ; then
2981             AC_MSG_RESULT(found in $ac_find_includes)
2982             WX_INCLUDE_PATH_EXIST($ac_find_includes, $CPPFLAGS)
2983             CPPFLAGS="$CPPFLAGS$ac_path_to_include"
2984         fi
2985
2986         AC_CHECK_HEADER(GL/gl.h,
2987             [
2988                 found_gl=0
2989
2990                 AC_MSG_CHECKING([for -lGL])
2991                 WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GL)
2992                 if test "$ac_find_libraries" != "" ; then
2993                     WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
2994                     if test "$ac_path_to_link" != " -L/usr/lib" ; then
2995                         LDFLAGS_GL="$ac_path_to_link"
2996                     fi
2997
2998                     dnl don't suppose that libGL and libGLU are always in the
2999                     dnl same directory -- this is not true for some common
3000                     dnl distributions
3001                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],GLU)
3002                     if test "$ac_find_libraries" != "" ; then
3003                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3004                         if test "$ac_path_to_link" != " -L/usr/lib" -a \
3005                                     "$ac_path_to_link" != "$LDFLAGS_GL"; then
3006                             LDFLAGS_GL="$LDFLAGS_GL$ac_path_to_link"
3007                         fi
3008
3009                         found_gl=1
3010                         OPENGL_LIBS="-lGL -lGLU"
3011                         AC_MSG_RESULT([yes])
3012                     fi
3013                 fi
3014
3015                 if test "$found_gl" != 1; then
3016                     AC_MSG_RESULT([no])
3017                     AC_MSG_CHECKING([for -lMesaGL])
3018                     WX_PATH_FIND_LIBRARIES([$SEARCH_LIB],MesaGL)
3019                     if test "$ac_find_libraries" != "" ; then
3020                         WX_LINK_PATH_EXIST([$ac_find_libraries],[$LDFLAGS])
3021                         LDFLAGS_GL="$LDFLAGS$ac_path_to_link"
3022                         OPENGL_LIBS="-lMesaGL -lMesaGLU"
3023                         AC_MSG_RESULT([yes])
3024                     else
3025                         AC_MSG_RESULT([no])
3026                     fi
3027                 fi
3028             ])
3029
3030         if test "x$OPENGL_LIBS" = "x"; then
3031             dnl it should be an error and not a warning because OpenGL is not on
3032             dnl by default and so if it had been explicitely requested, we
3033             dnl shouldn't just fall back to compiling the library without it
3034             AC_MSG_ERROR(OpenGL libraries not available)
3035         fi
3036     fi
3037
3038     if test "$wxUSE_OPENGL" = "yes"; then
3039         USE_OPENGL=1
3040         AC_DEFINE(wxUSE_OPENGL)
3041         AC_DEFINE(wxUSE_GLCANVAS)
3042         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS opengl opengl/cube opengl/penguin opengl/isosurf"
3043     fi
3044 fi
3045
3046 if test -z "$TOOLKIT_VPATH" ; then
3047     TOOLKIT_VPATH="\${top_srcdir}/src/${TOOLKIT_DIR}"
3048 fi
3049
3050 dnl the symbol which allows conditional compilation for the given toolkit
3051 if test -n "$TOOLKIT" ; then
3052     TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D__WX${TOOLKIT}__"
3053 fi
3054
3055 UNICODE=0
3056 lib_unicode_suffix=
3057 if test "$wxUSE_UNICODE" = "yes"; then
3058     lib_unicode_suffix=u
3059     UNICODE=1
3060 fi
3061
3062 lib_debug_suffix=
3063 DEBUG_FLAG=0
3064 if test "$wxUSE_DEBUG_FLAG" = "yes"; then
3065     lib_debug_suffix=d
3066     DEBUG_FLAG=1
3067 fi
3068
3069 DEBUG_INFO=0
3070 if test "$wxUSE_DEBUG_INFO" = "yes"; then
3071     DEBUG_INFO=1
3072 fi
3073
3074 WX_VERSION_TAG=`echo WX${lib_unicode_suffix}${lib_debug_suffix}_${WX_RELEASE} | tr "[[a-z]]" "[[A-Z]]"`
3075
3076 TOOLCHAIN_NAME="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}-${WX_RELEASE}"
3077 TOOLCHAIN_NAME_GL="${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}_gl-${WX_RELEASE}"
3078
3079 if test "$cross_compiling" = "yes"; then
3080     TOOLCHAIN_NAME="${TOOLCHAIN_NAME}-${host_alias}"
3081     TOOLCHAIN_NAME_GL="${TOOLCHAIN_NAME_GL}-${host_alias}"
3082     HOST_SUFFIX="-${host_alias}"
3083 fi
3084
3085 dnl library link name
3086 WX_LIBRARY="wx_${TOOLCHAIN_NAME}"
3087 WX_LIBRARY_GL="wx_${TOOLCHAIN_NAME_GL}"
3088 WX_LIBRARY_BASENAME_NOGUI="wx_base${WXBASEPORT}${lib_unicode_suffix}${lib_debug_suffix}"
3089 WX_LIBRARY_BASENAME_GUI="wx_${TOOLKIT_DIR}${TOOLKIT_VERSION}${WIDGET_SET}${lib_unicode_suffix}${lib_debug_suffix}"
3090
3091 dnl the name of the shared library
3092 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
3093 WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
3094
3095 dnl the name of the links to the shared library
3096 WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${SO_SUFFIX}.${WX_CURRENT}"
3097 WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}"
3098 WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}.${WX_CURRENT}"
3099 WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
3100
3101 case "${host}" in
3102     *-*-cygwin* | *-*-mingw32* )
3103         WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${SO_SUFFIX}"
3104         WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
3105         ;;
3106
3107     *-*-darwin* )
3108         dnl Under Mac OS X, the naming conventions for shared libraries
3109         dnl are different: the number precedes the suffix.
3110
3111         WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
3112         WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.${SO_SUFFIX}"
3113
3114         WX_LIBRARY_LINK1="lib${WX_LIBRARY}.${WX_CURRENT}.${SO_SUFFIX}"
3115         WX_LIBRARY_LINK2="lib${WX_LIBRARY}.${SO_SUFFIX}"
3116         WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY_GL}.${WX_CURRENT}.${SO_SUFFIX}"
3117         WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY_GL}.${SO_SUFFIX}"
3118
3119         dnl Under Mac OS X, we should build real frameworks instead of simple
3120         dnl dynamic shared libraries (in order to embed the resources)
3121         if test "$wxUSE_MAC" = 1; then
3122             dnl base name of the resource file for wxMac must be the same
3123             dnl as library installation base name (-install_name)
3124             WX_RESOURCES_MACOSX_ASCII="lib${WX_LIBRARY}.${WX_CURRENT}.r"
3125             WX_RESOURCES_MACOSX_DATA="lib${WX_LIBRARY}.${WX_CURRENT}.rsrc"
3126         fi
3127         ;;
3128 esac
3129
3130 dnl the name of the static library
3131 WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
3132 WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY_GL}.a"
3133
3134 dnl define which libs wx-config should link.
3135 WXCONFIG_LIBS="-l${WX_LIBRARY}"
3136 WXCONFIG_LIBS_STATIC="lib${WX_LIBRARY}.a"
3137
3138 if test "$wxUSE_OPENGL" = "yes"; then
3139     WXCONFIG_LIBS_GL="-l${WX_LIBRARY_GL} ${OPENGL_LIBS}"
3140     WXCONFIG_LIBS_STATIC_GL="lib${WX_LIBRARY_GL}.a ${OPENGL_LIBS}"
3141 fi
3142
3143
3144 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
3145
3146 if test "$wxUSE_SHARED" = "yes"; then
3147     case "${host}" in
3148       *-pc-os2_emx | *-pc-os2-emx | \
3149       *-pc-msdosdjgpp )
3150         dnl only static for now
3151         wxUSE_SHARED=no
3152         AC_MSG_WARN([Host system doesn't support shared libraries, disabling])
3153       ;;
3154     esac
3155 fi
3156
3157 SHARED=0
3158 if test "$wxUSE_SHARED" = "yes"; then
3159     SHARED=1
3160
3161     dnl use versioned symbols if available on the platform
3162     WX_VERSIONED_SYMBOLS([\$(top_builddir)version-script])
3163
3164     case "${host}" in
3165       *-*-linux* | *-*-gnu* )
3166         SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3167         ;;
3168
3169       *-*-solaris2* )
3170         if test "$GCC" = yes ; then
3171             dnl newer versions of gcc need -isystem to compile X headers on
3172             dnl Solaris (which use old style C syntax)
3173             CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include"
3174
3175             dnl gcc may use Sun's ld, in which case -rpath gives a confusing
3176             dnl error message. We have to try both -Wl,-rpath and -Wl,-R:
3177             saveLdflags="$LDFLAGS"
3178             LDFLAGS="$saveLdflags -Wl,-rpath,/"
3179             AC_MSG_CHECKING([if the linker accepts -rpath])
3180             AC_TRY_LINK(
3181                 [],[],
3182                 [
3183                     AC_MSG_RESULT([yes])
3184                     SAMPLES_RPATH_FLAG="-Wl,-rpath,\$(top_builddir)lib"
3185                 ],
3186                 [
3187                     AC_MSG_RESULT([no])
3188                     AC_MSG_CHECKING([if the linker accepts -R])
3189                     LDFLAGS="$saveLdflags -Wl,-R,/"
3190                     AC_TRY_LINK(
3191                         [],[],
3192                         [
3193                              AC_MSG_RESULT([yes])
3194                              SAMPLES_RPATH_FLAG="-Wl,-R,\$(top_builddir)lib"],
3195                         [
3196                             AC_MSG_RESULT([no])
3197                         ])                    
3198                 ])
3199             LDFLAGS="$saveLdflags"
3200         else
3201             SHARED_LD="${CXX} -G -o"
3202             PIC_FLAG="-KPIC"
3203             SAMPLES_RPATH_FLAG="-R\$(top_builddir)lib"
3204         fi
3205       ;;
3206       
3207       powerpc-*-darwin* )
3208         SAMPLES_RPATH_POSTLINK="\$(top_builddir)change-install-names \$(LIBDIRNAME) \$(prefix) \$@"
3209         cat <<EOF >change-install-names
3210 #!/bin/sh
3211 libnames=\`cd \${1} ; ls -1 | grep '\.[[0-9]][[0-9]]*\.dylib\$'\`
3212 inst_cmd="install_name_tool "
3213 for i in \${libnames} ; do
3214     inst_cmd="\${inst_cmd} -change \${2}/lib/\${i} \${1}/\${i}"
3215 done
3216 \${inst_cmd} \${3}
3217 EOF
3218         chmod +x change-install-names
3219       ;;
3220       
3221     esac
3222
3223     dnl set target to shared if not explicitly chose static before
3224     if test "x$WX_TARGET_LIBRARY" = "x"; then
3225         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
3226         WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}"
3227     fi
3228
3229     dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic
3230     WX_TARGET_LIBRARY_TYPE="so"
3231     INSTALL_LIBRARY='$(INSTALL_PROGRAM)'
3232 fi
3233
3234 dnl do not 'else' this, it may be changed in the above conditional.
3235 if test "$wxUSE_SHARED" = "no"; then
3236
3237     dnl give static wxBase and wxMSW build a working install target
3238     if test "$wxUSE_GUI" = "no" -o "$USE_WIN32" = 1 ; then
3239         dnl we're here because WX_ALL_INSTALLED is empty, but play safe anyway
3240         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
3241     fi
3242
3243     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
3244         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
3245     fi
3246
3247     if test "$wxUSE_OPENGL" = "yes"; then
3248         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_gl"
3249         WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_STATIC} \$(build_libdir)/${WX_LIBRARY_NAME_STATIC_GL}"
3250     else
3251         WX_ALL="\$(build_libdir)/${WX_LIBRARY_NAME_STATIC}"
3252     fi
3253
3254     WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
3255     WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
3256
3257     WX_TARGET_LIBRARY_TYPE="a"
3258     INSTALL_LIBRARY='$(INSTALL_DATA)'
3259
3260     dnl wx-config should assume the --static flag by default if we don't have
3261     dnl any shared libs anyhow
3262     STATIC_FLAG="yes"
3263 else
3264     STATIC_FLAG="no"
3265 fi
3266
3267 dnl default value is to (silently) do nothing in the makefile
3268 MACRESCOMP="@#"
3269 MACSETFILE="@#"
3270 MACRESWXCONFIG="#"
3271 if test "$wxUSE_MAC" = 1; then
3272     dnl add the resources target for wxMac
3273     LIBWXMACRES="\$(top_builddir)lib/${WX_RESOURCES_MACOSX_ASCII}"
3274     WX_ALL="${WX_ALL} ${LIBWXMACRES}"
3275     WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall_res"
3276     AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
3277     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
3278     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
3279     MACOSX_BUNDLE="bundle"
3280     dnl resources are bundled both with shared library and applications
3281     dnl since the carb resource *must* be included in the application
3282     MACRESCOMP="\$(RESCOMP) -d __DARWIN__ -t APPL Carbon.r ${LIBWXMACRES} -o"
3283     MACSETFILE="\$(SETFILE)"
3284     MACRESWXCONFIG="${RESCOMP} -d __DARWIN__ -t APPL Carbon.r \${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
3285 elif test "$wxUSE_COCOA" = 1; then
3286     AC_CHECK_PROG(RESCOMP, Rez, Rez, /Developer/Tools/Rez)
3287     AC_CHECK_PROG(DEREZ, DeRez, DeRez, /Developer/Tools/DeRez)
3288     AC_CHECK_PROG(SETFILE, SetFile, SetFile, /Developer/Tools/SetFile)
3289     MACRESCOMP="echo -n | \$(RESCOMP) -d __DARWIN__ -t APPL ${LIBWXMACRES} -o"
3290     MACSETFILE="\$(SETFILE)"
3291     MACRESWXCONFIG="echo -n | ${RESCOMP} -d __DARWIN__ -t APPL \${exec_prefix}/lib/${WX_RESOURCES_MACOSX_ASCII} -o"
3292 else
3293     if test "$wxUSE_PM" = 1; then
3294         MACRESCOMP="emxbind -ep"
3295     fi
3296 fi
3297
3298 dnl ---------------------------------------------------------------------------
3299 dnl Checks for typedefs
3300 dnl ---------------------------------------------------------------------------
3301
3302 dnl   defines mode_t if not already defined
3303 AC_TYPE_MODE_T
3304 dnl   defines off_t if not already defined
3305 AC_TYPE_OFF_T
3306 dnl   defines pid_t if not already defined
3307 AC_TYPE_PID_T
3308 dnl   defines size_t if not already defined
3309 AC_TYPE_SIZE_T
3310 dnl   defines uid_t and gid_t if not already defined
3311 AC_TYPE_UID_T
3312
3313 dnl check what exactly size_t is on this machine - this is necessary to avoid
3314 dnl ambiguous overloads in several places, notably wx/string.h and wx/array.h
3315 AC_LANG_SAVE
3316 AC_LANG_CPLUSPLUS
3317 AC_CACHE_CHECK([if size_t is unsigned int],
3318     wx_cv_size_t_is_uint,
3319     [
3320     dnl an obvious check like AC_TRY_COMPILE[struct Foo { ... };] doesn't work
3321     dnl with egcs (at least) up to 1.1.1 as it allows you to compile duplicate
3322     dnl methods in a local class (i.e. class inside a function) declaration
3323     dnl without any objections!!
3324     dnl
3325     dnl hence the hack below: we must have Foo at global scope!
3326     AC_TRY_COMPILE([#include <stddef.h>],
3327         [
3328             return 0; }
3329
3330             struct Foo { void foo(size_t); void foo(unsigned int); };
3331
3332             int bar() {
3333         ],
3334         wx_cv_size_t_is_uint=no,
3335         wx_cv_size_t_is_uint=yes
3336     )
3337     ]
3338 )
3339
3340 if test "$wx_cv_size_t_is_uint" = "yes"; then
3341     AC_DEFINE(wxSIZE_T_IS_UINT)
3342 else
3343     AC_CACHE_CHECK([if size_t is unsigned long],
3344         wx_cv_size_t_is_ulong,
3345         AC_TRY_COMPILE([#include <stddef.h>],
3346             [
3347                 return 0; }
3348
3349                 struct Foo { void foo(size_t); void foo(unsigned long); };
3350
3351                 int bar() {
3352             ],
3353             wx_cv_size_t_is_ulong=no,
3354             wx_cv_size_t_is_ulong=yes
3355         )
3356     )
3357
3358     if test "$wx_cv_size_t_is_ulong" = "yes"; then
3359         AC_DEFINE(wxSIZE_T_IS_ULONG)
3360     fi
3361 fi
3362
3363 AC_LANG_RESTORE
3364
3365 dnl ---------------------------------------------------------------------------
3366 dnl Checks for structures
3367 dnl ---------------------------------------------------------------------------
3368
3369 dnl does passwd struct has the pw_gecos field?
3370 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
3371     [
3372         AC_TRY_COMPILE([#include <pwd.h>],
3373              [
3374                 char *p;
3375                 struct passwd *pw;
3376                 p = pw->pw_gecos;
3377              ],
3378              [
3379                 wx_cv_struct_pw_gecos=yes
3380              ],
3381              [
3382                 wx_cv_struct_pw_gecos=no
3383              ]
3384         )
3385     ]
3386 )
3387
3388 if test "$wx_cv_struct_pw_gecos" = "yes"; then
3389     AC_DEFINE(HAVE_PW_GECOS)
3390 fi
3391
3392 dnl ---------------------------------------------------------------------------
3393 dnl Check for functions
3394 dnl ---------------------------------------------------------------------------
3395
3396 dnl don't check for wchar_t functions if we haven't got wchar_t itself
3397 if test "$wx_cv_sizeof_wchar_t" != "0"; then
3398     AC_DEFINE(wxUSE_WCHAR_T)
3399
3400     dnl check for wcslen in all possible places
3401     WCSLEN_FOUND=0
3402     WCHAR_LINK=
3403     AC_CHECK_FUNCS(wcslen, WCSLEN_FOUND=1)
3404
3405     if test "$WCSLEN_FOUND" = 0; then
3406         if test "$TOOLKIT" = "MSW"; then
3407             AC_CHECK_LIB(msvcrt, wcslen, WCHAR_OK=1)
3408         else
3409             AC_CHECK_LIB(w, wcslen, [
3410                             WCHAR_LINK=" -lw"
3411                             WCSLEN_FOUND=1
3412                         ])
3413         fi
3414     fi
3415
3416     if test "$WCSLEN_FOUND" = 1; then
3417         AC_DEFINE(HAVE_WCSLEN)
3418     fi
3419
3420     dnl try to use wcsrtombs instead of wcstombs which is buggy in old GNU
3421     dnl libc versions if possible
3422     AC_CHECK_FUNCS(wcsrtombs)
3423 else
3424     AC_MSG_WARN([Wide character support is unavailable])
3425 fi
3426
3427 dnl *printf() functions sometimes are available in the library but not
3428 dnl prototyped -- if this is the case, we can't use them from C++ code, but to
3429 dnl detect this we have to use C++ compiler for testing
3430 AC_LANG_SAVE
3431 AC_LANG_CPLUSPLUS
3432
3433 dnl check for vsnprintf() -- a safe version of vsprintf())
3434 dnl
3435 dnl the trouble here is that on some systems (notable HP-UX) this function is
3436 dnl present in libc but not in the system headers and so AC_CHECK_FUNCS (which,
3437 dnl stupidly, provides a dummy function declaration inside its extension)
3438 dnl succeeds, even with C++ compiler, but the compilation of wxWindows fails
3439 dnl
3440 dnl so we first check if the function is in the library
3441 AC_CHECK_FUNCS(vsnprintf)
3442
3443 if test "$ac_cv_func_vsnprintf" = "yes"; then
3444     dnl yes it is -- now check if it is in the headers
3445     AC_CACHE_CHECK([for vsnprintf declaration], wx_cv_func_vsnprintf_decl,
3446         [
3447             AC_TRY_COMPILE(
3448                 [
3449                     #include <stdio.h>
3450                     #include <stdarg.h>
3451                 ],
3452                 [
3453                     char *buf;
3454                     va_list ap;
3455                     vsnprintf(buf, 10u, "%s", ap);
3456                 ],
3457                 wx_cv_func_vsnprintf_decl=yes,
3458                 wx_cv_func_vsnprintf_decl=no
3459             )
3460         ]
3461     )
3462
3463     if test "$wx_cv_func_vsnprintf_decl" = "yes"; then
3464         AC_DEFINE(HAVE_VSNPRINTF_DECL)
3465     fi
3466 fi
3467
3468 if test "$wxUSE_UNICODE" = yes; then
3469     dnl also look if we have wide char IO functions
3470     AC_CHECK_FUNCS(fputwc wprintf vswprintf)
3471
3472     dnl MinGW has a vswprintf with a different prototype, and
3473     dnl a _vsnwprintf with the correct prototype, but AC_CHECK_FUNCS
3474     dnl finds it even if it is not declared in some versions...
3475     AC_MSG_CHECKING([for _vsnwprintf])
3476     AC_TRY_COMPILE([#include <wchar.h>],
3477                    [&_vsnwprintf;],
3478                    [AC_MSG_RESULT([yes])
3479                     AC_DEFINE(HAVE__VSNWPRINTF)],
3480                    [AC_MSG_RESULT([no])]);
3481 fi
3482
3483 AC_LANG_RESTORE
3484
3485
3486
3487 dnl the following tests are for Unix(like) systems only
3488 if test "$TOOLKIT" != "MSW"; then
3489
3490 dnl check for available version of iconv()
3491
3492 AC_LANG_SAVE
3493 AC_LANG_CPLUSPLUS
3494 AM_ICONV
3495 LIBS="$LIBICONV $LIBS"
3496 AC_LANG_RESTORE
3497
3498 dnl check for POSIX signals if we need them
3499 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
3500     AC_CHECK_FUNCS(sigaction)
3501
3502     if test "$ac_cv_func_sigaction" = "no"; then
3503         AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
3504         wxUSE_ON_FATAL_EXCEPTION=no
3505     fi
3506
3507     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
3508       AC_LANG_SAVE
3509       AC_LANG_CPLUSPLUS
3510
3511       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
3512       [
3513         AC_TRY_COMPILE([#include <signal.h>],
3514                      [
3515                         extern void testSigHandler(int);
3516
3517                         struct sigaction sa;
3518                         sa.sa_handler = testSigHandler;
3519                      ], [
3520                         wx_cv_type_sa_handler=int
3521                      ], [
3522                         wx_cv_type_sa_handler=void
3523                      ])
3524       ])
3525
3526       AC_LANG_RESTORE
3527
3528       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
3529     fi
3530 fi
3531
3532 dnl check for the function for temp files creation
3533 AC_CHECK_FUNCS(mkstemp mktemp, break)
3534
3535 dnl get the library function to use for wxGetDiskSpace(): it is statfs() under
3536 dnl Linux and *BSD and statvfs() under Solaris
3537 AC_CACHE_CHECK(for statfs, wx_cv_func_statfs,
3538     AC_TRY_COMPILE(
3539         [
3540              #if defined(__BSD__)
3541                #include <sys/param.h>
3542                #include <sys/mount.h>
3543              #else
3544                #include <sys/vfs.h>
3545              #endif
3546         ],
3547         [
3548              long l;
3549              struct statfs fs;
3550              statfs("/", &fs);
3551              l = fs.f_bsize;
3552              l += fs.f_blocks;
3553              l += fs.f_bavail;
3554         ],
3555         [
3556              wx_cv_func_statfs=yes
3557         ],
3558         [
3559              wx_cv_func_statfs=no
3560         ]
3561     )
3562 )
3563
3564 if test "$wx_cv_func_statfs" = "yes"; then
3565     wx_cv_type_statvfs_t="struct statfs"
3566     AC_DEFINE(HAVE_STATFS)
3567 else
3568     AC_CACHE_CHECK(for statvfs, wx_cv_func_statvfs,
3569         AC_TRY_COMPILE(
3570             [
3571                 #include <stddef.h>
3572                 #include <sys/statvfs.h>
3573             ],
3574             [
3575                 statvfs("/", NULL);
3576             ],
3577             wx_cv_func_statvfs=yes,
3578             wx_cv_func_statvfs=no
3579         )
3580     )
3581
3582     if test "$wx_cv_func_statvfs" = "yes"; then
3583         dnl we also have to check whether we should use statvfs_t (works under
3584         dnl Solaris 8, doesn't work under Solaris 7) or "struct statvfs" (vice
3585         dnl versa) as the argument for statvfs in 64 bit off_t mode (in 32 bit
3586         dnl mode both work fine)
3587         dnl
3588         dnl for this check C++ compiler has to be used as passing incompatible
3589         dnl pointers is just a warning and not an error in C
3590         AC_LANG_SAVE
3591         AC_LANG_CPLUSPLUS
3592
3593         AC_CACHE_CHECK(for statvfs argument type, wx_cv_type_statvfs_t,
3594             AC_TRY_COMPILE(
3595                 [
3596                     #include <sys/statvfs.h>
3597                 ],
3598                 [
3599                     long l;
3600                     statvfs_t fs;
3601                     statvfs("/", &fs);
3602                     l = fs.f_bsize;
3603                     l += fs.f_blocks;
3604                     l += fs.f_bavail;
3605                 ],
3606                 wx_cv_type_statvfs_t=statvfs_t,
3607                 [
3608                     AC_TRY_COMPILE(
3609                         [
3610                             #include <sys/statvfs.h>
3611                         ],
3612                         [
3613                             long l;
3614                             struct statvfs fs;
3615                             statvfs("/", &fs);
3616                             l = fs.f_bsize;
3617                             l += fs.f_blocks;
3618                             l += fs.f_bavail;
3619                         ],
3620                         wx_cv_type_statvfs_t="struct statvfs",
3621                         wx_cv_type_statvfs_t="unknown"
3622                     )
3623                 ]
3624             )
3625         )
3626
3627         AC_LANG_RESTORE
3628
3629         if test "$wx_cv_type_statvfs_t" != "unknown"; then
3630             AC_DEFINE(HAVE_STATVFS)
3631         fi
3632     else
3633         dnl set it for the test below
3634         wx_cv_type_statvfs_t="unknown"
3635     fi
3636 fi
3637
3638 if test "$wx_cv_type_statvfs_t" != "unknown"; then
3639     AC_DEFINE_UNQUOTED(WX_STATFS_T, $wx_cv_type_statvfs_t)
3640 else
3641     AC_MSG_WARN([wxGetDiskSpace() function won't work without statfs()])
3642 fi
3643
3644 dnl check for fcntl() or at least flock() needed by Unix implementation of
3645 dnl wxSingleInstanceChecker
3646 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
3647     AC_CHECK_FUNCS(fcntl flock, break)
3648
3649     if test "$ac_cv_func_fcntl" != "yes" -a "$ac_cv_func_flock" != "yes"; then
3650         AC_MSG_WARN(wxSingleInstanceChecker not available)
3651         wxUSE_SNGLINST_CHECKER=no
3652     fi
3653 fi
3654
3655 dnl check for timegm() used by datetime.cpp
3656 AC_CHECK_FUNCS(timegm)
3657
3658 dnl look for a function to modify the environment
3659 AC_CHECK_FUNCS(putenv setenv, break)
3660
3661 HAVE_SOME_SLEEP_FUNC=0
3662 if test "$USE_BEOS" = 1; then
3663     dnl BeOS has its own (wonder where did they get it from) sleep() function
3664     dnl in unistd.h
3665     AC_DEFINE(HAVE_SLEEP)
3666     HAVE_SOME_SLEEP_FUNC=1
3667 fi
3668
3669 if test "$USE_DARWIN" = 1; then
3670     dnl Mac OS X/Darwin has both nanosleep and usleep
3671     dnl but only usleep is defined in unistd.h
3672     AC_DEFINE(HAVE_USLEEP)
3673     HAVE_SOME_SLEEP_FUNC=1
3674 fi
3675
3676 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
3677     dnl try nanosleep() in libc and libposix4, if this fails - usleep()
3678     POSIX4_LINK=
3679     AC_CHECK_FUNCS(nanosleep,
3680         AC_DEFINE(HAVE_NANOSLEEP),
3681         [
3682             AC_CHECK_LIB(posix4, nanosleep,
3683                 [
3684                     AC_DEFINE(HAVE_NANOSLEEP)
3685                     POSIX4_LINK=" -lposix4"
3686                 ],
3687                 [
3688                     AC_CHECK_FUNCS(usleep,
3689                         AC_DEFINE(HAVE_USLEEP),
3690                         AC_MSG_WARN([wxSleep() function will not work])
3691                     )
3692                 ]
3693             )
3694         ]
3695     )
3696 fi
3697
3698 dnl check for uname (POSIX) and gethostname (BSD)
3699 AC_CHECK_FUNCS(uname gethostname, break)
3700
3701 dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
3702 dnl but not for C++ one - hence change language)
3703 AC_LANG_SAVE
3704 AC_LANG_CPLUSPLUS
3705
3706 AC_CHECK_FUNCS(strtok_r)
3707
3708 AC_LANG_RESTORE
3709
3710 dnl check for inet_addr and inet_aton (these may live either in libc, or in
3711 dnl libnsl or libresolv or libsocket)
3712 INET_LINK=
3713 AC_CHECK_FUNCS(inet_addr,
3714     AC_DEFINE(HAVE_INET_ADDR),
3715     [
3716         AC_CHECK_LIB(nsl, inet_addr,
3717             INET_LINK="nsl",
3718             [
3719                 AC_CHECK_LIB(resolv, inet_addr,
3720                     INET_LINK="resolv",
3721                     [
3722                         AC_CHECK_LIB(socket, inet_addr,
3723                             INET_LINK="socket"
3724                         )
3725                     ]
3726                 )
3727             ]
3728         )
3729     ]
3730 )
3731
3732 AC_CHECK_FUNCS(inet_aton,
3733         AC_DEFINE(HAVE_INET_ATON),
3734         [
3735             dnl only check it in the same lib
3736             AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
3737         ])
3738
3739 if test "x$INET_LINK" != "x"; then
3740     AC_DEFINE(HAVE_INET_ADDR)
3741     INET_LINK=" -l$INET_LINK"
3742 fi
3743
3744 fi
3745 dnl if !MSW
3746
3747
3748 dnl ------------------------------------------
3749 dnl Checks specific to contrib libs (MMedia)
3750 dnl ------------------------------------------
3751
3752 dnl Check for ESD:
3753 EXTRALIBS_ESD=
3754 AC_CHECK_LIB(esd, esd_close, [
3755     AC_CHECK_HEADERS([esd.h], [
3756     EXTRALIBS_ESD="-lesd"
3757   ])
3758 ])
3759 AC_SUBST(EXTRALIBS_ESD)
3760
3761 dnl check for known CD-ROM interface
3762 AC_MSG_CHECKING([for known CD-ROM interface])
3763 AC_TRY_COMPILE([#ifdef __linux__
3764                 #include <linux/cdrom.h>
3765                 #else
3766                 /* For Solaris */
3767                 #include <sys/cdio.h>
3768                 #endif
3769                 ],
3770                [struct cdrom_tocentry entry, old_entry;],
3771                [AC_MSG_RESULT([yes])
3772                 AC_DEFINE(HAVE_KNOWN_CDROM_INTERFACE)],
3773                [AC_MSG_RESULT([no])])
3774
3775 dnl ===========================================================================
3776 dnl Now we have all the info we need - use it!
3777 dnl ===========================================================================
3778
3779 dnl flush the cache
3780 AC_CACHE_SAVE
3781
3782 dnl ---------------------------------------------------------------------------
3783 dnl thread support for Unix (for Win32 and OS/2 see past
3784 dnl                          the next matching "else")
3785 dnl ---------------------------------------------------------------------------
3786
3787 dnl under MSW (except mingw32) we always have thread support
3788 CPP_MT_FLAG=
3789 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
3790
3791     dnl the code below:
3792     dnl
3793     dnl   defines THREADS_LINK and THREADS_CFLAGS which are the options
3794     dnl   necessary to build the MT programs for the linker and compiler
3795     dnl   respectively
3796     dnl
3797     dnl   sets wxUSE_THREADS=1 if thread support is activated
3798
3799     THREADS_LINK=
3800     THREADS_CFLAGS=
3801
3802     if test "$wxUSE_THREADS" = "yes" ; then
3803         if test "$USE_BEOS" = 1; then
3804             AC_MSG_WARN([BeOS threads are not yet supported... disabled])
3805             wxUSE_THREADS="no"
3806         fi
3807     fi
3808
3809     if test "$wxUSE_THREADS" = "yes" ; then
3810         dnl find if POSIX threads are available
3811         dnl
3812         dnl the tests here are based on ACX_PTHREAD macro from autoconf macro
3813         dnl archive from http://ac-archive.sourceforge.net/
3814         dnl
3815         dnl thanks to Steven G. Johnson <stevenj@alum.mit.edu> and Alejandro
3816         dnl Forero Cuervo <bachue@bachue.com> for the original code
3817
3818         dnl TODO: cache the result
3819
3820         dnl define the list of the thread options to try in the loop below
3821         dnl with the convention that anything starting with '-' is a cpp flag
3822         dnl while anything else is a library (i.e. there is an implicit "-l")
3823         THREAD_OPTS="-pthread"
3824         case "${host}" in
3825           *-*-solaris2* | *-*-sunos4* )
3826                 if test "x$GCC" = "xyes"; then
3827                     dnl Solaris/gcc combination use this one for some reason
3828                     THREAD_OPTS="-pthreads $THREAD_OPTS"
3829                 else
3830                     THREAD_OPTS="-mt $THREAD_OPTS"
3831                 fi
3832                 ;;
3833           *-*-freebsd*)
3834                 dnl look, in order, for the kernel threads, then Linux threads
3835                 dnl and finally the userland threads
3836                 THREAD_OPTS="-kthread lthread $THREAD_OPTS c_r"
3837                 ;;
3838           *-*-darwin* | *-*-cygwin* )
3839                 dnl Darwin / Mac OS X just uses -lpthread tested below
3840                 dnl and so does Cygwin
3841                 THREAD_OPTS=""
3842                 ;;
3843           *-*-aix*)
3844                 dnl AIX calls the library libpthreads - thanks IBM!
3845                 THREAD_OPTS="pthreads"
3846                 ;;
3847           *-hp-hpux* )
3848                 dnl HP-UX aCC only gives a warning, not an error about
3849                 dnl -pthread but it doesn't work and we have to use -lpthread
3850                 dnl there
3851                 if test "x$GCC" != "xyes"; then
3852                     THREAD_OPTS=""
3853                 fi
3854                 ;;
3855
3856           *-*-irix* )
3857                 dnl gcc under IRIX doesn't seem to like -pthread, but it
3858                 dnl doesn't give an error for it neither, just a warning
3859                 dnl message -- but this is still very annoying
3860                 if test "x$GCC" = "xyes"; then
3861                     THREAD_OPTS=""
3862                 fi
3863                 ;;
3864
3865           *-*-*UnixWare*)
3866                 dnl flying by man pages here: Caldera online docs use this
3867                 if test "x$GCC" != "xyes"; then
3868                     THREAD_OPTS="-Ethread"
3869                 fi
3870                 ;;
3871         esac
3872
3873         dnl simply linking with libpthread should make the test below work but
3874         dnl it's far from certain that the threaded programs compiled without
3875         dnl any special switches actually work, so try it after all the others
3876         THREAD_OPTS="$THREAD_OPTS pthread none"
3877
3878         dnl now test for all possibilities
3879         THREADS_OK=no
3880         for flag in $THREAD_OPTS; do
3881             case $flag in
3882                 none)
3883                     AC_MSG_CHECKING([whether pthreads work without any flags])
3884                     ;;
3885
3886                 -*)
3887                     AC_MSG_CHECKING([whether pthreads work with $flag])
3888                     THREADS_CFLAGS="$flag"
3889                     ;;
3890
3891                 *)
3892                     AC_MSG_CHECKING([for the pthreads library -l$flag])
3893                     THREADS_LINK="-l$flag"
3894                     ;;
3895               esac
3896
3897               save_LIBS="$LIBS"
3898               save_CFLAGS="$CFLAGS"
3899               LIBS="$THREADS_LINK $LIBS"
3900               CFLAGS="$THREADS_CFLAGS $CFLAGS"
3901
3902               AC_TRY_LINK([#include <pthread.h>],
3903                           [pthread_create(0,0,0,0);],
3904                           THREADS_OK=yes)
3905
3906               LIBS="$save_LIBS"
3907               CFLAGS="$save_CFLAGS"
3908
3909               AC_MSG_RESULT($THREADS_OK)
3910               if test "x$THREADS_OK" = "xyes"; then
3911                       break;
3912               fi
3913
3914               THREADS_LINK=""
3915               THREADS_CFLAGS=""
3916       done
3917
3918       if test "x$THREADS_OK" != "xyes"; then
3919           wxUSE_THREADS=no
3920           AC_MSG_WARN([No thread support on this system... disabled])
3921       else
3922           dnl yes, these special compiler flags should be used with the
3923           dnl linker as well
3924           LDFLAGS="$THREADS_CFLAGS $LDFLAGS"
3925           LIBS="$THREADS_LINK $LIBS"
3926
3927           AC_MSG_CHECKING([if more special flags are required for pthreads])
3928           flag=no
3929           case "${host}" in
3930             *-aix*)
3931                 dnl again quoting from
3932                 dnl http://www-1.ibm.com/servers/esdd/articles/gnu.html:
3933                 dnl
3934                 dnl     When compiling and linking with -pthread, the library
3935                 dnl     search path should include -L/usr/lib/threads at the
3936                 dnl     beginning of the path.
3937                 LDFLAGS="-L/usr/lib/threads $LDFLAGS"
3938                 flag="-D_THREAD_SAFE"
3939                 ;;
3940             *-freebsd*)
3941                 flag="-D_THREAD_SAFE"
3942                 ;;
3943             *-hp-hpux* )
3944                 flag="-D_REENTRANT"
3945                 if test "x$GCC" != "xyes"; then
3946                     dnl see http://docs.hp.com/hpux/onlinedocs/2213/threads.htm
3947                     flag="$flag -D_RWSTD_MULTI_THREAD"
3948                 fi
3949                 ;;
3950             *solaris* | alpha*-osf*)
3951                 flag="-D_REENTRANT"
3952                 ;;
3953           esac
3954           AC_MSG_RESULT(${flag})
3955           if test "x$flag" != xno; then
3956               THREADS_CFLAGS="$THREADS_CFLAGS $flag"
3957           fi
3958
3959           if test "x$THREADS_CFLAGS" != "x"; then
3960             dnl don't add these options to CPPFLAGS as cpp might not know them
3961             CFLAGS="$CFLAGS $THREADS_CFLAGS"
3962             CXXFLAGS="$CXXFLAGS $THREADS_CFLAGS"
3963           fi
3964       fi
3965     fi
3966
3967     dnl do other tests only if we are using threads
3968     if test "$wxUSE_THREADS" = "yes" ; then
3969       AC_CHECK_FUNCS(thr_setconcurrency)
3970
3971       AC_CHECK_HEADERS(sched.h)
3972       if test "$ac_cv_header_sched_h" = "yes"; then
3973           AC_CHECK_FUNC(sched_yield,
3974             AC_DEFINE(HAVE_SCHED_YIELD),
3975             [
3976                 AC_CHECK_LIB(posix4,
3977                     sched_yield,
3978                     [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK=" -lposix4"],
3979                     AC_MSG_WARN(wxThread::Yield will not work properly)
3980                 )
3981             ]
3982           )
3983       fi
3984
3985       dnl to be able to set the thread priority, we need to have all of the
3986       dnl following functions:
3987       dnl   1. pthread_attr_getschedpolicy
3988       dnl   2. sched_get_priority_min and sched_get_priority_max
3989       dnl      (this one can be in either libpthread or libposix4 (under Solaris))
3990       dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
3991       HAVE_PRIOR_FUNCS=0
3992       AC_CHECK_FUNC(pthread_attr_getschedpolicy,
3993                      [AC_CHECK_FUNC(pthread_attr_setschedparam,
3994                        [AC_CHECK_FUNC(sched_get_priority_max,
3995                            HAVE_PRIOR_FUNCS=1,
3996                            [AC_CHECK_LIB([posix4], sched_get_priority_max,
3997                              [
3998                                 HAVE_PRIOR_FUNCS=1
3999                                 POSIX4_LINK=" -lposix4"
4000                              ],
4001                            )]
4002                        )]
4003                      )]
4004                    )
4005
4006       if test "$HAVE_PRIOR_FUNCS" = 1; then
4007         AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
4008       else
4009         AC_MSG_WARN(Setting thread priority will not work)
4010       fi
4011
4012       AC_CHECK_FUNC(pthread_cancel,
4013                     AC_DEFINE(HAVE_PTHREAD_CANCEL),
4014                     AC_MSG_WARN([wxThread::Kill() will not work properly]))
4015
4016       AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push,
4017       [
4018         AC_TRY_COMPILE([#include <pthread.h>],
4019                      [
4020                         pthread_cleanup_push(NULL, NULL);
4021                         pthread_cleanup_pop(0);
4022                      ], [
4023                         wx_cv_func_pthread_cleanup_push=yes
4024                      ], [
4025                         wx_cv_func_pthread_cleanup_push=no
4026                      ])
4027       ])
4028
4029       if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then
4030           AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
4031       fi
4032
4033       dnl mutexattr_t initialization is done in quite different ways on different
4034       dnl platforms, so check for a few things:
4035       dnl
4036       dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
4037       dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
4038       dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
4039       dnl defined, we do it by directly assigned
4040       dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
4041
4042       AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
4043       [
4044         AC_TRY_COMPILE([#include <pthread.h>],
4045             [
4046                pthread_mutexattr_t attr;
4047                pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
4048             ], [
4049                wx_cv_type_pthread_mutexattr_t=yes
4050             ], [
4051                wx_cv_type_pthread_mutexattr_t=no
4052             ]
4053         )
4054       ])
4055
4056       if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
4057         AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
4058       else
4059         dnl don't despair, there may be another way to do it
4060         AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
4061                        wx_cv_type_pthread_rec_mutex_init,
4062         [
4063             AC_TRY_COMPILE([#include <pthread.h>],
4064                 [
4065                     pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
4066                 ], [
4067                     wx_cv_type_pthread_rec_mutex_init=yes
4068                 ], [
4069                     wx_cv_type_pthread_rec_mutex_init=no
4070                 ]
4071             )
4072         ])
4073         if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
4074           AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
4075         else
4076           dnl this may break code working elsewhere, so at least warn about it
4077           AC_MSG_WARN([wxMutex won't be recursive on this platform])
4078         fi
4079       fi
4080     fi
4081
4082 dnl from if !MSW
4083 else
4084     if test "$wxUSE_THREADS" = "yes" ; then
4085       case "${host}" in
4086         *-*-mingw32* )
4087             dnl check if the compiler accepts -mthreads
4088             AC_CACHE_CHECK([if compiler supports -mthreads],
4089                 wx_cv_cflags_mthread,
4090                 [
4091                     CFLAGS_OLD="$CFLAGS"
4092                     CFLAGS="$CFLAGS -mthreads"
4093                     AC_TRY_COMPILE([], [],
4094                         wx_cv_cflags_mthread=yes,
4095                         wx_cv_cflags_mthread=no
4096                     )
4097                 ]
4098             )
4099
4100             if test "$wx_cv_cflags_mthread" = "yes"; then
4101                 dnl it does, use it
4102                 CXXFLAGS="$CXXFLAGS -mthreads"
4103                 TOOLCHAIN_DEFS="$TOOLCHAIN_DEFS -mthreads"
4104                 LDFLAGS="$LDFLAGS -mthreads"
4105             else
4106                 dnl it doesn't
4107                 CFLAGS="$CFLAGS_OLD"
4108             fi
4109         ;;
4110         *-pc-os2*emx )
4111             CFLAGS="$CFLAGS -Zmt -D__ST_MT_ERRNO__"
4112             CXXFLAGS="$CXXFLAGS -Zmt -D__ST_MT_ERRNO__"
4113             LDFLAGS="$LDFLAGS -Zmt"
4114         ;;
4115       esac
4116     fi
4117 fi
4118
4119 if test "$wxUSE_THREADS" = "yes"; then
4120   AC_DEFINE(wxUSE_THREADS)
4121
4122   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
4123 else
4124   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
4125   dnl functions - add tests for other functions here as well
4126   if test "$ac_cv_func_strtok_r" = "yes"; then
4127     AC_MSG_CHECKING(if -D_REENTRANT is needed)
4128     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
4129         TOOLCHAIN_DEFS="${TOOLCHAIN_DEFS} -D_REENTRANT"
4130         AC_MSG_RESULT(yes)
4131     else
4132         AC_MSG_RESULT(no)
4133     fi
4134   fi
4135 fi
4136
4137 if test "$WXGTK20" = 1 ; then
4138   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
4139   WXGTK12=1
4140 fi
4141
4142 if test "$WXGTK12" = 1 ; then
4143   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
4144 fi
4145
4146 if test "$WXGTK127" = 1 ; then
4147   AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
4148 fi
4149
4150 WXDEBUG=
4151
4152 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
4153     WXDEBUG="-g"
4154     wxUSE_OPTIMISE=no
4155 fi
4156
4157 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
4158     wxUSE_DEBUG_INFO=yes
4159     WXDEBUG="-ggdb"
4160 fi
4161
4162 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
4163     AC_DEFINE(WXDEBUG)
4164     WXDEBUG_DEFINE="-D__WXDEBUG__"
4165 else
4166     if test "$wxUSE_GTK" = 1 ; then
4167         WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
4168     fi
4169 fi
4170
4171 if test "$wxUSE_MEM_TRACING" = "yes" ; then
4172     AC_DEFINE(wxUSE_MEMORY_TRACING)
4173     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
4174     AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
4175     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
4176 fi
4177
4178 if test "$wxUSE_DMALLOC" = "yes" ; then
4179     DMALLOC_LIBS="-ldmalloc"
4180 fi
4181
4182 PROFILE=
4183 if test "$wxUSE_PROFILE" = "yes" ; then
4184     PROFILE=" -pg"
4185 fi
4186
4187 CODE_GEN_FLAGS=
4188 CODE_GEN_FLAGS_CXX=
4189 if test "$GCC" = "yes" ; then
4190     if test "$wxUSE_NO_RTTI" = "yes" ; then
4191         CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-rtti"
4192     fi
4193     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
4194         CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fno-exceptions"
4195     fi
4196     if test "$wxUSE_PERMISSIVE" = "yes" ; then
4197         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
4198     fi
4199
4200     dnl Ian Brown <ian.brown@printsoft.de> reports that versions of gcc before
4201     dnl 3.0 overflow the table of contents on rs6000 as they create an entry
4202     dnl for each subroutine by default -- using the switch below only creates
4203     dnl one entry per file instead at the price of minor performance penalty
4204     dnl
4205     dnl As of wx2.4 a bug in the hppa gcc compiler causes a similar problem
4206     dnl without -ffunction-sections.  No idea how long we'll need to maintain
4207     dnl this, or even the extent of gcc/wx version combinations affected, but
4208     dnl also as above, this 'fix' does not come without side effects.
4209     dnl
4210     dnl TODO: test for the gcc version here (how?)
4211     case "${host}" in
4212       powerpc*-*-aix* )
4213         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -mminimal-toc"
4214         ;;
4215       *-hppa* )
4216         CODE_GEN_FLAGS="$CODE_GEN_FLAGS -ffunction-sections"
4217         ;;
4218     esac
4219 fi
4220
4221 OPTIMISE=
4222 if test "$wxUSE_OPTIMISE" = "no" ; then
4223     if test "$GCC" = yes ; then
4224         dnl use -O0 because compiling with it is faster than compiling with no
4225         dnl optimization options at all (at least with g++ 3.2)
4226         OPTIMISE="-O0"
4227     fi
4228 else
4229     if test "$GCC" = yes ; then
4230         OPTIMISE="-O2"
4231
4232         dnl VZ: does anybody know what does this do??
4233         case "${host}" in
4234             i586-*-*|i686-*-* )
4235             OPTIMISE="${OPTIMISE} "
4236         ;;
4237         esac
4238     else
4239         OPTIMISE="-O"
4240     fi
4241 fi
4242
4243 dnl ---------------------------------------------------------------------------
4244 dnl compatibility level
4245 dnl ---------------------------------------------------------------------------
4246
4247 if test "x$WXWIN_COMPATIBILITY_2_2" = "xyes"; then
4248     AC_DEFINE(WXWIN_COMPATIBILITY_2_2)
4249
4250     WXWIN_COMPATIBILITY_2_4="yes"
4251 fi
4252
4253 if test "x$WXWIN_COMPATIBILITY_2_4" != "xno"; then
4254     AC_DEFINE(WXWIN_COMPATIBILITY_2_4)
4255 fi
4256
4257 dnl ---------------------------------------------------------------------------
4258 dnl the library may be built without GUI classes at all
4259 dnl ---------------------------------------------------------------------------
4260
4261 if test "$wxUSE_GUI" = "yes"; then
4262   AC_DEFINE(wxUSE_GUI)
4263
4264   dnl the things we always pull in the GUI version of the library:
4265   dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
4266   dnl    library really can't be built without those)
4267   dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
4268   dnl    almost any program and the first 2 are needed to show a message box
4269   dnl    which want to be always able to do)
4270   dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
4271   dnl    to compile without them (if the app doesn't do any drawing, it doesn't
4272   dnl    need the dcs, pens, brushes, ...), this just can't be done now
4273   dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
4274   dnl 5. misc stuff: timers, settings, message box
4275 else
4276   AC_DEFINE(wxUSE_NOGUI)
4277 fi
4278
4279 dnl ---------------------------------------------------------------------------
4280 dnl Unix/Windows
4281 dnl ---------------------------------------------------------------------------
4282
4283 if test "$wxUSE_UNIX" = "yes"; then
4284   AC_DEFINE(wxUSE_UNIX)
4285 fi
4286
4287 dnl ---------------------------------------------------------------------------
4288 dnl Register non-GUI class options for makefiles and setup.h
4289 dnl ---------------------------------------------------------------------------
4290
4291 if test "$wxUSE_STL" = "yes"; then
4292   AC_DEFINE(wxUSE_STL)
4293 fi
4294
4295 if test "$wxUSE_APPLE_IEEE" = "yes"; then
4296   AC_DEFINE(wxUSE_APPLE_IEEE)
4297 fi
4298
4299 if test "$wxUSE_TIMER" = "yes"; then
4300   AC_DEFINE(wxUSE_TIMER)
4301 fi
4302
4303 if test "$wxUSE_WAVE" = "yes"; then
4304   AC_DEFINE(wxUSE_WAVE)
4305 fi
4306
4307 if test "$wxUSE_CMDLINE_PARSER" = "yes"; then
4308   AC_DEFINE(wxUSE_CMDLINE_PARSER)
4309 fi
4310
4311 if test "$wxUSE_STOPWATCH" = "yes"; then
4312   AC_DEFINE(wxUSE_STOPWATCH)
4313 fi
4314
4315 if test "$wxUSE_DATETIME" = "yes"; then
4316   AC_DEFINE(wxUSE_DATETIME)
4317 fi
4318
4319 if test "$wxUSE_FILE" = "yes"; then
4320   AC_DEFINE(wxUSE_FILE)
4321 fi
4322
4323 if test "$wxUSE_FFILE" = "yes"; then
4324   AC_DEFINE(wxUSE_FFILE)
4325 fi
4326
4327 if test "$wxUSE_FILESYSTEM" = "yes"; then
4328   AC_DEFINE(wxUSE_FILESYSTEM)
4329 fi
4330
4331 if test "$wxUSE_FS_ZIP" = "yes"; then
4332   AC_DEFINE(wxUSE_FS_ZIP)
4333 fi
4334
4335 if test "$wxUSE_ZIPSTREAM" = "yes"; then
4336   AC_DEFINE(wxUSE_ZIPSTREAM)
4337 fi
4338
4339 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
4340   AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
4341 fi
4342
4343 if test "$wxUSE_SNGLINST_CHECKER" = "yes"; then
4344   AC_DEFINE(wxUSE_SNGLINST_CHECKER)
4345 fi
4346
4347 if test "$wxUSE_BUSYINFO" = "yes"; then
4348   AC_DEFINE(wxUSE_BUSYINFO)
4349 fi
4350
4351 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
4352   AC_DEFINE(wxUSE_STD_IOSTREAM)
4353 fi
4354
4355 if test "$wxUSE_TEXTBUFFER" = "yes"; then
4356     AC_DEFINE(wxUSE_TEXTBUFFER)
4357 fi
4358
4359 if test "$wxUSE_TEXTFILE" = "yes"; then
4360   if test "$wxUSE_FILE" != "yes" -o "$wxUSE_TEXTBUFFER" != "yes" ; then
4361     AC_MSG_WARN(wxTextFile requires wxFile and wxTextBuffer... disabled)
4362   else
4363     AC_DEFINE(wxUSE_TEXTFILE)
4364   fi
4365 fi
4366
4367 if test "$wxUSE_CONFIG" = "yes" ; then
4368   if test "$wxUSE_TEXTFILE" != "yes"; then
4369     AC_MSG_WARN(wxConfig requires wxTextFile... disabled)
4370   else
4371     AC_DEFINE(wxUSE_CONFIG)
4372     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
4373   fi
4374 fi
4375
4376 if test "$wxUSE_INTL" = "yes" ; then
4377   if test "$wxUSE_FILE" != "yes"; then
4378     AC_MSG_WARN(I18n code requires wxFile... disabled)
4379   else
4380     AC_DEFINE(wxUSE_INTL)
4381     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
4382     GUIDIST="$GUIDIST INTL_DIST"
4383   fi
4384 fi
4385
4386 if test "$wxUSE_LOG" = "yes"; then
4387   AC_DEFINE(wxUSE_LOG)
4388
4389     if test "$wxUSE_LOGGUI" = "yes"; then
4390       AC_DEFINE(wxUSE_LOGGUI)
4391     fi
4392
4393     if test "$wxUSE_LOGWINDOW" = "yes"; then
4394       AC_DEFINE(wxUSE_LOGWINDOW)
4395     fi
4396
4397     if test "$wxUSE_LOGDIALOG" = "yes"; then
4398       AC_DEFINE(wxUSE_LOG_DIALOG)
4399     fi
4400 fi
4401
4402 if test "$wxUSE_LONGLONG" = "yes"; then
4403   AC_DEFINE(wxUSE_LONGLONG)
4404 fi
4405
4406 if test "$wxUSE_GEOMETRY" = "yes"; then
4407   AC_DEFINE(wxUSE_GEOMETRY)
4408 fi
4409
4410 if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
4411   AC_DEFINE(wxUSE_DIALUP_MANAGER)
4412   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
4413 fi
4414
4415 if test "$wxUSE_STREAMS" = "yes" ; then
4416   AC_DEFINE(wxUSE_STREAMS)
4417 fi
4418
4419 dnl ---------------------------------------------------------------------------
4420 dnl time/date functions
4421 dnl ------------------------------------------------------------------------
4422
4423 if test "$wxUSE_DATETIME" = "yes"; then
4424     dnl check for strptime
4425     AC_CHECK_FUNCS(strptime)
4426
4427     dnl check for timezone variable
4428     dnl   doesn't exist under Darwin / Mac OS X which uses tm_gmtoff instead
4429     AC_CACHE_CHECK(for timezone variable in <time.h>,
4430                    wx_cv_var_timezone,
4431                    [
4432                         AC_TRY_COMPILE(
4433                             [
4434                                 #include <time.h>
4435                             ],
4436                             [
4437                                 int tz;
4438                                 tz = timezone;
4439                             ],
4440                             [
4441                                 wx_cv_var_timezone=timezone
4442                             ],
4443                             [
4444                                 AC_TRY_COMPILE(
4445                                     [
4446                                         #include <time.h>
4447                                     ],
4448                                     [
4449                                         int tz;
4450                                         tz = _timezone;
4451                                     ],
4452                                     [
4453                                         wx_cv_var_timezone=_timezone
4454                                     ],
4455                                     [
4456                                         AC_TRY_COMPILE(
4457                                             [
4458                                                 #include <time.h>
4459                                             ],
4460                                             [
4461                                                 int tz;
4462                                                 tz = __timezone;
4463                                             ],
4464                                             [
4465                                                 wx_cv_var_timezone=__timezone
4466                                             ],
4467                                             [
4468                                                 if test "$USE_DOS" = 0 ; then
4469                                                     AC_MSG_WARN(no timezone variable, will use tm_gmtoff instead)
4470                                                 fi
4471                                             ]
4472                                         )
4473                                     ]
4474                                 )
4475                             ]
4476                         )
4477                    ]
4478     )
4479
4480     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
4481     if test "x$wx_cv_var_timezone" != x ; then
4482         AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
4483     fi
4484
4485     dnl check for localtime (it's POSIX, but the check can do no harm...)
4486     AC_CHECK_FUNCS(localtime)
4487
4488     if test "$ac_cv_func_localtime" = "yes"; then
4489         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
4490                        wx_cv_struct_tm_has_gmtoff,
4491         [
4492             AC_TRY_COMPILE(
4493                 [
4494                     #include <time.h>
4495                 ],
4496                 [
4497                     struct tm tm;
4498                     tm.tm_gmtoff++;
4499                 ],
4500                 [
4501                     wx_cv_struct_tm_has_gmtoff=yes
4502                 ],
4503                 wx_cv_struct_tm_has_gmtoff=no
4504             )
4505         ])
4506     fi
4507
4508     if test "$wx_cv_struct_tm_has_gmtoff" = "yes"; then
4509         AC_DEFINE(WX_GMTOFF_IN_TM)
4510     fi
4511
4512     dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
4513     dnl function to be used for high resolution timers
4514     AC_CHECK_FUNCS(gettimeofday ftime, break)
4515
4516     if test "$ac_cv_func_gettimeofday" = "yes"; then
4517         AC_CACHE_CHECK([whether gettimeofday takes two arguments],
4518                        wx_cv_func_gettimeofday_has_2_args,
4519         [
4520             dnl on some _really_ old systems it takes only 1 argument
4521             AC_LANG_SAVE
4522             AC_LANG_CPLUSPLUS
4523
4524             AC_TRY_COMPILE(
4525                 [
4526                     #include <sys/time.h>
4527                     #include <unistd.h>
4528                 ],
4529                 [
4530                     struct timeval tv;
4531                     gettimeofday(&tv, NULL);
4532                 ],
4533                 wx_cv_func_gettimeofday_has_2_args=yes,
4534                 AC_TRY_COMPILE(
4535                     [
4536                         #include <sys/time.h>
4537                         #include <unistd.h>
4538                     ],
4539                     [
4540                         struct timeval tv;
4541                         gettimeofday(&tv);
4542                     ],
4543                     wx_cv_func_gettimeofday_has_2_args=no,
4544                     [
4545                         AC_MSG_WARN([failed to determine number of gettimeofday() arguments])
4546                         wx_cv_func_gettimeofday_has_2_args=unknown
4547                     ]
4548                 )
4549             )
4550             AC_LANG_RESTORE
4551         ])
4552
4553         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
4554             AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
4555         fi
4556     fi
4557
4558     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
4559 fi
4560
4561 dnl ------------------------------------------------------------------------
4562 dnl wxSocket
4563 dnl ------------------------------------------------------------------------
4564
4565 dnl VZ: the GUI hooks wxSocket needs are not implemented yet in some toolkits
4566 if test "$wxUSE_SOCKETS" = "yes"; then
4567     if test "$wxUSE_MGL" = "1"; then
4568         AC_MSG_WARN([wxSocket not yet supported under MGL... disabled])
4569         wxUSE_SOCKETS="no"
4570     fi
4571     if test "$wxUSE_COCOA" = "1"; then
4572         AC_MSG_WARN([wxSocket not yet supported under Cocoa... disabled])
4573         wxUSE_SOCKETS="no"
4574     fi
4575 fi
4576
4577 if test "$wxUSE_SOCKETS" = "yes"; then
4578     dnl under MSW we always have sockets
4579     if test "$TOOLKIT" != "MSW"; then
4580         dnl under Solaris and OS/2, socket functions live in -lsocket
4581         AC_CHECK_FUNC(socket,,
4582             [
4583                 AC_CHECK_LIB(socket, socket,
4584                     if test "$INET_LINK" != " -lsocket"; then
4585                         INET_LINK="$INET_LINK -lsocket"
4586                     fi,
4587                     [
4588                         AC_MSG_WARN([socket library not found - sockets will be disabled])
4589                         wxUSE_SOCKETS=no
4590                     ]
4591                 )
4592             ]
4593         )
4594     fi
4595 fi
4596
4597 if test "$wxUSE_SOCKETS" = "yes" ; then
4598     dnl this test may be appropriate if building under cygwin
4599     dnl right now I'm assuming it also uses the winsock stuff
4600     dnl like mingw does..  -- RL
4601     if test "$TOOLKIT" != "MSW"; then
4602         dnl determine the type of third argument for getsockname
4603         AC_CACHE_CHECK([what is the type of the third argument of getsockname],
4604                        wx_cv_type_getsockname3,
4605             [
4606                 AC_TRY_COMPILE(
4607                     [
4608                         #include <sys/types.h>
4609                         #include <sys/socket.h>
4610                     ],
4611                     [
4612                         socklen_t len;
4613                         getsockname(0, 0, &len);
4614                     ],
4615                     wx_cv_type_getsockname3=socklen_t,
4616                     [
4617                         dnl the compiler will compile the version with size_t
4618                         dnl even if the real type of the last parameter is int
4619                         dnl but it should give at least a warning about
4620                         dnl converting between incompatible pointer types, so
4621                         dnl try to use it to get the correct behaviour at
4622                         dnl least with gcc (otherwise we'd always use size_t)
4623                         CFLAGS_OLD="$CFLAGS"
4624                         if test "$GCC" = yes ; then
4625                             CFLAGS="$CFLAGS -Werror"
4626                         fi
4627
4628                         AC_TRY_COMPILE(
4629                             [
4630                                 #include <sys/types.h>
4631                                 #include <sys/socket.h>
4632                             ],
4633                             [
4634                                 size_t len;
4635                                 getsockname(0, 0, &len);
4636                             ],
4637                             wx_cv_type_getsockname3=size_t,
4638                             AC_TRY_COMPILE(
4639                                 [
4640                                     #include <sys/types.h>
4641                                     #include <sys/socket.h>
4642                                 ],
4643                                 [
4644                                     int len;
4645                                     getsockname(0, 0, &len);
4646                                 ],
4647                                 wx_cv_type_getsockname3=int,
4648                                 wx_cv_type_getsockname3=unknown
4649                             )
4650                         )
4651
4652                         CFLAGS="$CFLAGS_OLD"
4653                     ]
4654                 )
4655             ])
4656
4657         if test "$wx_cv_type_getsockname3" = "unknown"; then
4658             wxUSE_SOCKETS=no
4659             AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
4660         else
4661             AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
4662         fi
4663     fi
4664 fi
4665
4666 if test "$wxUSE_SOCKETS" = "yes" ; then
4667     AC_DEFINE(wxUSE_SOCKETS)
4668     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
4669 fi
4670
4671 if test "$wxUSE_PROTOCOL" = "yes"; then
4672     if test "$wxUSE_SOCKETS" != "yes"; then
4673         AC_MSG_WARN(Protocol classes require sockets... disabled)
4674         wxUSE_PROTOCOL=no
4675     fi
4676 fi
4677
4678 if test "$wxUSE_PROTOCOL" = "yes"; then
4679     AC_DEFINE(wxUSE_PROTOCOL)
4680
4681     if test "$wxUSE_PROTOCOL_HTTP" = "yes"; then
4682         AC_DEFINE(wxUSE_PROTOCOL_HTTP)
4683     fi
4684     if test "$wxUSE_PROTOCOL_FTP" = "yes"; then
4685         AC_DEFINE(wxUSE_PROTOCOL_FTP)
4686     fi
4687     if test "$wxUSE_PROTOCOL_FILE" = "yes"; then
4688         AC_DEFINE(wxUSE_PROTOCOL_FILE)
4689     fi
4690 else
4691     if test "$wxUSE_FS_INET" = "yes"; then
4692         AC_MSG_WARN([HTTP filesystem require protocol classes... disabled])   
4693         wxUSE_FS_INET="no"
4694     fi
4695 fi
4696
4697 if test "$wxUSE_URL" = "yes"; then
4698     if test "$wxUSE_PROTOCOL" != "yes"; then
4699         AC_MSG_WARN(wxURL class requires wxProtocol... disabled)
4700         wxUSE_URL=no
4701     fi
4702     if test "$wxUSE_URL" = "yes"; then
4703         AC_DEFINE(wxUSE_URL)
4704     fi
4705 fi
4706
4707 if test "$wxUSE_FS_INET" = "yes"; then
4708   AC_DEFINE(wxUSE_FS_INET)
4709 fi
4710
4711 dnl ---------------------------------------------------------------------------
4712 dnl Joystick support
4713 dnl ---------------------------------------------------------------------------
4714
4715 if test "$wxUSE_GUI" = "yes"; then
4716
4717     if test "$TOOLKIT" = "MAC" -o "$TOOLKIT" = "COCOA"; then
4718         AC_MSG_WARN([Joystick not yet supported under Mac OS X... disabled])
4719         wxUSE_JOYSTICK=no
4720      fi
4721     
4722      dnl under MSW we always have joystick support
4723     if test "$TOOLKIT" != "MSW"; then
4724         if test "$wxUSE_JOYSTICK" = "yes"; then
4725             dnl joystick support is only for Linux 2.1.x or greater
4726             AC_CHECK_HEADERS(linux/joystick.h)
4727             if test "$ac_cv_header_linux_joystick_h" != "yes"; then
4728                 wxUSE_JOYSTICK=no
4729                 AC_MSG_WARN(Joystick not supported by this system... disabled)
4730             fi
4731         fi
4732     fi
4733
4734     if test "$wxUSE_JOYSTICK" = "yes"; then
4735         AC_DEFINE(wxUSE_JOYSTICK)
4736         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
4737     fi
4738 fi
4739
4740 dnl ------------------------------------------------------------------------
4741 dnl DLL support
4742 dnl ------------------------------------------------------------------------
4743
4744 dnl under MSW we always have LoadLibrary/GetProcAddress
4745 if test "$TOOLKIT" != "MSW" -a "$USE_OS2" != 1; then
4746
4747     HAVE_DL_FUNCS=0
4748     HAVE_SHL_FUNCS=0
4749     if test "$wxUSE_DYNAMIC_LOADER" = "yes" -o "$wxUSE_DYNLIB_CLASS" = "yes" ; then
4750         if test "$USE_DARWIN" = 1; then
4751             dnl dlopen/dlerror is implemented in dynlib.cpp for Darwin/Mac OS X
4752             HAVE_DL_FUNCS=1
4753         else
4754             dnl the test is a bit complicated because we check for dlopen() both with
4755             dnl and without -ldl and we also try to find shl_load() if there is no
4756             dnl dlopen() on this system
4757             AC_CHECK_FUNCS(dlopen,
4758             [
4759                 AC_DEFINE(HAVE_DLOPEN)
4760                 HAVE_DL_FUNCS=1
4761             ],
4762             [
4763                 AC_CHECK_LIB(dl, dlopen,
4764                             [
4765                                 AC_DEFINE(HAVE_DLOPEN)
4766                                 HAVE_DL_FUNCS=1
4767                                 DL_LINK=" -ldl$DL_LINK"
4768                             ],
4769                             [
4770                                 AC_CHECK_FUNCS(shl_load,
4771                                               [
4772                                                 AC_DEFINE(HAVE_SHL_LOAD)
4773                                                 HAVE_SHL_FUNCS=1
4774                                               ],
4775                                               [
4776                                                 AC_CHECK_LIB(shl_load, dld,
4777                                                              [
4778                                                                 HAVE_SHL_FUNCS=1
4779                                                                 DL_LINK=" -ldld$DL_LINK"
4780                                                              ])
4781                                               ])
4782                             ])
4783             ])
4784
4785         dnl check also for dlerror()
4786         if test "$HAVE_DL_FUNCS" = 1; then
4787             AC_CHECK_FUNCS(dlerror,
4788                 AC_DEFINE(HAVE_DLERROR),
4789                 [
4790                     AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR))
4791                 ]
4792             )
4793         fi
4794         fi
4795
4796         if test "$HAVE_DL_FUNCS" = 0; then
4797             if test "$HAVE_SHL_FUNCS" = 0; then
4798               if test "$USE_UNIX" = 1; then
4799                   AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
4800                   wxUSE_DYNAMIC_LOADER=no
4801                   wxUSE_DYNLIB_CLASS=no
4802               else
4803                   AC_MSG_WARN([Assuming wxLibrary class works on this platform])
4804               fi
4805             fi
4806         fi
4807     fi
4808 fi
4809
4810 if test "$wxUSE_DYNAMIC_LOADER" = "yes" ; then
4811     AC_DEFINE(wxUSE_DYNAMIC_LOADER)
4812 fi
4813 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
4814     AC_DEFINE(wxUSE_DYNLIB_CLASS)
4815 fi
4816
4817 dnl ---------------------------------------------------------------------------
4818 dnl String stuff
4819 dnl ---------------------------------------------------------------------------
4820
4821 if test "$wxUSE_FONTMAP" = "yes" ; then
4822   AC_DEFINE(wxUSE_FONTMAP)
4823 fi
4824
4825 if test "$wxUSE_UNICODE" = "yes" ; then
4826   AC_DEFINE(wxUSE_UNICODE)
4827
4828   if test "$USE_WIN32" != 1; then
4829       wxUSE_UNICODE_MSLU=no
4830   fi
4831
4832   if test "$USE_WIN32" = 1 -a "$wxUSE_UNICODE_MSLU" = "yes"; then
4833         AC_CHECK_LIB(unicows,main,
4834             [
4835                 AC_DEFINE(wxUSE_UNICODE_MSLU)
4836             ],
4837             [
4838                 AC_MSG_WARN([Compiler doesn't support MSLU (libunicows.a), disabled.
4839                              Applications will only run on Windows NT/2000/XP!])
4840                 wxUSE_UNICODE_MSLU=no
4841             ])
4842     fi
4843 fi
4844
4845 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
4846   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
4847 fi
4848
4849 dnl ----------------------------------------------------------------
4850 dnl Register PostScript options for makefiles and setup.h
4851 dnl ----------------------------------------------------------------
4852
4853 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
4854   AC_DEFINE(wxUSE_POSTSCRIPT)
4855 fi
4856
4857 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
4858
4859 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
4860
4861 dnl ---------------------------------------------------------------------------
4862 dnl big GUI components: MDI, doc/view, printing, help, ...
4863 dnl ---------------------------------------------------------------------------
4864
4865 if test "$wxUSE_CONSTRAINTS" = "yes"; then
4866     AC_DEFINE(wxUSE_CONSTRAINTS)
4867     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
4868 fi
4869
4870 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
4871    AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
4872    SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
4873 fi
4874
4875 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
4876     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
4877     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
4878     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
4879         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
4880     fi
4881 fi
4882
4883 if test "$wxUSE_HELP" = "yes"; then
4884     AC_DEFINE(wxUSE_HELP)
4885     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
4886
4887     if test "$wxUSE_MSW" = 1; then
4888       if test "$wxUSE_MS_HTML_HELP" = "yes"; then
4889         AC_DEFINE(wxUSE_MS_HTML_HELP)
4890       fi
4891     fi
4892
4893     if test "$wxUSE_WXHTML_HELP" = "yes"; then
4894       if test "$wxUSE_HTML" = "yes"; then
4895         AC_DEFINE(wxUSE_WXHTML_HELP)
4896       else
4897         AC_MSG_WARN(Cannot use wxHTML-based help without wxHTML so it won't be compiled)
4898         wxUSE_WXHTML_HELP=no
4899       fi
4900     fi
4901 fi
4902
4903 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
4904     if test "$wxUSE_CONSTRAINTS" != "yes"; then
4905         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
4906     else
4907         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
4908     fi
4909     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
4910 fi
4911
4912 if test "$wxUSE_PROLOGIO" = "yes" -o  "$wxUSE_RESOURCES" = "yes"; then
4913     AC_MSG_ERROR([wxExpr and old-style resources are now available in contrib only])
4914 fi
4915
4916 dnl ---------------------------------------------------------------------------
4917 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
4918 dnl ---------------------------------------------------------------------------
4919
4920 dnl check for ole headers and disable a few features requiring it if not
4921 dnl present (earlier versions of mingw32 don't have ole2.h)
4922 if test "$wxUSE_MSW" = 1 -a \( "$wxUSE_DATAOBJ"       = "yes" \
4923                           -o "$wxUSE_CLIPBOARD"     = "yes" \
4924                           -o "$wxUSE_OLE"     = "yes" \
4925                           -o "$wxUSE_DRAG_AND_DROP" = "yes" \) ; then
4926     AC_CHECK_HEADERS(ole2.h)
4927
4928     if test "$ac_cv_header_ole2_h" = "yes" ; then
4929         if test "$GCC" = yes ; then
4930             AC_LANG_SAVE
4931             AC_LANG_CPLUSPLUS
4932
4933             AC_MSG_CHECKING([if g++ requires -fvtable-thunks])
4934             AC_TRY_COMPILE([#include <windows.h>
4935                             #include <ole2.h>],
4936                            [],
4937                            [AC_MSG_RESULT(no)],
4938                            [AC_MSG_RESULT(yes)
4939                             CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"])
4940             AC_LANG_RESTORE
4941             ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
4942             LIBS=" -lrpcrt4 -loleaut32 -lole32 -luuid$LIBS"
4943             AC_DEFINE(wxUSE_OLE)
4944
4945         fi
4946
4947         dnl for OLE clipboard and dnd
4948         AC_DEFINE(wxUSE_DATAOBJ)
4949     else
4950         AC_MSG_WARN([Some features disabled because OLE headers not found])
4951
4952         wxUSE_CLIPBOARD=no
4953         wxUSE_DRAG_AND_DROP=no
4954         wxUSE_DATAOBJ=no
4955         wxUSE_OLE=no
4956     fi
4957
4958     if test "$wxUSE_METAFILE" = "yes"; then
4959         AC_DEFINE(wxUSE_METAFILE)
4960
4961         dnl this one should probably be made separately configurable
4962         AC_DEFINE(wxUSE_ENH_METAFILE)
4963     fi
4964 fi
4965
4966 if test "$wxUSE_IPC" = "yes"; then
4967     if test "$wxUSE_SOCKETS" != "yes"; then
4968         AC_MSG_WARN(wxWindows IPC classes require sockets... disabled)
4969     fi
4970
4971     AC_DEFINE(wxUSE_IPC)
4972 fi
4973
4974 if test "$wxUSE_CLIPBOARD" = "yes"; then
4975     if test "$wxUSE_MGL" = 1; then
4976         AC_MSG_WARN([Clipboard not yet supported under MGL... disabled])
4977         wxUSE_CLIPBOARD=no
4978     fi
4979
4980     if test "$wxUSE_CLIPBOARD" = "yes"; then
4981         AC_DEFINE(wxUSE_CLIPBOARD)
4982
4983         dnl required by clipboard code in configuration check
4984         AC_DEFINE(wxUSE_DATAOBJ)
4985     fi
4986 fi
4987
4988 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
4989     if test "$wxUSE_GTK" = 1; then
4990         if test "$WXGTK12" != 1; then
4991             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2... disabled])
4992             wxUSE_DRAG_AND_DROP=no
4993         fi
4994     fi
4995
4996     if test "$wxUSE_MOTIF" = 1; then
4997         AC_MSG_WARN([Drag and drop not yet supported under Motif... disabled])
4998         wxUSE_DRAG_AND_DROP=no
4999     fi
5000
5001     if test "$wxUSE_X11" = 1; then
5002         AC_MSG_WARN([Drag and drop not yet supported under X11... disabled])
5003         wxUSE_DRAG_AND_DROP=no
5004     fi
5005
5006     if test "$wxUSE_MGL" = 1; then
5007         AC_MSG_WARN([Drag and drop not yet supported under MGL... disabled])
5008         wxUSE_DRAG_AND_DROP=no
5009     fi
5010
5011     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
5012         AC_DEFINE(wxUSE_DRAG_AND_DROP)
5013         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
5014     fi
5015
5016 fi
5017
5018 if test "$wxUSE_SPLINES" = "yes" ; then
5019   AC_DEFINE(wxUSE_SPLINES)
5020 fi
5021
5022 dnl ---------------------------------------------------------------------------
5023 dnl GUI controls
5024 dnl ---------------------------------------------------------------------------
5025
5026 USES_CONTROLS=0
5027 if test "$wxUSE_CONTROLS" = "yes"; then
5028   USES_CONTROLS=1
5029 fi
5030
5031 if test "$wxUSE_ACCEL" = "yes"; then
5032   AC_DEFINE(wxUSE_ACCEL)
5033   USES_CONTROLS=1
5034 fi
5035
5036 if test "$wxUSE_BUTTON" = "yes"; then
5037   AC_DEFINE(wxUSE_BUTTON)
5038   USES_CONTROLS=1
5039 fi
5040
5041 if test "$wxUSE_BMPBUTTON" = "yes"; then
5042   AC_DEFINE(wxUSE_BMPBUTTON)
5043   USES_CONTROLS=1
5044 fi
5045
5046 if test "$wxUSE_CALCTRL" = "yes"; then
5047   AC_DEFINE(wxUSE_CALENDARCTRL)
5048   USES_CONTROLS=1
5049   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS calendar"
5050 fi
5051
5052 if test "$wxUSE_CARET" = "yes"; then
5053   AC_DEFINE(wxUSE_CARET)
5054   USES_CONTROLS=1
5055   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
5056 fi
5057
5058 if test "$wxUSE_COMBOBOX" = "yes"; then
5059   AC_DEFINE(wxUSE_COMBOBOX)
5060   USES_CONTROLS=1
5061 fi
5062
5063 if test "$wxUSE_CHOICE" = "yes"; then
5064   AC_DEFINE(wxUSE_CHOICE)
5065   USES_CONTROLS=1
5066 fi
5067
5068 if test "$wxUSE_CHECKBOX" = "yes"; then
5069   AC_DEFINE(wxUSE_CHECKBOX)
5070   USES_CONTROLS=1
5071 fi
5072
5073 if test "$wxUSE_CHECKLST" = "yes"; then
5074   AC_DEFINE(wxUSE_CHECKLISTBOX)
5075   USES_CONTROLS=1
5076   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
5077 fi
5078
5079 if test "$wxUSE_DISPLAY" = "yes"; then
5080     AC_DEFINE(wxUSE_DISPLAY)
5081     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS display"
5082 fi
5083
5084 if test "$wxUSE_GAUGE" = "yes"; then
5085   AC_DEFINE(wxUSE_GAUGE)
5086   USES_CONTROLS=1
5087 fi
5088
5089 if test "$wxUSE_GRID" = "yes"; then
5090   AC_DEFINE(wxUSE_GRID)
5091   USES_CONTROLS=1
5092   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
5093 fi
5094
5095 if test "$wxUSE_IMAGLIST" = "yes"; then
5096     AC_DEFINE(wxUSE_IMAGLIST)
5097 fi
5098
5099 if test "$wxUSE_LISTBOOK" = "yes"; then
5100     AC_DEFINE(wxUSE_LISTBOOK)
5101     USES_CONTROLS=1
5102 fi
5103
5104 if test "$wxUSE_LISTBOX" = "yes"; then
5105     AC_DEFINE(wxUSE_LISTBOX)
5106     USES_CONTROLS=1
5107 fi
5108
5109 if test "$wxUSE_LISTCTRL" = "yes"; then
5110     if test "$wxUSE_IMAGLIST" = "yes"; then
5111         AC_DEFINE(wxUSE_LISTCTRL)
5112         USES_CONTROLS=1
5113         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
5114     else
5115         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
5116     fi
5117 fi
5118
5119 if test "$wxUSE_NOTEBOOK" = "yes"; then
5120     AC_DEFINE(wxUSE_NOTEBOOK)
5121     USES_CONTROLS=1
5122     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
5123 fi
5124
5125 dnl if test "$wxUSE_PROPSHEET" = "yes"; then
5126 dnl     AC_DEFINE(wxUSE_PROPSHEET)
5127 dnl     USES_CONTROLS=1
5128 dnl     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS proplist"
5129 dnl fi
5130
5131 if test "$wxUSE_RADIOBOX" = "yes"; then
5132     AC_DEFINE(wxUSE_RADIOBOX)
5133     USES_CONTROLS=1
5134 fi
5135
5136 if test "$wxUSE_RADIOBTN" = "yes"; then
5137     AC_DEFINE(wxUSE_RADIOBTN)
5138     USES_CONTROLS=1
5139 fi
5140
5141 if test "$wxUSE_SASH" = "yes"; then
5142     AC_DEFINE(wxUSE_SASH)
5143     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
5144 fi
5145
5146 if test "$wxUSE_SCROLLBAR" = "yes"; then
5147     AC_DEFINE(wxUSE_SCROLLBAR)
5148     USES_CONTROLS=1
5149     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
5150 fi
5151
5152 if test "$wxUSE_SLIDER" = "yes"; then
5153     AC_DEFINE(wxUSE_SLIDER)
5154     USES_CONTROLS=1
5155 fi
5156
5157 if test "$wxUSE_SPINBTN" = "yes"; then
5158     AC_DEFINE(wxUSE_SPINBTN)
5159     USES_CONTROLS=1
5160 fi
5161
5162 if test "$wxUSE_SPINCTRL" = "yes"; then
5163     AC_DEFINE(wxUSE_SPINCTRL)
5164     USES_CONTROLS=1
5165 fi
5166
5167 if test "$wxUSE_SPLITTER" = "yes"; then
5168     AC_DEFINE(wxUSE_SPLITTER)
5169     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
5170 fi
5171
5172 if test "$wxUSE_STATBMP" = "yes"; then
5173     AC_DEFINE(wxUSE_STATBMP)
5174     USES_CONTROLS=1
5175 fi
5176
5177 if test "$wxUSE_STATBOX" = "yes"; then
5178     AC_DEFINE(wxUSE_STATBOX)
5179     USES_CONTROLS=1
5180 fi
5181
5182 if test "$wxUSE_STATTEXT" = "yes"; then
5183     AC_DEFINE(wxUSE_STATTEXT)
5184     USES_CONTROLS=1
5185 fi
5186
5187 if test "$wxUSE_STATLINE" = "yes"; then
5188     AC_DEFINE(wxUSE_STATLINE)
5189     USES_CONTROLS=1
5190 fi
5191
5192 if test "$wxUSE_STATUSBAR" = "yes"; then
5193     AC_DEFINE(wxUSE_STATUSBAR)
5194     USES_CONTROLS=1
5195
5196     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
5197 fi
5198
5199 if test "$wxUSE_TABDIALOG" = "yes"; then
5200     AC_DEFINE(wxUSE_TAB_DIALOG)
5201     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
5202 fi
5203
5204 if test "$wxUSE_TEXTCTRL" = "yes"; then
5205     AC_DEFINE(wxUSE_TEXTCTRL)
5206     USES_CONTROLS=1
5207     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS text"
5208 fi
5209
5210 if test "$wxUSE_TOGGLEBTN" = "yes"; then
5211     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
5212         AC_MSG_WARN([Toggle button not yet supported under Mac OS X... disabled])
5213         wxUSE_TOGGLEBTN=no
5214     fi
5215     if test "$wxUSE_UNIVERSAL" = "yes"; then
5216         AC_MSG_WARN([Toggle button not yet supported under wxUniversal... disabled])
5217         wxUSE_TOGGLEBTN=no
5218     fi
5219
5220     if test "$wxUSE_TOGGLEBTN" = "yes"; then
5221         AC_DEFINE(wxUSE_TOGGLEBTN)
5222         USES_CONTROLS=1
5223     fi
5224 fi
5225
5226 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
5227     AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
5228     wxUSE_TOOLBAR="yes"
5229     USES_CONTROLS=1
5230 fi
5231
5232 if test "$wxUSE_TOOLBAR" = "yes"; then
5233     AC_DEFINE(wxUSE_TOOLBAR)
5234     USES_CONTROLS=1
5235
5236     dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
5237     if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
5238         wxUSE_TOOLBAR_NATIVE="yes"
5239     fi
5240
5241     if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
5242         AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
5243         USES_CONTROLS=1
5244     fi
5245
5246     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
5247 fi
5248
5249 if test "$wxUSE_TOOLTIPS" = "yes"; then
5250     if test "$wxUSE_MOTIF" = 1; then
5251         AC_MSG_WARN([wxTooltip not supported yet under Motif... disabled])
5252     else
5253         if test "$wxUSE_UNIVERSAL" = "yes"; then
5254             AC_MSG_WARN([wxTooltip not supported yet in wxUniversal... disabled])
5255         else
5256             AC_DEFINE(wxUSE_TOOLTIPS)
5257         fi
5258     fi
5259 fi
5260
5261 if test "$wxUSE_TREECTRL" = "yes"; then
5262     if test "$wxUSE_IMAGLIST" = "yes"; then
5263         AC_DEFINE(wxUSE_TREECTRL)
5264         USES_CONTROLS=1
5265         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
5266     else
5267         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
5268     fi
5269 fi
5270
5271 if test "$wxUSE_POPUPWIN" = "yes"; then
5272     if test "$wxUSE_MAC" = 1 -o "$wxUSE_COCOA" = 1 ; then
5273         AC_MSG_WARN([Popup window not yet supported under Mac OS X... disabled])
5274     else
5275         if test "$wxUSE_MOTIF" = 1; then
5276             AC_MSG_WARN([wxPopupWindow not yet supported under Motif... disabled])
5277         else
5278             if test "$wxUSE_PM" = 1; then
5279                 AC_MSG_WARN([wxPopupWindow not yet supported under PM... disabled])
5280             else
5281                 AC_DEFINE(wxUSE_POPUPWIN)
5282
5283                 USES_CONTROLS=1
5284             fi
5285         fi
5286     fi
5287 fi
5288
5289 if test "$wxUSE_TIPWINDOW" = "yes"; then
5290     if test "$wxUSE_PM" = 1; then
5291         AC_MSG_WARN([wxTipWindow not yet supported under PM... disabled])
5292     else
5293         AC_DEFINE(wxUSE_TIPWINDOW)
5294     fi
5295 fi
5296
5297 if test "$USES_CONTROLS" = 1; then
5298     AC_DEFINE(wxUSE_CONTROLS)
5299 fi
5300
5301 dnl ---------------------------------------------------------------------------
5302 dnl misc options
5303 dnl ---------------------------------------------------------------------------
5304
5305 dnl please keep the settings below in alphabetical order
5306 if test "$wxUSE_ACCESSIBILITY" = "yes"; then
5307     AC_DEFINE(wxUSE_ACCESSIBILITY)
5308     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS access"
5309 fi
5310
5311 if test "$wxUSE_DRAGIMAGE" = "yes"; then
5312     AC_DEFINE(wxUSE_DRAGIMAGE)
5313     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dragimag"
5314 fi
5315
5316 if test "$wxUSE_EXCEPTIONS" = "yes"; then
5317     AC_DEFINE(wxUSE_EXCEPTIONS)
5318 fi
5319
5320 USE_HTML=0
5321 if test "$wxUSE_HTML" = "yes"; then
5322     AC_DEFINE(wxUSE_HTML)
5323     USE_HTML=1
5324     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html html/about html/help html/helpview html/printing html/test html/virtual html/widget html/zip htlbox"
5325 fi
5326
5327 if test "$wxUSE_MENUS" = "yes"; then
5328     AC_DEFINE(wxUSE_MENUS)
5329     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS menu"
5330 fi
5331
5332 if test "$wxUSE_METAFILE" = "yes"; then
5333     AC_DEFINE(wxUSE_METAFILE)
5334 fi
5335
5336 if test "$wxUSE_MIMETYPE" = "yes"; then
5337     AC_DEFINE(wxUSE_MIMETYPE)
5338 fi
5339
5340 if test "$wxUSE_MINIFRAME" = "yes"; then
5341     AC_DEFINE(wxUSE_MINIFRAME)
5342     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
5343 fi
5344
5345 if test "$wxUSE_SYSTEM_OPTIONS" = "yes"; then
5346     AC_DEFINE(wxUSE_SYSTEM_OPTIONS)
5347     if test "$TOOLKIT" = "MSW" -o "$TOOLKIT" = "GTK" -o "$TOOLKIT" = "X11" -o \
5348         "$TOOLKIT" = "MOTIF"; then
5349         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS taskbar"
5350     fi
5351 fi
5352
5353
5354 if test "$wxUSE_VALIDATORS" = "yes"; then
5355     AC_DEFINE(wxUSE_VALIDATORS)
5356     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
5357 fi
5358
5359 if test "$wxUSE_PALETTE" = "yes" ; then
5360   AC_DEFINE(wxUSE_PALETTE)
5361 fi
5362
5363 if test "$wxUSE_UNICODE" = "yes" -a "$wxUSE_UNICODE_MSLU" = "yes" ; then
5364   dnl Must be done this late because -lunicows must be before all the other libs
5365   LIBS=" -lunicows $LIBS"
5366 fi
5367
5368 dnl ---------------------------------------------------------------------------
5369 dnl wxImage options
5370 dnl ---------------------------------------------------------------------------
5371
5372 if test "$wxUSE_IMAGE" = "yes" ; then
5373     AC_DEFINE(wxUSE_IMAGE)
5374
5375     if test "$wxUSE_GIF" = "yes" ; then
5376       AC_DEFINE(wxUSE_GIF)
5377     fi
5378
5379     if test "$wxUSE_PCX" = "yes" ; then
5380       AC_DEFINE(wxUSE_PCX)
5381     fi
5382
5383     if test "$wxUSE_IFF" = "yes" ; then
5384       AC_DEFINE(wxUSE_IFF)
5385     fi
5386
5387     if test "$wxUSE_PNM" = "yes" ; then
5388       AC_DEFINE(wxUSE_PNM)
5389     fi
5390
5391     if test "$wxUSE_XPM" = "yes" ; then
5392       AC_DEFINE(wxUSE_XPM)
5393     fi
5394
5395     if test "$wxUSE_ICO_CUR" = "yes" ; then
5396       AC_DEFINE(wxUSE_ICO_CUR)
5397     fi
5398 fi
5399
5400 dnl ---------------------------------------------------------------------------
5401 dnl common dialogs
5402 dnl ---------------------------------------------------------------------------
5403
5404 if test "$wxUSE_CHOICEDLG" = "yes"; then
5405     AC_DEFINE(wxUSE_CHOICEDLG)
5406 fi
5407
5408 if test "$wxUSE_COLOURDLG" = "yes"; then
5409     AC_DEFINE(wxUSE_COLOURDLG)
5410 fi
5411
5412 if test "$wxUSE_FILEDLG" = "yes"; then
5413     AC_DEFINE(wxUSE_FILEDLG)
5414 fi
5415
5416 if test "$wxUSE_FINDREPLDLG" = "yes"; then
5417     AC_DEFINE(wxUSE_FINDREPLDLG)
5418 fi
5419
5420 if test "$wxUSE_FONTDLG" = "yes"; then
5421     AC_DEFINE(wxUSE_FONTDLG)
5422 fi
5423
5424 if test "$wxUSE_DIRDLG" = "yes"; then
5425     if test "$wxUSE_TREECTRL" != "yes"; then
5426         AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
5427     else
5428         AC_DEFINE(wxUSE_DIRDLG)
5429     fi
5430 fi
5431
5432 if test "$wxUSE_MSGDLG" = "yes"; then
5433     AC_DEFINE(wxUSE_MSGDLG)
5434 fi
5435
5436 if test "$wxUSE_NUMBERDLG" = "yes"; then
5437     AC_DEFINE(wxUSE_NUMBERDLG)
5438 fi
5439
5440 if test "$wxUSE_PROGRESSDLG" = "yes"; then
5441     if test "$wxUSE_CONSTRAINTS" != "yes"; then
5442        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
5443     else
5444         AC_DEFINE(wxUSE_PROGRESSDLG)
5445     fi
5446 fi
5447
5448 if test "$wxUSE_SPLASH" = "yes"; then
5449     AC_DEFINE(wxUSE_SPLASH)
5450 fi
5451
5452 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
5453     if test "$wxUSE_CONSTRAINTS" != "yes"; then
5454        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
5455     else
5456         AC_DEFINE(wxUSE_STARTUP_TIPS)
5457     fi
5458 fi
5459
5460 if test "$wxUSE_TEXTDLG" = "yes"; then
5461     AC_DEFINE(wxUSE_TEXTDLG)
5462 fi
5463
5464 if test "$wxUSE_WIZARDDLG" = "yes"; then
5465     AC_DEFINE(wxUSE_WIZARDDLG)
5466     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS wizard"
5467 fi
5468
5469 dnl ---------------------------------------------------------------------------
5470 dnl get the string with OS info - used by wxGetOsDescription()
5471 dnl ---------------------------------------------------------------------------
5472
5473 if test "$cross_compiling" = "yes"; then
5474     dnl Use best guess from host as we can't use uname when cross compiling
5475     OSINFO="\"$host\""
5476 else
5477     dnl attualy work out OS version
5478     OSINFO=`uname -s -r -m`
5479     OSINFO="\"$OSINFO\""
5480 fi
5481
5482 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
5483
5484 dnl ---------------------------------------------------------------------------
5485 dnl define the variable containing the installation prefix (used in dcpsg.cpp)
5486 dnl ---------------------------------------------------------------------------
5487
5488 if test "x$prefix" != "xNONE"; then
5489     wxPREFIX=$prefix
5490 else
5491     wxPREFIX=$ac_default_prefix
5492 fi
5493
5494 AC_DEFINE_UNQUOTED(wxINSTALL_PREFIX, "$wxPREFIX")
5495
5496 dnl define the variables used in wx-config
5497 top_builddir_wxconfig=`pwd`
5498
5499
5500 dnl ---------------------------------------------------------------------------
5501 dnl define variables with all built libraries for wx-config
5502 dnl ---------------------------------------------------------------------------
5503
5504 CORE_BASE_LIBS="net base"
5505 CORE_GUI_LIBS="adv core"
5506
5507 if test "$wxUSE_XML" = "yes" ; then
5508     CORE_BASE_LIBS="xml $CORE_BASE_LIBS"
5509 fi
5510 if test "$wxUSE_ODBC" != "no" ; then
5511     CORE_BASE_LIBS="odbc $CORE_BASE_LIBS"
5512     CORE_GUI_LIBS="dbgrid $CORE_GUI_LIBS"
5513 fi
5514 if test "$wxUSE_HTML" = "yes" ; then
5515     CORE_GUI_LIBS="html $CORE_GUI_LIBS"
5516 fi
5517
5518 AC_SUBST(CORE_BASE_LIBS)
5519 AC_SUBST(CORE_GUI_LIBS)
5520
5521
5522 dnl ---------------------------------------------------------------------------
5523 dnl Output the makefiles and such from the results found above
5524 dnl ---------------------------------------------------------------------------
5525
5526 dnl all additional libraries (except wxWindows itself) we link with
5527
5528 dnl note that we always link with -lm except for Mac OS X
5529 dnl extended.c uses floor() and is always linked in
5530
5531 if test "$wxUSE_MAC" = 1 ; then
5532     LDFLAGS="$LDFLAGS -framework Carbon -framework System"
5533 fi
5534 if test "$wxUSE_COCOA" = 1 ; then
5535     LDFLAGS="$LDFLAGS -framework Cocoa -framework System"
5536 fi
5537
5538 dnl FIXME: should this be covered by the conditional above
5539 dnl given the -lm comment there?  Or should that comment (and
5540 dnl this one) be removed..   [ 7 Nov 2001 ]
5541
5542 LIBS="$ZLIB_LINK $POSIX4_LINK $INET_LINK $WCHAR_LINK $DL_LINK $LIBS"
5543
5544 dnl Only add the -lm library if floating point functions cannot be used
5545 dnl without it.  This check is important on cygwin because of the bizarre
5546 dnl way that they have organized functions into libraries.  On cygwin, both
5547 dnl libc.a and libm.a are symbolic links to a single lib libcygwin.a.  This
5548 dnl means that
5549 dnl   1) linking with -lm is not necessary, and
5550 dnl   2) linking with -lm is dangerous if the order of libraries is wrong
5551 dnl In particular, if you compile any program with -mno-cygwin and link with
5552 dnl -lm, it will crash instantly when it is run.  This happens because the
5553 dnl linker incorrectly links the Cygwin libm.a (==libcygwin.a), which replaces
5554 dnl the ___main function instead of allowing it to be defined by
5555 dnl /usr/lib/mingw/libmingw32.a as it should be.
5556 dnl
5557 dnl On MacOS X, this test will find that -lm is unnecessary and leave it out.
5558 dnl
5559 dnl Just check a few floating point functions. If they are all found without
5560 dnl -lm, then we must not need -lm.
5561 have_cos=0
5562 have_floor=0
5563 AC_CHECK_FUNCS(cos, have_cos=1)
5564 AC_CHECK_FUNCS(floor, have_floor=1)
5565 AC_MSG_CHECKING(if floating point functions link without -lm)
5566 if test "$have_cos" = 1 -a "$have_floor" = 1; then
5567     AC_MSG_RESULT(yes)
5568 else
5569     AC_MSG_RESULT(no)
5570     LIBS="$LIBS -lm"
5571     # use different functions to avoid configure caching
5572     have_sin=0
5573     have_ceil=0
5574     AC_CHECK_FUNCS(sin, have_sin=1)
5575     AC_CHECK_FUNCS(ceil, have_ceil=1)
5576     AC_MSG_CHECKING(if floating point functions link with -lm)
5577     if test "$have_sin" = 1 -a "$have_ceil" = 1; then
5578         AC_MSG_RESULT(yes)
5579     else
5580         AC_MSG_RESULT(no)
5581         # not sure we should warn the user, crash, etc.
5582     fi
5583 fi
5584
5585 if test "$wxUSE_GUI" = "yes"; then
5586
5587     dnl TODO add checks that these samples will really compile (i.e. all the
5588     dnl      library features they need are present)
5589
5590     dnl TODO some samples are never built so far:
5591     dnl      ipc, mfc, nativdlg, oleauto, ownerdrw
5592     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS artprov controls dialogs \
5593                      drawing dynamic erase event exec font image \
5594                      minimal propsize rotate shaped widgets render"
5595
5596     if test "$wxUSE_MONOLITHIC" != "yes"; then
5597         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS console"
5598     fi
5599 else
5600     SAMPLES_SUBDIRS="console"
5601 fi
5602
5603
5604 dnl all -I options we must pass to the compiler
5605 dnl
5606 dnl note that the order is somewhat important, in particular the ZLIB_INCLUDE
5607 dnl and other stuff for the built in libraries should come first to avoid
5608 dnl including the system headers with the same name (it is particularly
5609 dnl important for zlib because XFree 4.2.0 has its own, horribly old and
5610 dnl incompatible, zlib.h) and the wxWindows headers should come first anyhow
5611 INCLUDES="-I\${top_builddir}lib/wx/include/${TOOLCHAIN_NAME} \
5612 -I\${top_srcdir}/include \
5613 $REGEX_INCLUDE $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE \
5614 $TOOLKIT_INCLUDE"
5615
5616 dnl C/C++ compiler options used to compile wxWindows
5617 if test "$GXX" = yes ; then
5618     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
5619     CXXWARNINGS="-Wall"
5620     dnl should enable this one day...
5621     dnl CXXWARNINGS="-Wall -Werror"
5622 fi
5623
5624 EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE"
5625
5626 dnl remove the extra white space from the cc/c++/ld options
5627 CPPFLAGS=`echo $WXDEBUG_DEFINE $INCLUDES $CPPFLAGS | sed 's/ \\+/ /g'`
5628 CFLAGS=`echo $CODE_GEN_FLAGS $EXTRA_CFLAGS $CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
5629 CXXFLAGS=`echo $CODE_GEN_FLAGS $CODE_GEN_FLAGS_CXX $EXTRA_CFLAGS $CXXFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
5630     
5631
5632 LIBS=`echo $LIBS | sed 's/ \+/ /g'`
5633 EXTRALIBS="$LDFLAGS $LDFLAGS_VERSIONING $LIBS $DMALLOC_LIBS"
5634 EXTRALIBS_XML="$EXPAT_LINK"
5635 EXTRALIBS_ODBC="$ODBC_LINK"
5636 if test "$wxUSE_GUI" = "yes"; then
5637     EXTRALIBS_GUI=`echo $GUI_TK_LIBRARY $PNG_LINK $JPEG_LINK $TIFF_LINK | sed 's/ \+/ /g'`
5638 fi
5639 if test "$wxUSE_OPENGL" = "yes"; then
5640     EXTRALIBS_OPENGL="$LDFLAGS_GL $OPENGL_LIBS"
5641 fi
5642     
5643 LDFLAGS="$LDFLAGS $PROFILE"
5644
5645 dnl wxGTK does not need TOOLKIT includes in wx-config
5646 if test "$wxUSE_GTK" = 1; then
5647     WXCONFIG_INCLUDE=
5648 else
5649     WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE"
5650 fi
5651
5652 WXCONFIG_EXTRALIBS="$LIBS"
5653
5654 dnl wx-config must output builtin 3rd party libs in --libs in static build:
5655 if test "$wxUSE_REGEX" = "builtin" ; then
5656     wxconfig_3rdparty="$wxconfig_3rdparty regex"
5657 fi
5658 if test "$wxUSE_EXPAT" = "builtin" ; then
5659     wxconfig_3rdparty="$wxconfig_3rdparty expat"
5660 fi
5661 if test "$wxUSE_ODBC" = "builtin" ; then
5662     wxconfig_3rdparty="$wxconfig_3rdparty odbc"
5663 fi
5664 if test "$wxUSE_LIBTIFF" = "builtin" ; then
5665     wxconfig_3rdparty="$wxconfig_3rdparty tiff"
5666 fi
5667 if test "$wxUSE_LIBJPEG" = "builtin" ; then
5668     wxconfig_3rdparty="$wxconfig_3rdparty jpeg"
5669 fi
5670 if test "$wxUSE_LIBPNG" = "builtin" ; then
5671     wxconfig_3rdparty="$wxconfig_3rdparty png"
5672 fi
5673 if test "$wxUSE_ZLIB" = "builtin" ; then
5674     wxconfig_3rdparty="$wxconfig_3rdparty zlib"
5675 fi
5676 if test "$wxUSE_ODBC" = "builtin" ; then
5677     wxconfig_3rdparty="$wxconfig_3rdparty odbc"
5678 fi
5679
5680 for i in $wxconfig_3rdparty ; do
5681     WXCONFIG_EXTRALIBS="$WXCONFIG_EXTRALIBS -lwx${i}${lib_debug_suffix}${HOST_SUFFIX}"
5682 done
5683
5684
5685 if test "x$wxUSE_UNIVERSAL" = "xyes" ; then
5686     WXUNIV=1
5687 else
5688     WXUNIV=0
5689 fi
5690
5691 AC_SUBST(wxUSE_ZLIB)
5692 AC_SUBST(wxUSE_REGEX)
5693 AC_SUBST(wxUSE_EXPAT)
5694 AC_SUBST(wxUSE_ODBC)
5695 AC_SUBST(wxUSE_LIBJPEG)
5696 AC_SUBST(wxUSE_LIBPNG)
5697 AC_SUBST(wxUSE_LIBTIFF)
5698
5699 if test $wxUSE_MONOLITHIC = "yes" ; then
5700     MONOLITHIC=1
5701 else
5702     MONOLITHIC=0
5703 fi
5704
5705 if test $wxUSE_ODBC != "no" ; then
5706     USE_ODBC=1
5707 else
5708     USE_ODBC=0
5709 fi
5710
5711 if test $wxUSE_OFFICIAL_BUILD = "yes" ; then
5712     OFFICIAL_BUILD=1
5713 else
5714     OFFICIAL_BUILD=0
5715 fi
5716
5717 AC_SUBST(VENDOR)
5718 AC_SUBST(OFFICIAL_BUILD)
5719
5720 AC_SUBST(WXUNIV)
5721 AC_SUBST(MONOLITHIC)
5722 AC_SUBST(LIBS)
5723 AC_SUBST(EXTRALIBS)
5724 AC_SUBST(EXTRALIBS_XML)
5725 AC_SUBST(EXTRALIBS_ODBC)
5726 AC_SUBST(EXTRALIBS_GUI)
5727 AC_SUBST(EXTRALIBS_OPENGL)
5728 AC_SUBST(UNICODE)
5729 AC_SUBST(BUILD)
5730 AC_SUBST(DEBUG_INFO)
5731 AC_SUBST(DEBUG_FLAG)
5732 AC_SUBST(SHARED)
5733 TOOLKIT_LOWERCASE=`echo $TOOLKIT | tr [[A-Z]] [[a-z]]`
5734 AC_SUBST(TOOLKIT_LOWERCASE)
5735 AC_SUBST(TOOLKIT_VERSION)
5736 AC_SUBST(SAMPLES_RPATH_FLAG)
5737 AC_SUBST(SAMPLES_RPATH_POSTLINK)
5738 AC_SUBST(HOST_SUFFIX)
5739
5740 AC_BAKEFILE
5741
5742
5743 dnl Find out if we have to define NO_GCC_PRAGMA and WX_PRECOMP:
5744 if test $GCC_PCH = 1 ; then
5745     CPPFLAGS="-DWX_PRECOMP -DNO_GCC_PRAGMA $CPPFLAGS"
5746 else
5747     case "${host}" in
5748         powerpc-*-darwin* )
5749             dnl Some Apple's GCC version are broken and can't handle the
5750             dnl pragmas:
5751             CPPFLAGS="-DNO_GCC_PRAGMA $CPPFLAGS"
5752             ;;
5753     esac
5754 fi
5755 dnl We have to output NO_GCC_PRAGMA with wx-config on Apple, too:
5756 case "${host}" in
5757     powerpc-*-darwin* )
5758         dnl Some Apple's GCC version are broken and can't handle the
5759         dnl pragmas:
5760         CODE_GEN_FLAGS_CXX="-DNO_GCC_PRAGMA $CODE_GEN_FLAGS_CXX"
5761         ;;
5762 esac
5763
5764
5765 dnl for convenience, sort the samples in alphabetical order
5766 dnl
5767 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
5768 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
5769 dnl
5770 dnl       Unfortunately, there is a bug in OS/2's tr, such that
5771 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
5772 dnl       only removes the Unix-like part of the introduced line break.
5773 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
5774
5775 dnl makefile variables
5776 AC_SUBST(PATH_IFS)
5777
5778 dnl global options
5779 AC_SUBST(WX_MAJOR_VERSION_NUMBER)
5780 AC_SUBST(WX_MINOR_VERSION_NUMBER)
5781 AC_SUBST(WX_RELEASE_NUMBER)
5782 AC_SUBST(WX_LIBRARY_NAME_STATIC)
5783 AC_SUBST(WX_LIBRARY_NAME_SHARED)
5784 AC_SUBST(WX_LIBRARY_BASENAME_NOGUI)
5785 AC_SUBST(WX_LIBRARY_BASENAME_GUI)
5786 AC_SUBST(WX_LIBRARY_IMPORTLIB)
5787 AC_SUBST(WX_TARGET_LIBRARY)
5788 AC_SUBST(WX_LIBRARY_LINK1)
5789 AC_SUBST(WX_LIBRARY_LINK2)
5790 AC_SUBST(PROGRAM_EXT)
5791
5792 dnl global gl options
5793 AC_SUBST(WX_LIBRARY_NAME_STATIC_GL)
5794 AC_SUBST(WX_LIBRARY_NAME_SHARED_GL)
5795 AC_SUBST(WX_TARGET_LIBRARY_GL)
5796 AC_SUBST(WX_LIBRARY_LINK1_GL)
5797 AC_SUBST(WX_LIBRARY_LINK2_GL)
5798
5799 dnl are we supposed to create the links?
5800 AC_SUBST(WX_ALL)
5801 AC_SUBST(WX_ALL_INSTALLED)
5802
5803 AC_SUBST(SHARED_LD)
5804 AC_SUBST(PIC_FLAG)
5805
5806 AC_SUBST(WX_TARGET_LIBRARY_TYPE)
5807
5808 AC_SUBST(STATIC_FLAG)
5809
5810 dnl debugging options
5811 AC_SUBST(WXDEBUG_DEFINE)
5812
5813 dnl toolkit options
5814 AC_SUBST(USE_GUI)
5815 AC_SUBST(AFMINSTALL)
5816 AC_SUBST(WIN32INSTALL)
5817 AC_SUBST(TOOLKIT)
5818 AC_SUBST(TOOLKIT_DIR)
5819 AC_SUBST(TOOLKIT_VPATH)
5820 AC_SUBST(TOOLCHAIN_NAME)
5821 AC_SUBST(TOOLCHAIN_DEFS)
5822 AC_SUBST(TOOLCHAIN_DLL_DEFS)
5823
5824 dnl wx-config options
5825 AC_SUBST(top_builddir_wxconfig)
5826 AC_SUBST(host_alias)
5827 AC_SUBST(cross_compiling)
5828 AC_SUBST(WXCONFIG_EXTRALIBS)
5829 AC_SUBST(WXCONFIG_LIBS)
5830 AC_SUBST(WXCONFIG_LIBS_GL)
5831 AC_SUBST(WXCONFIG_LIBS_STATIC)
5832 AC_SUBST(WXCONFIG_LIBS_STATIC_GL)
5833 AC_SUBST(WXCONFIG_INCLUDE)
5834 AC_SUBST(WXCONFIG_RPATH)
5835 AC_SUBST(WXCONFIG_LDFLAGS_GUI)
5836 AC_SUBST(WX_LARGEFILE_FLAGS)
5837 AC_SUBST(CODE_GEN_FLAGS)
5838 AC_SUBST(CODE_GEN_FLAGS_CXX)
5839
5840 dnl the list of files to compile/install
5841 AC_SUBST(ALL_OBJECTS)
5842 AC_SUBST(ALL_HEADERS)
5843 AC_SUBST(ALL_SOURCES)
5844
5845 dnl distribution vars
5846 AC_SUBST(GUIDIST)
5847 AC_SUBST(PORT_FILES)
5848 AC_SUBST(DISTDIR)
5849
5850 dnl additional subdirectories where we will build
5851 AC_SUBST(SAMPLES_SUBDIRS)
5852
5853 dnl additional libraries and linker settings
5854 AC_SUBST(LDFLAGS)
5855 AC_SUBST(LDFLAGS_GL)
5856 AC_SUBST(LDFLAGS_VERSIONING)
5857 AC_SUBST(LDFLAGS_EXE)
5858 AC_SUBST(OPENGL_LIBS)
5859 AC_SUBST(DMALLOC_LIBS)
5860 AC_SUBST(WX_VERSION_TAG)
5861
5862 dnl additional resurces settings
5863 AC_SUBST(RESCOMP)
5864 AC_SUBST(RESFLAGS)
5865 AC_SUBST(RESPROGRAMOBJ)
5866 AC_SUBST(WX_RESOURCES_MACOSX_ASCII)
5867 AC_SUBST(WX_RESOURCES_MACOSX_DATA)
5868
5869 dnl additional for Mac OS X
5870 AC_SUBST(DEREZ)
5871 AC_SUBST(MACOSX_BUNDLE)
5872 AC_SUBST(LIBWXMACRES)
5873 AC_SUBST(MACRESCOMP)
5874 AC_SUBST(MACSETFILE)
5875 AC_SUBST(MACRESWXCONFIG)
5876
5877 dnl other tools
5878 AC_SUBST(GCC)
5879 AC_SUBST(DLLTOOL)
5880 AC_SUBST(AS)
5881 AC_SUBST(NM)
5882 AC_SUBST(LD)
5883 AC_SUBST(MAKEINFO)
5884 AC_SUBST(INSTALL_LIBRARY)
5885 AC_SUBST(INSTALL_DIR)
5886
5887
5888 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
5889 dnl itself (this macro is required if SUBDIRS variable is used in Makefile.am
5890 dnl - and we do use it)
5891 AC_PROG_MAKE_SET
5892
5893 dnl move setup.h back if available
5894 if test -f lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h; then
5895     mv -f lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h setup.h
5896 fi
5897
5898 AC_CONFIG_HEADERS([setup.h])
5899
5900 dnl create each of the files in the space separated list from the file.in
5901 dnl (the original file name may be overriden by appending another name after a
5902 dnl colon)
5903 AC_CONFIG_FILES([
5904             wx-config
5905             version-script
5906             Makefile
5907           ])
5908
5909 AC_CONFIG_COMMANDS([default],
5910           [
5911             dnl This test is required to make the following idempotent.
5912             dnl Otherwise running config.status or rerunning configure
5913             dnl would stomp the wx-config link or try to move it onto
5914             dnl itself.
5915             dnl Use -h instead of -L to test for link (GD)
5916             dnl   -h is documented as obsolete under Mac OS X but works
5917             dnl   -L is obsolete under Solaris8
5918             if test ! -h wx-config; then
5919                 chmod +x wx-config
5920                 mv wx-config wx${TOOLCHAIN_NAME}-config
5921                 ${LN_S} wx${TOOLCHAIN_NAME}-config wx-config
5922             fi
5923
5924             if test ! -d lib; then
5925               mkdir lib
5926             fi
5927             if test ! -d lib/wx; then
5928               mkdir lib/wx
5929             fi
5930             if test ! -d lib/wx/include; then
5931               mkdir lib/wx/include
5932             fi
5933             if test ! -d lib/wx/include/${TOOLCHAIN_NAME}; then
5934               mkdir lib/wx/include/${TOOLCHAIN_NAME}
5935             fi
5936             if test ! -d lib/wx/include/${TOOLCHAIN_NAME}/wx; then
5937               mkdir lib/wx/include/${TOOLCHAIN_NAME}/wx
5938             fi
5939             if test -f setup.h; then
5940               mv -f setup.h lib/wx/include/${TOOLCHAIN_NAME}/wx/setup.h
5941             fi
5942           ],
5943           [
5944             TOOLCHAIN_NAME="${TOOLCHAIN_NAME}"
5945             LN_S="${LN_S}"
5946           ]
5947          )
5948
5949
5950 dnl Configure samples, contrib etc. directories, but only if they are present:
5951 if test "$wxUSE_GUI" = "yes"; then
5952     SUBDIRS="samples demos utils contrib"
5953 else dnl we build wxBase only
5954     dnl there are no wxBase programs in contrib nor demos
5955     SUBDIRS="samples utils"
5956 fi
5957
5958 for subdir in `echo $SUBDIRS`; do
5959     if test -d ${srcdir}/${subdir} ; then
5960         if test "$wxUSE_GUI" = "yes"; then
5961             if test ${subdir} = "samples"; then
5962                 dnl only take those samples which compile in the current
5963                 dnl configuration and which exist
5964                 makefiles="samples/Makefile.in $makefiles"
5965                 for sample in `echo $SAMPLES_SUBDIRS`; do
5966                     if test -d $srcdir/samples/$sample; then
5967                         makefiles="samples/$sample/Makefile.in $makefiles"
5968                     fi
5969                 done
5970             else dnl assume that everything compiles for utils &c
5971                 makefiles=`(cd $srcdir ; find $subdir -name Makefile.in)`
5972             fi
5973         else dnl we build wxBase only
5974             dnl don't take all samples/utils, just those which build with
5975             dnl wxBase
5976             if test ${subdir} = "samples"; then
5977                 makefiles="samples/Makefile.in samples/console/Makefile.in"
5978             else dnl utils
5979                 makefiles="utils/HelpGen/Makefile.in \
5980                            utils/HelpGen/src/Makefile.in"
5981             fi
5982         fi
5983
5984         for mkin in $makefiles ; do
5985             mk=`echo $mkin | sed 's/Makefile\.in/Makefile/g'`
5986             AC_CONFIG_FILES([$mk])
5987         done
5988     fi
5989 done
5990
5991
5992 AC_OUTPUT
5993
5994 dnl report on what we decided to do
5995 echo
5996 echo "Configured wxWindows ${WX_VERSION} for \`${host}'"
5997 echo ""
5998 echo "  Which GUI toolkit should wxWindows use?                 ${TOOLKIT:-base only}"
5999 echo "  Should wxWindows be compiled into single library?       ${wxUSE_MONOLITHIC:-yes}"
6000
6001 echo "  Should wxWindows be compiled in debug mode?             ${wxUSE_DEBUG:-no}"
6002 echo "  Should wxWindows be linked as a shared library?         ${wxUSE_SHARED:-no}"
6003 echo "  Should wxWindows be compiled in Unicode mode?           ${wxUSE_UNICODE:-no}"
6004
6005 echo "  What level of wxWindows compatibility should be enabled?"
6006 echo "                                       wxWindows 2.2      ${WXWIN_COMPATIBILITY_2_2:-no}"
6007 echo "                                       wxWindows 2.4      ${WXWIN_COMPATIBILITY_2_4:-yes}"
6008
6009 echo "  Which libraries should wxWindows use?"
6010 echo "                                       jpeg               ${wxUSE_LIBJPEG-none}"
6011 echo "                                       png                ${wxUSE_LIBPNG-none}"
6012 echo "                                       regex              ${wxUSE_REGEX}"
6013 echo "                                       tiff               ${wxUSE_LIBTIFF-none}"
6014 echo "                                       zlib               ${wxUSE_ZLIB}"
6015 echo "                                       odbc               ${wxUSE_ODBC}"
6016 echo "                                       expat              ${wxUSE_EXPAT}"
6017
6018 echo ""
6019
6020 dnl vi: set et sts=4 sw=4 com=\:dnl: