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