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