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