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