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