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