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