Updated version numbers to 2.3.1
[wxWidgets.git] / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 AC_REVISION($Id$)dnl
3
4 dnl ---------------------------------------------------------------------------
5 dnl
6 dnl Top-level configure.in for wxWindows by Robert Roebling, Phil Blecker and
7 dnl Vadim Zeitlin
8 dnl
9 dnl This script is under the wxWindows licence.
10 dnl
11 dnl Version: $Id$
12 dnl ---------------------------------------------------------------------------
13
14 dnl ---------------------------------------------------------------------------
15 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]])
16 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS. Uses variables
17 dnl gtk_config_prefix and/or gtk_config_exec_prefix if defined.
18 dnl ---------------------------------------------------------------------------
19 dnl
20 AC_DEFUN(AM_PATH_GTK,
21 [
22   if test x$gtk_config_exec_prefix != x ; then
23      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
24      if test x${GTK_CONFIG+set} != xset ; then
25         GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
26      fi
27   fi
28   if test x$gtk_config_prefix != x ; then
29      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
30      if test x${GTK_CONFIG+set} != xset ; then
31         GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
32      fi
33   fi
34
35   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
36   min_gtk_version=ifelse([$1], ,0.99.7,$1)
37   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
38   no_gtk=""
39   if test "$GTK_CONFIG" != "no" ; then
40     GTK_CFLAGS=`$GTK_CONFIG --cflags`
41     GTK_LIBS=`$GTK_CONFIG --libs gthread`
42     ac_save_CFLAGS="$CFLAGS"
43     ac_save_LIBS="$LIBS"
44     CFLAGS="$CFLAGS $GTK_CFLAGS"
45     LIBS="$LIBS $GTK_LIBS"
46 dnl
47 dnl Now check if the installed GTK is sufficiently new. (Also sanity
48 dnl checks the results of gtk-config to some extent)
49 dnl
50     AC_TRY_RUN([
51 #include <gtk/gtk.h>
52 #include <gtk/gtkfeatures.h>
53 #include <stdio.h>
54 #include <stdlib.h>
55
56 int
57 main ()
58 {
59   int major, minor, micro;
60
61   if (sscanf("$min_gtk_version", "%d.%d.%d", &major, &minor, &micro) != 3) {
62      printf("%s, bad version string\n", "$min_gtk_version");
63      exit(1);
64    }
65
66    if ((GTK_MAJOR_VERSION != gtk_major_version) ||
67        (GTK_MINOR_VERSION != gtk_minor_version) ||
68        (GTK_MICRO_VERSION != gtk_micro_version)) {
69      printf("Headers vs. library version mismatch!\n");
70      exit(1);
71    }
72
73    if (gtk_minor_version == 1) return FALSE;
74
75    return !((gtk_major_version > major) ||
76     ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
77     ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)));
78 }
79 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
80      CFLAGS="$ac_save_CFLAGS"
81      LIBS="$ac_save_LIBS"
82   else
83      no_gtk=yes
84   fi
85   if test "x$no_gtk" = x ; then
86      AC_MSG_RESULT(yes)
87      ifelse([$2], , :, [$2])
88   else
89      AC_MSG_RESULT(no)
90      GTK_CFLAGS=""
91      GTK_LIBS=""
92      ifelse([$3], , :, [$3])
93   fi
94   AC_SUBST(GTK_CFLAGS)
95   AC_SUBST(GTK_LIBS)
96 ])
97
98 dnl ===========================================================================
99 dnl macros to find the a file in the list of include/lib paths
100 dnl ===========================================================================
101
102 dnl ---------------------------------------------------------------------------
103 dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
104 dnl to the full name of the file that was found or leaves it empty if not found
105 dnl ---------------------------------------------------------------------------
106 AC_DEFUN(WX_PATH_FIND_INCLUDES,
107 [
108 ac_find_includes=
109 for ac_dir in $1;
110   do
111     if test -f "$ac_dir/$2"; then
112       ac_find_includes=$ac_dir
113       break
114     fi
115   done
116 ])
117
118 dnl ---------------------------------------------------------------------------
119 dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_includes
120 dnl to the full name of the file that was found or leaves it empty if not found
121 dnl ---------------------------------------------------------------------------
122 AC_DEFUN(WX_PATH_FIND_LIBRARIES,
123 [
124 ac_find_libraries=
125 for ac_dir in $1;
126   do
127     for ac_extension in a so sl; do
128       if test -f "$ac_dir/lib$2.$ac_extension"; then
129         ac_find_libraries=$ac_dir
130         break 2
131       fi
132     done
133   done
134 ])
135
136 dnl ---------------------------------------------------------------------------
137 dnl Path to include, already defined
138 dnl ---------------------------------------------------------------------------
139 AC_DEFUN(WX_INCLUDE_PATH_EXIST,
140 [
141   ac_path_to_include=$1
142   echo "$2" | grep "\-I$1" > /dev/null
143   result=$?
144   if test $result = 0; then
145     ac_path_to_include=""
146   else
147     ac_path_to_include="-I$1"
148   fi
149 ])
150
151 dnl ---------------------------------------------------------------------------
152 dnl Path to link, already defined
153 dnl ---------------------------------------------------------------------------
154 AC_DEFUN(WX_LINK_PATH_EXIST,
155 [
156   echo "$2" | grep "\-L$1" > /dev/null
157   result=$?
158   if test $result = 0; then
159     ac_path_to_link=""
160   else
161     ac_path_to_link="-L$1"
162   fi
163 ])
164
165 dnl ===========================================================================
166 dnl C++ features test
167 dnl ===========================================================================
168
169 dnl ---------------------------------------------------------------------------
170 dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
171 dnl or only the old <iostream.h> one - it may be generally assumed that if
172 dnl <iostream> exists, the other "new" headers (without .h) exist too.
173 dnl
174 dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
175 dnl ---------------------------------------------------------------------------
176
177 AC_DEFUN(WX_CPP_NEW_HEADERS,
178 [
179   if test "$cross_compiling" = "yes"; then
180     ifelse([$2], , :, [$2])
181   else
182     AC_LANG_SAVE
183     AC_LANG_CPLUSPLUS
184
185     AC_CHECK_HEADERS(iostream)
186
187     if test "x$HAVE_IOSTREAM" = x ; then
188       ifelse([$2], , :, [$2])
189     else
190       ifelse([$1], , :, [$1])
191     fi
192
193     AC_LANG_RESTORE
194   fi
195 ])
196
197 dnl ---------------------------------------------------------------------------
198 dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
199 dnl
200 dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
201 dnl ---------------------------------------------------------------------------
202
203 AC_DEFUN(WX_CPP_BOOL,
204 [
205   AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
206   [
207     AC_LANG_SAVE
208     AC_LANG_CPLUSPLUS
209
210     AC_TRY_COMPILE(
211       [
212       ],
213       [
214         bool b = true;
215
216         return 0;
217       ],
218       [
219         AC_DEFINE(HAVE_BOOL)
220         wx_cv_cpp_bool=yes
221       ],
222       [
223         wx_cv_cpp_bool=no
224       ]
225     )
226
227     AC_LANG_RESTORE
228   ])
229
230   if test "$wx_cv_cpp_bool" = "yes"; then
231     AC_DEFINE(HAVE_BOOL)
232   fi
233 ])
234
235 dnl ---------------------------------------------------------------------------
236 dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
237 dnl ---------------------------------------------------------------------------
238
239 AC_DEFUN(WX_C_BIGENDIAN,
240 [AC_CACHE_CHECK(whether byte ordering is bigendian, ac_cv_c_bigendian,
241 [ac_cv_c_bigendian=unknown
242 # See if sys/param.h defines the BYTE_ORDER macro.
243 AC_TRY_COMPILE([#include <sys/types.h>
244 #include <sys/param.h>], [
245 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
246  bogus endian macros
247 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
248 AC_TRY_COMPILE([#include <sys/types.h>
249 #include <sys/param.h>], [
250 #if BYTE_ORDER != BIG_ENDIAN
251  not big endian
252 #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
253 if test $ac_cv_c_bigendian = unknown; then
254 AC_TRY_RUN([main () {
255   /* Are we little or big endian?  From Harbison&Steele.  */
256   union
257   {
258     long l;
259     char c[sizeof (long)];
260   } u;
261   u.l = 1;
262   exit (u.c[sizeof (long) - 1] == 1);
263 }], ac_cv_c_bigendian=no, ac_cv_c_bigendian=yes, ac_cv_c_bigendian=unknown)
264 fi])
265 if test $ac_cv_c_bigendian = unknown; then
266   AC_MSG_WARN([Assuming little-endian target machine - this may be overriden by adding the line "ac_cv_c_bigendian=${ac_cv_c_bigendian='yes'}" to config.cache file])
267 fi
268 if test $ac_cv_c_bigendian = yes; then
269   AC_DEFINE(WORDS_BIGENDIAN)
270 fi
271 ])
272
273 dnl ---------------------------------------------------------------------------
274 dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
275 dnl ---------------------------------------------------------------------------
276
277 AC_DEFUN(WX_ARG_CACHE_INIT,
278         [
279           wx_arg_cache_file="configarg.cache"
280           echo "loading argument cache $wx_arg_cache_file"
281           rm -f ${wx_arg_cache_file}.tmp
282           touch ${wx_arg_cache_file}.tmp
283           touch ${wx_arg_cache_file}
284         ])
285
286 AC_DEFUN(WX_ARG_CACHE_FLUSH,
287         [
288           echo "saving argument cache $wx_arg_cache_file"
289           mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
290         ])
291
292 dnl this macro checks for a three-valued command line --with argument:
293 dnl   possible arguments are 'yes', 'no', or 'sys'
294 dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
295 AC_DEFUN(WX_ARG_SYS_WITH,
296         [
297           AC_MSG_CHECKING("for --with-$1")
298           no_cache=0
299           AC_ARG_WITH($1, $2,
300                       [
301                         if test "$withval" = yes; then
302                           ac_cv_use_$1='$3=yes'
303                         elif test "$withval" = no; then
304                           ac_cv_use_$1='$3=no'
305                         elif test "$withval" = sys; then
306                           ac_cv_use_$1='$3=sys'
307                         else
308                           AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
309                         fi
310                       ],
311                       [
312                         LINE=`grep "$3" ${wx_arg_cache_file}`
313                         if test "x$LINE" != x ; then
314                           eval "DEFAULT_$LINE"
315                         else
316                           no_cache=1
317                         fi
318
319                         ac_cv_use_$1='$3='$DEFAULT_$3
320                       ])
321
322           eval "$ac_cv_use_$1"
323           if test "$no_cache" != 1; then
324             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
325           fi
326
327           if test "$$3" = yes; then
328             AC_MSG_RESULT(yes)
329           elif test "$$3" = no; then
330             AC_MSG_RESULT(no)
331           elif test "$$3" = sys; then
332             AC_MSG_RESULT(system version)
333           else
334             AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no or sys])
335           fi
336         ])
337
338 dnl this macro checks for a command line argument and caches the result
339 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
340 AC_DEFUN(WX_ARG_WITH,
341         [
342           AC_MSG_CHECKING("for --with-$1")
343           no_cache=0
344           AC_ARG_WITH($1, $2,
345                       [
346                         if test "$withval" = yes; then
347                           ac_cv_use_$1='$3=yes'
348                         else
349                           ac_cv_use_$1='$3=no'
350                         fi
351                       ],
352                       [
353                         LINE=`grep "$3" ${wx_arg_cache_file}`
354                         if test "x$LINE" != x ; then
355                           eval "DEFAULT_$LINE"
356                         else
357                           no_cache=1
358                         fi
359
360                         ac_cv_use_$1='$3='$DEFAULT_$3
361                       ])
362
363           eval "$ac_cv_use_$1"
364           if test "$no_cache" != 1; then
365             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
366           fi
367
368           if test "$$3" = yes; then
369             AC_MSG_RESULT(yes)
370           else
371             AC_MSG_RESULT(no)
372           fi
373         ])
374
375 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
376 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
377 AC_DEFUN(WX_ARG_ENABLE,
378         [
379           AC_MSG_CHECKING("for --enable-$1")
380           no_cache=0
381           AC_ARG_ENABLE($1, $2,
382                         [
383                           if test "$enableval" = yes; then
384                             ac_cv_use_$1='$3=yes'
385                           else
386                             ac_cv_use_$1='$3=no'
387                           fi
388                         ],
389                         [
390                           LINE=`grep "$3" ${wx_arg_cache_file}`
391                           if test "x$LINE" != x ; then
392                             eval "DEFAULT_$LINE"
393                           else
394                             no_cache=1
395                           fi
396
397                           ac_cv_use_$1='$3='$DEFAULT_$3
398                         ])
399
400           eval "$ac_cv_use_$1"
401           if test "$no_cache" != 1; then
402             echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
403           fi
404
405           if test "$$3" = yes; then
406             AC_MSG_RESULT(yes)
407           else
408             AC_MSG_RESULT(no)
409           fi
410         ])
411
412 dnl -
413 dnl - GNU libc extension (added by GL)
414 dnl -
415
416 AC_DEFUN(WX_GNU_EXTENSIONS,
417 [
418 AC_MSG_CHECKING([if you need GNU extensions])
419 AC_CACHE_VAL(wx_cv_gnu_extensions,[
420    AC_TRY_COMPILE([#include <features.h>],[
421
422 #ifndef __GNU_LIBRARY__
423  Compile error wanted
424 #endif
425
426 ],
427   [wx_cv_gnu_extensions=yes],
428   [wx_cv_gnu_extensions=no])
429 ])
430
431 AC_MSG_RESULT($wx_cv_gnu_extensions)
432 if test "$wx_cv_gnu_extensions" = "yes"; then
433   AC_DEFINE_UNQUOTED(_GNU_SOURCE)
434 fi
435 ])
436
437
438 dnl ---------------------------------------------------------------------------
439 dnl initialization
440 dnl ---------------------------------------------------------------------------
441
442 dnl the file passed to AC_INIT should be specific to our package
443 AC_INIT(wx-config.in)
444
445 dnl sets build, host, target variables and the same with _alias
446 AC_CANONICAL_SYSTEM
447
448 dnl When making releases do:
449 dnl
450 dnl WX_RELEASE_NUMBER += 1
451 dnl
452 dnl ..and update WX_CURRENT, WX_RELEASE and WX_AGE according to the
453 dnl following rules:
454 dnl
455 dnl    If any changes have been made to the public interface, that is if any
456 dnl    exported class, method, global or global type has been added, removed
457 dnl    or changed in any way, then do:  WX_CURRENT += 1
458 dnl
459 dnl    If source changes have been made that *do not* alter the public
460 dnl    interface then do:  WX_REVISION += 1
461 dnl    If WX_CURRENT was incremented (as above) instead do:  WX_REVISION = 0
462 dnl
463 dnl    If any public interface was added, do:  WX_AGE += 1
464 dnl    If any public interface was removed (or altered in a way effectively
465 dnl    removing the previous definition), instead do:  WX_AGE = 0
466 dnl
467 dnl When the major or minor version numbers are incremented, all the above
468 dnl variables should be reset to 0.
469 dnl
470 dnl The resulting library name will be of the form:
471 dnl   libwx_$(TOOLKIT)-$(WX_RELEASE).so.$(WX_CURRENT).$(WX_REVISION).$(WX_AGE)
472
473 WX_MAJOR_VERSION_NUMBER=2
474 WX_MINOR_VERSION_NUMBER=3
475 WX_RELEASE_NUMBER=1
476
477 WX_VERSION=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER.$WX_RELEASE_NUMBER
478 WX_RELEASE=$WX_MAJOR_VERSION_NUMBER.$WX_MINOR_VERSION_NUMBER
479
480 WX_CURRENT=0
481 WX_REVISION=0
482 WX_AGE=0
483
484
485 dnl ------------------------------------------------------------------------
486 dnl Check platform (host system)
487 dnl ------------------------------------------------------------------------
488
489 dnl assume Unix
490 USE_UNIX=1
491 USE_WIN32=0
492 USE_BEOS=0
493 USE_MAC=0
494
495 USE_LINUX=
496 USE_SGI=
497 USE_HPUX=
498 USE_SYSV=
499 USE_SVR4=
500 USE_AIX=
501 USE_SUN=
502 USE_SOLARIS=
503 USE_SUNOS=
504 USE_ALPHA=
505 USE_OSF=
506 USE_BSD=
507 USE_FREEBSD=
508 USE_OPENBSD=
509 USE_NETBSD=
510 USE_VMS=
511 USE_ULTRIX=
512 USE_CYGWIN=
513 USE_MINGW=
514 USE_DATA_GENERAL=
515
516 dnl on some platforms xxx_r() functions are declared inside "#ifdef
517 dnl _REENTRANT" and it's easier to just define this symbol for these platforms
518 dnl than checking it during run-time
519 NEEDS_D_REENTRANT_FOR_R_FUNCS=0
520
521 dnl the list of all available toolkits
522 ALL_TOOLKITS="CYGWIN GTK MINGW MOTIF MAC WINE PM"
523
524 dnl NB: these wxUSE_XXX constants have value of 0 or 1 unlike all the other ones
525 dnl     which are either yes or no
526 DEFAULT_wxUSE_GTK=0
527 DEFAULT_wxUSE_MOTIF=0
528 DEFAULT_wxUSE_MSW=0
529 DEFAULT_wxUSE_MAC=0
530 DEFAULT_wxUSE_WINE=0
531 DEFAULT_wxUSE_PM=0
532
533 dnl these are the values which are really default for the given platform -
534 dnl they're not cached and are only used if no --with-toolkit was given *and*
535 dnl nothing was found in the cache
536 DEFAULT_DEFAULT_wxUSE_GTK=0
537 DEFAULT_DEFAULT_wxUSE_MOTIF=0
538 DEFAULT_DEFAULT_wxUSE_MSW=0
539 DEFAULT_DEFAULT_wxUSE_MAC=0
540 DEFAULT_DEFAULT_wxUSE_WINE=0
541 DEFAULT_DEFAULT_wxUSE_PM=0
542
543 PROGRAM_EXT=
544
545 dnl to support a new system, you need to add its canonical name (as determined
546 dnl by config.sub or specified by the configure command line) to this "case"
547 dnl and also define the shared library flags below - search for
548 dnl SHARED_LIB_SETUP to find the exact place
549 case "${host}" in
550   *-hp-hpux* )
551     USE_HPUX=1
552     DEFAULT_DEFAULT_wxUSE_MOTIF=1
553     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
554     AC_DEFINE(__HPUX__)
555   ;;
556   *-*-linux* )
557     USE_LINUX=1
558     AC_DEFINE(__LINUX__)
559     TMP=`uname -m`
560     if test "x$TMP" = "xalpha"; then
561       USE_ALPHA=1
562       AC_DEFINE(__ALPHA__)
563     fi
564     DEFAULT_DEFAULT_wxUSE_GTK=1
565   ;;
566   *-*-irix5* | *-*-irix6* )
567     USE_SGI=1
568     USE_SVR4=1
569     AC_DEFINE(__SGI__)
570     AC_DEFINE(__SVR4__)
571     DEFAULT_DEFAULT_wxUSE_MOTIF=1
572   ;;
573   *-*-solaris2* )
574     USE_SUN=1
575     USE_SOLARIS=1
576     USE_SVR4=1
577     AC_DEFINE(__SUN__)
578     AC_DEFINE(__SOLARIS__)
579     AC_DEFINE(__SVR4__)
580     DEFAULT_DEFAULT_wxUSE_MOTIF=1
581     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
582   ;;
583   *-*-sunos4* )
584     USE_SUN=1
585     USE_SUNOS=1
586     USE_BSD=1
587     AC_DEFINE(__SUN__)
588     AC_DEFINE(__SUNOS__)
589     AC_DEFINE(__BSD__)
590     DEFAULT_DEFAULT_wxUSE_MOTIF=1
591   ;;
592   *-*-freebsd*)
593     USE_BSD=1
594     USE_FREEBSD=1
595     AC_DEFINE(__FREEBSD__)
596     AC_DEFINE(__BSD__)
597     DEFAULT_DEFAULT_wxUSE_GTK=1
598   ;;
599   *-*-openbsd*)
600     USE_BSD=1
601     USE_OPENBSD=1
602     AC_DEFINE(__FREEBSD__)
603     AC_DEFINE(__OPENBSD__)
604     DEFAULT_DEFAULT_wxUSE_GTK=1
605   ;;
606   *-*-netbsd*)
607     USE_BSD=1
608     USE_NETBSD=1
609     AC_DEFINE(__FREEBSD__)
610     AC_DEFINE(__NETBSD__)
611     DEFAULT_DEFAULT_wxUSE_GTK=1
612   ;;
613   *-*-osf* )
614     USE_ALPHA=1
615     USE_OSF=1
616     AC_DEFINE(__ALPHA__)
617     AC_DEFINE(__OSF__)
618     DEFAULT_DEFAULT_wxUSE_MOTIF=1
619     NEEDS_D_REENTRANT_FOR_R_FUNCS=1
620   ;;
621   *-*-dgux5* )
622     USE_ALPHA=1
623     USE_SVR4=1
624     AC_DEFINE(__ALPHA__)
625     AC_DEFINE(__SVR4__)
626     DEFAULT_DEFAULT_wxUSE_MOTIF=1
627   ;;
628   *-*-sysv5* )
629     USE_SYSV=1
630     USE_SVR4=1
631     AC_DEFINE(__SYSV__)
632     AC_DEFINE(__SVR4__)
633     DEFAULT_DEFAULT_wxUSE_MOTIF=1
634   ;;
635   *-*-aix* )
636     USE_AIX=1
637     USE_SYSV=1
638     USE_SVR4=1
639     AC_DEFINE(__AIX__)
640     AC_DEFINE(__SYSV__)
641     AC_DEFINE(__SVR4__)
642     DEFAULT_DEFAULT_wxUSE_MOTIF=1
643   ;;
644
645   *-*-cygwin* | *-*-mingw32* )
646     USE_UNIX=0
647     USE_WIN32=1
648     AC_DEFINE(__WIN32__)
649     AC_DEFINE(__WIN95__)
650     AC_DEFINE(__WINDOWS__)
651     AC_DEFINE(__GNUWIN32__)
652     AC_DEFINE(STRICT)
653     AC_DEFINE(WINVER, 0x0400)
654     PROGRAM_EXT=".exe"
655     DEFAULT_DEFAULT_wxUSE_MSW=1
656   ;;
657
658   *-pc-os2_emx )
659     AC_DEFINE(__EMX__)
660     PROGRAM_EXT=".exe"
661     DEFAULT_DEFAULT_wxUSE_PM=1
662   ;;
663
664   *-*-darwin* )
665     USE_BSD=1
666     USE_MAC=1
667     AC_DEFINE(__MAC__)
668     AC_DEFINE(__BSD__)
669     AC_DEFINE(__UNIX__)
670     DEFAULT_DEFAULT_wxUSE_MAC=1
671   ;;
672
673   *-*-beos* )
674     dnl leave USE_UNIX on - BeOS is sufficiently Unix-like for this
675     USE_BEOS=1
676     AC_DEFINE(__BEOS__)
677   ;;
678
679   *)
680     AC_MSG_ERROR(unknown system type ${host}.)
681 esac
682
683 if test "$USE_UNIX" = 1 ; then
684     wxUSE_UNIX=yes
685     AC_DEFINE(__UNIX__)
686
687     SRC_SUBDIRS="$SRC_SUBDIRS unix"
688     INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS unix"
689 fi
690
691 if test "$USE_BEOS" = 1; then
692     SRC_SUBDIRS="$SRC_SUBDIRS be"
693     INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS be"
694 fi
695
696 dnl Linux: test for libc5/glibc2: glibc2 has gettext() included
697 if test "$USE_LINUX" = 1; then
698   AC_CHECK_LIB(c,gettext,AC_DEFINE(wxHAVE_GLIBC2))
699 fi
700
701 dnl ---------------------------------------------------------------------------
702 dnl command line options for configure
703 dnl ---------------------------------------------------------------------------
704
705 dnl the default values for all options - we collect them all here to simplify
706 dnl modification of the default values (for example, if the defaults for some
707 dnl platform should be changed, it can be done here too)
708 dnl
709 dnl NB: see also DEFAULT_wxUSE<toolkit> variables defined above
710
711 WX_ARG_CACHE_INIT
712
713 dnl useful to test the compilation with minimum options, define as 0 for normal
714 dnl usage
715 DEBUG_CONFIGURE=0
716 if test $DEBUG_CONFIGURE = 1; then
717   DEFAULT_wxUSE_THREADS=yes
718
719   DEFAULT_wxUSE_SHARED=yes
720   DEFAULT_wxUSE_BURNT_NAME=no
721   DEFAULT_wxUSE_OPTIMISE=yes
722   DEFAULT_wxUSE_PROFILE=no
723   DEFAULT_wxUSE_NO_DEPS=no
724   DEFAULT_wxUSE_NO_RTTI=no
725   DEFAULT_wxUSE_NO_EXCEPTIONS=no
726   DEFAULT_wxUSE_PERMISSIVE=no
727   DEFAULT_wxUSE_DEBUG_FLAG=yes
728   DEFAULT_wxUSE_DEBUG_INFO=yes
729   DEFAULT_wxUSE_DEBUG_GDB=yes
730   DEFAULT_wxUSE_MEM_TRACING=no
731   DEFAULT_wxUSE_DEBUG_CONTEXT=no
732   DEFAULT_wxUSE_DMALLOC=no
733   DEFAULT_wxUSE_APPLE_IEEE=no
734
735   DEFAULT_wxUSE_LOG=yes
736
737   DEFAULT_wxUSE_GUI=yes
738
739   DEFAULT_wxUSE_ZLIB=no
740   DEFAULT_wxUSE_LIBPNG=no
741   DEFAULT_wxUSE_LIBJPEG=no
742   DEFAULT_wxUSE_LIBTIFF=no
743   DEFAULT_wxUSE_ODBC=no
744   DEFAULT_wxUSE_FREETYPE=no
745   DEFAULT_wxUSE_OPENGL=no
746
747   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=no
748   DEFAULT_wxUSE_STD_IOSTREAM=no
749   DEFAULT_wxUSE_FILE=no
750   DEFAULT_wxUSE_TEXTFILE=no
751   DEFAULT_wxUSE_TIMEDATE=no
752   DEFAULT_wxUSE_WAVE=no
753   DEFAULT_wxUSE_INTL=no
754   DEFAULT_wxUSE_CONFIG=no
755   DEFAULT_wxUSE_STREAMS=no
756   DEFAULT_wxUSE_SOCKETS=no
757   DEFAULT_wxUSE_DIALUP_MANAGER=no
758   DEFAULT_wxUSE_SERIAL=no
759   DEFAULT_wxUSE_JOYSTICK=no
760   DEFAULT_wxUSE_DYNLIB_CLASS=no
761   DEFAULT_wxUSE_LONGLONG=no
762   DEFAULT_wxUSE_GEOMETRY=no
763
764   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=no
765   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=no
766   DEFAULT_wxUSE_POSTSCRIPT=no
767
768   DEFAULT_wxUSE_X_RESOURCES=no
769   DEFAULT_wxUSE_CLIPBOARD=no
770   DEFAULT_wxUSE_TOOLTIPS=no
771   DEFAULT_wxUSE_DRAG_AND_DROP=no
772   DEFAULT_wxUSE_SPLINES=no
773
774   DEFAULT_wxUSE_MDI_ARCHITECTURE=no
775   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=no
776   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=no
777
778   DEFAULT_wxUSE_PROLOGIO=no
779   DEFAULT_wxUSE_RESOURCES=no
780   DEFAULT_wxUSE_CONSTRAINTS=no
781   DEFAULT_wxUSE_IPC=no
782   DEFAULT_wxUSE_HELP=no
783   DEFAULT_wxUSE_WXTREE=no
784   DEFAULT_wxUSE_METAFILE=no
785
786   DEFAULT_wxUSE_COMMONDLGS=no
787   DEFAULT_wxUSE_DIRDLG=no
788   DEFAULT_wxUSE_TEXTDLG=no
789   DEFAULT_wxUSE_STARTUP_TIPS=no
790   DEFAULT_wxUSE_PROGRESSDLG=no
791   DEFAULT_wxUSE_MINIFRAME=no
792   DEFAULT_wxUSE_HTML=no
793   DEFAULT_wxUSE_FILESYSTEM=no
794   DEFAULT_wxUSE_FS_INET=no
795   DEFAULT_wxUSE_FS_ZIP=no
796   DEFAULT_wxUSE_BUSYINFO=no
797   DEFAULT_wxUSE_ZIPSTREAM=no
798   DEFAULT_wxUSE_VALIDATORS=yes
799
800   DEFAULT_wxUSE_ACCEL=no
801   DEFAULT_wxUSE_CARET=no
802   DEFAULT_wxUSE_BMPBUTTON=no
803   DEFAULT_wxUSE_CHECKBOX=no
804   DEFAULT_wxUSE_CHECKLST=no
805   DEFAULT_wxUSE_CHOICE=yes
806   DEFAULT_wxUSE_COMBOBOX=no
807   DEFAULT_wxUSE_GAUGE=no
808   DEFAULT_wxUSE_GRID=no
809   DEFAULT_wxUSE_NEW_GRID=no
810   DEFAULT_wxUSE_IMAGLIST=no
811   DEFAULT_wxUSE_LISTBOX=no
812   DEFAULT_wxUSE_LISTCTRL=no
813   DEFAULT_wxUSE_NOTEBOOK=no
814   DEFAULT_wxUSE_RADIOBOX=no
815   DEFAULT_wxUSE_RADIOBTN=no
816   DEFAULT_wxUSE_SASH=no
817   DEFAULT_wxUSE_SCROLLBAR=no
818   DEFAULT_wxUSE_SLIDER=no
819   DEFAULT_wxUSE_SPINBTN=no
820   DEFAULT_wxUSE_SPINCTRL=no
821   DEFAULT_wxUSE_SPLITTER=no
822   DEFAULT_wxUSE_STATBMP=no
823   DEFAULT_wxUSE_STATBOX=no
824   DEFAULT_wxUSE_STATLINE=no
825   DEFAULT_wxUSE_STATUSBAR=yes
826   DEFAULT_wxUSE_TABDIALOG=no
827   DEFAULT_wxUSE_TOGGLEBTN=no
828   DEFAULT_wxUSE_TOOLBAR=no
829   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
830   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
831   DEFAULT_wxUSE_TREECTRL=no
832
833   DEFAULT_wxUSE_UNICODE=no
834   DEFAULT_wxUSE_WCSRTOMBS=no
835
836   DEFAULT_wxUSE_IMAGE=no
837   DEFAULT_wxUSE_GIF=no
838   DEFAULT_wxUSE_PCX=no
839   DEFAULT_wxUSE_PNM=no
840   DEFAULT_wxUSE_XPM=no
841 else
842   DEFAULT_wxUSE_THREADS=yes
843
844   DEFAULT_wxUSE_SHARED=yes
845   DEFAULT_wxUSE_BURNT_NAME=no
846   DEFAULT_wxUSE_OPTIMISE=yes
847   DEFAULT_wxUSE_PROFILE=no
848   DEFAULT_wxUSE_NO_DEPS=no
849   DEFAULT_wxUSE_NO_RTTI=no
850   DEFAULT_wxUSE_NO_EXCEPTIONS=no
851   DEFAULT_wxUSE_PERMISSIVE=no
852   DEFAULT_wxUSE_DEBUG_FLAG=no
853   DEFAULT_wxUSE_DEBUG_INFO=no
854   DEFAULT_wxUSE_DEBUG_GDB=no
855   DEFAULT_wxUSE_MEM_TRACING=no
856   DEFAULT_wxUSE_DEBUG_CONTEXT=no
857   DEFAULT_wxUSE_DMALLOC=no
858   DEFAULT_wxUSE_APPLE_IEEE=yes
859
860   DEFAULT_wxUSE_LOG=yes
861
862   DEFAULT_wxUSE_GUI=yes
863
864   DEFAULT_wxUSE_ZLIB=yes
865   DEFAULT_wxUSE_LIBPNG=yes
866   DEFAULT_wxUSE_LIBJPEG=yes
867   DEFAULT_wxUSE_LIBTIFF=yes
868   DEFAULT_wxUSE_ODBC=no
869   DEFAULT_wxUSE_FREETYPE=no
870   DEFAULT_wxUSE_OPENGL=no
871
872   DEFAULT_wxUSE_ON_FATAL_EXCEPTION=yes
873   DEFAULT_wxUSE_STD_IOSTREAM=no
874   DEFAULT_wxUSE_FILE=yes
875   DEFAULT_wxUSE_TEXTFILE=yes
876   DEFAULT_wxUSE_TIMEDATE=yes
877   DEFAULT_wxUSE_WAVE=no
878   DEFAULT_wxUSE_INTL=yes
879   DEFAULT_wxUSE_CONFIG=yes
880   DEFAULT_wxUSE_STREAMS=yes
881   DEFAULT_wxUSE_SOCKETS=yes
882   DEFAULT_wxUSE_DIALUP_MANAGER=yes
883   DEFAULT_wxUSE_SERIAL=yes
884   DEFAULT_wxUSE_JOYSTICK=yes
885   DEFAULT_wxUSE_DYNLIB_CLASS=yes
886   DEFAULT_wxUSE_LONGLONG=yes
887   DEFAULT_wxUSE_GEOMETRY=yes
888
889   DEFAULT_wxUSE_AFM_FOR_POSTSCRIPT=yes
890   DEFAULT_wxUSE_NORMALIZED_PS_FONTS=yes
891   DEFAULT_wxUSE_POSTSCRIPT=yes
892
893   DEFAULT_wxUSE_X_RESOURCES=no
894   DEFAULT_wxUSE_CLIPBOARD=yes
895   DEFAULT_wxUSE_TOOLTIPS=yes
896   DEFAULT_wxUSE_DRAG_AND_DROP=yes
897   DEFAULT_wxUSE_SPLINES=yes
898
899   DEFAULT_wxUSE_MDI_ARCHITECTURE=yes
900   DEFAULT_wxUSE_DOC_VIEW_ARCHITECTURE=yes
901   DEFAULT_wxUSE_PRINTING_ARCHITECTURE=yes
902
903   DEFAULT_wxUSE_PROLOGIO=yes
904   DEFAULT_wxUSE_RESOURCES=yes
905   DEFAULT_wxUSE_CONSTRAINTS=yes
906   DEFAULT_wxUSE_IPC=yes
907   DEFAULT_wxUSE_HELP=yes
908   DEFAULT_wxUSE_WXTREE=yes
909   DEFAULT_wxUSE_METAFILE=yes
910
911   DEFAULT_wxUSE_COMMONDLGS=yes
912   DEFAULT_wxUSE_DIRDLG=yes
913   DEFAULT_wxUSE_TEXTDLG=yes
914   DEFAULT_wxUSE_STARTUP_TIPS=yes
915   DEFAULT_wxUSE_PROGRESSDLG=yes
916   DEFAULT_wxUSE_MINIFRAME=yes
917   DEFAULT_wxUSE_HTML=yes
918   DEFAULT_wxUSE_FILESYSTEM=yes
919   DEFAULT_wxUSE_FS_INET=yes
920   DEFAULT_wxUSE_FS_ZIP=yes
921   DEFAULT_wxUSE_BUSYINFO=yes
922   DEFAULT_wxUSE_ZIPSTREAM=yes
923   DEFAULT_wxUSE_VALIDATORS=yes
924
925   DEFAULT_wxUSE_ACCEL=yes
926   DEFAULT_wxUSE_CARET=yes
927   DEFAULT_wxUSE_BMPBUTTON=yes
928   DEFAULT_wxUSE_CHECKBOX=yes
929   DEFAULT_wxUSE_CHECKLST=yes
930   DEFAULT_wxUSE_CHOICE=yes
931   DEFAULT_wxUSE_COMBOBOX=yes
932   DEFAULT_wxUSE_GAUGE=yes
933   DEFAULT_wxUSE_GRID=yes
934   DEFAULT_wxUSE_NEW_GRID=yes
935   DEFAULT_wxUSE_IMAGLIST=yes
936   DEFAULT_wxUSE_LISTBOX=yes
937   DEFAULT_wxUSE_LISTCTRL=yes
938   DEFAULT_wxUSE_NOTEBOOK=yes
939   DEFAULT_wxUSE_RADIOBOX=yes
940   DEFAULT_wxUSE_RADIOBTN=yes
941   DEFAULT_wxUSE_SASH=yes
942   DEFAULT_wxUSE_SCROLLBAR=yes
943   DEFAULT_wxUSE_SLIDER=yes
944   DEFAULT_wxUSE_SPINBTN=yes
945   DEFAULT_wxUSE_SPINCTRL=yes
946   DEFAULT_wxUSE_SPLITTER=yes
947   DEFAULT_wxUSE_STATBMP=yes
948   DEFAULT_wxUSE_STATBOX=yes
949   DEFAULT_wxUSE_STATLINE=yes
950   DEFAULT_wxUSE_STATUSBAR=yes
951   DEFAULT_wxUSE_TABDIALOG=no
952   DEFAULT_wxUSE_TOGGLEBTN=yes
953   DEFAULT_wxUSE_TOOLBAR=yes
954   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
955   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
956   DEFAULT_wxUSE_TREECTRL=yes
957
958   DEFAULT_wxUSE_UNICODE=no
959   DEFAULT_wxUSE_WCSRTOMBS=no
960
961   DEFAULT_wxUSE_IMAGE=yes
962   DEFAULT_wxUSE_GIF=yes
963   DEFAULT_wxUSE_PCX=yes
964   DEFAULT_wxUSE_PNM=yes
965   DEFAULT_wxUSE_XPM=yes
966 fi
967
968 dnl WX_ARG_WITH should be used to select whether an external package will be
969 dnl used or not, to configure compile-time features of this package itself,
970 dnl use WX_ARG_ENABLE instead
971
972 dnl ============================
973 dnl external package dependecies
974 dnl ============================
975
976 dnl these options use AC_ARG_WITH and not WX_ARG_WITH on purpose - we cache
977 dnl these values manually
978 for toolkit in `echo $ALL_TOOLKITS`; do
979   LINE=`grep "wxUSE_$toolkit" ${wx_arg_cache_file}`
980   if test "x$LINE" != x ; then
981     has_toolkit_in_cache=1
982     eval "DEFAULT_$LINE"
983     eval "CACHE_$toolkit=1"
984   fi
985 done
986
987 dnl ---------------------------------------------------------------------------
988 dnl --disable-gui will build only non-GUI part of wxWindows: check for this
989 dnl first to disable many other switches if it's given
990 dnl
991 dnl NB: this is still in testing stage, don't use if you don't know what you're
992 dnl     doing
993 dnl ---------------------------------------------------------------------------
994
995 WX_ARG_ENABLE(gui,         [  --enable-gui            use GUI classes], wxUSE_GUI)
996
997 if test "$wxUSE_GUI" = "yes"; then
998
999 AC_ARG_WITH(gtk,           [  --with-gtk              use GTK+], [wxUSE_GTK="$withval" CACHE_GTK=1 TOOLKIT_GIVEN=1])
1000 AC_ARG_WITH(motif,         [  --with-motif            use Motif/Lesstif], [wxUSE_MOTIF="$withval" CACHE_MOTIF=1 TOOLKIT_GIVEN=1])
1001 AC_ARG_WITH(mac,           [  --with-mac              use Mac OS X], [wxUSE_MAC="$withval" TOOLKIT_GIVEN=1])
1002 AC_ARG_WITH(wine,          [  --with-wine             use WINE], [wxUSE_WINE="$withval" CACHE_WINE=1 TOOLKIT_GIVEN=1])
1003 AC_ARG_WITH(cygwin,        [  --with-cygwin           use Cygwin for MS-Windows], [wxUSE_CYGWIN="$withval" CACHE_CYGWIN=1 TOOLKIT_GIVEN=1])
1004 AC_ARG_WITH(mingw,         [  --with-mingw            use GCC Minimal MS-Windows], [wxUSE_MINGW="$withval" CACHE_MINGW=1 TOOLKIT_GIVEN=1])
1005 AC_ARG_WITH(pm,            [  --with-pm               use OS/2 Presentation Manager], [wxUSE_PM="$withval" CACHE_PM=1 TOOLKIT_GIVEN=1])
1006
1007 AC_ARG_WITH(gtk-prefix,    [  --with-gtk-prefix=PFX   Prefix where GTK is installed],
1008             gtk_config_prefix="$withval", gtk_config_prefix="")
1009 AC_ARG_WITH(gtk-exec-prefix, [  --with-gtk-exec-prefix=PFX  Exec prefix where GTK is installed],
1010             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
1011
1012 WX_ARG_SYS_WITH(libpng,    [  --with-libpng           use libpng (PNG image format)], wxUSE_LIBPNG)
1013 WX_ARG_SYS_WITH(libjpeg,   [  --with-libjpeg          use libjpeg (JPEG file format)], wxUSE_LIBJPEG)
1014 WX_ARG_SYS_WITH(libtiff,   [  --with-libtiff          use libtiff (TIFF file format)], wxUSE_LIBTIFF)
1015 WX_ARG_SYS_WITH(freetype,  [  --with-freetype         use freetype (font rasterizer)], wxUSE_FREETYPE)
1016 WX_ARG_WITH(opengl,        [  --with-opengl           use OpenGL (or Mesa)], wxUSE_OPENGL)
1017
1018 fi
1019 dnl for GUI only
1020
1021 WX_ARG_WITH(dmalloc,       [  --with-dmalloc          use dmalloc library (www.letters.com/dmalloc)], wxUSE_DMALLOC)
1022 WX_ARG_SYS_WITH(zlib,      [  --with-zlib             use zlib for LZW compression], wxUSE_ZLIB)
1023 WX_ARG_WITH(odbc,          [  --with-odbc             use the IODBC and wxODBC classes], wxUSE_ODBC)
1024
1025 dnl ====================
1026 dnl compile-time options
1027 dnl ====================
1028
1029 dnl ---------------------------------------------------------------------------
1030 dnl compile options
1031 dnl ---------------------------------------------------------------------------
1032
1033 WX_ARG_ENABLE(shared,      [  --enable-shared         create shared library code], wxUSE_SHARED)
1034 WX_ARG_ENABLE(burnt_name,  [  --enable-burnt_name     create set name in shared library ], wxUSE_BURNT_NAME)
1035 WX_ARG_ENABLE(optimise,    [  --enable-optimise       create optimised code], wxUSE_OPTIMISE)
1036 WX_ARG_ENABLE(debug,       [  --enable-debug          same as debug_flag and debug_info], wxUSE_DEBUG)
1037
1038 if test "$wxUSE_DEBUG" = "yes"; then
1039   DEFAULT_wxUSE_DEBUG_FLAG=yes
1040   DEFAULT_wxUSE_DEBUG_INFO=yes
1041 elif test "$wxUSE_DEBUG" = "no"; then
1042   DEFAULT_wxUSE_DEBUG_FLAG=no
1043   DEFAULT_wxUSE_DEBUG_INFO=no
1044 fi
1045
1046 WX_ARG_ENABLE(debug_flag,    [  --enable-debug_flag     set __WXDEBUG__ flag (recommended for developers!)], wxUSE_DEBUG_FLAG)
1047 WX_ARG_ENABLE(debug_info,    [  --enable-debug_info     create code with debugging information], wxUSE_DEBUG_INFO)
1048 WX_ARG_ENABLE(debug_gdb,     [  --enable-debug_gdb      create code with extra GDB debugging information], wxUSE_DEBUG_GDB)
1049 WX_ARG_ENABLE(debug_cntxt,   [  --enable-debug_cntxt    use wxDebugContext], wxUSE_DEBUG_CONTEXT)
1050 WX_ARG_ENABLE(mem_tracing,   [  --enable-mem_tracing    create code with memory tracing], wxUSE_MEM_TRACING)
1051 WX_ARG_ENABLE(profile,       [  --enable-profile        create code with profiling information], wxUSE_PROFILE)
1052 WX_ARG_ENABLE(no_rtti,       [  --enable-no_rtti        create code without RTTI information], wxUSE_NO_RTTI)
1053 WX_ARG_ENABLE(no_exceptions, [  --enable-no_exceptions  create code without exceptions information], wxUSE_NO_EXCEPTIONS)
1054 WX_ARG_ENABLE(permissive,    [  --enable-permissive     compile code disregarding strict ANSI], wxUSE_PERMISSIVE)
1055 WX_ARG_ENABLE(no_deps,       [  --enable-no_deps        create code without dependency information], wxUSE_NO_DEPS)
1056
1057 dnl ---------------------------------------------------------------------------
1058 dnl (small) optional non GUI classes
1059 dnl ---------------------------------------------------------------------------
1060
1061 WX_ARG_ENABLE(intl,          [  --enable-intl           use internationalization system], wxUSE_INTL)
1062 WX_ARG_ENABLE(config,        [  --enable-config         use wxConfig (and derived) classes], wxUSE_CONFIG)
1063
1064 WX_ARG_ENABLE(sockets,       [  --enable-sockets        use socket/network classes], wxUSE_SOCKETS)
1065
1066 WX_ARG_ENABLE(ipc,           [  --enable-ipc            use interprocess communication (wxSocket etc.)], wxUSE_IPC)
1067
1068 WX_ARG_ENABLE(dialupman,     [  --enable-dialupman      use dialup network classes], wxUSE_DIALUP_MANAGER)
1069 WX_ARG_ENABLE(apple_ieee,    [  --enable-apple_ieee     use the Apple IEEE codec], wxUSE_APPLE_IEEE)
1070 WX_ARG_ENABLE(timedate,      [  --enable-timedate       use date/time classes], wxUSE_TIMEDATE)
1071 WX_ARG_ENABLE(wave,          [  --enable-wave           use wxWave class], wxUSE_WAVE)
1072 WX_ARG_ENABLE(fraction,      [  --enable-fraction       use wxFraction class], wxUSE_FRACTION)
1073 WX_ARG_ENABLE(dynlib,        [  --enable-dynlib         use wxLibrary class for DLL loading], wxUSE_DYNLIB_CLASS)
1074 WX_ARG_ENABLE(longlong,      [  --enable-longlong       use wxLongLong class], wxUSE_LONGLONG)
1075 WX_ARG_ENABLE(geometry,      [  --enable-geometry       use geometry class], wxUSE_GEOMETRY)
1076 WX_ARG_ENABLE(log,           [  --enable-log            use logging system], wxUSE_LOG)
1077 WX_ARG_ENABLE(streams,       [  --enable-streams        use wxStream etc classes], wxUSE_STREAMS)
1078 WX_ARG_ENABLE(file,          [  --enable-file           use wxFile classes], wxUSE_FILE)
1079 WX_ARG_ENABLE(textfile,      [  --enable-textfile       use wxTextFile classes], wxUSE_TEXTFILE)
1080 WX_ARG_ENABLE(unicode,       [  --enable-unicode        compile wxString with Unicode support], wxUSE_UNICODE)
1081 WX_ARG_ENABLE(wcsrtombs,     [  --enable-wcsrtombs      use wcsrtombs instead of buggy (GNU libc1/Linux libc5) wcstombs], wxUSE_WCSRTOMBS)
1082 WX_ARG_ENABLE(wxprintfv,     [  --enable-wxprintfv      use wxWindows implementation of vprintf()], wxUSE_EXPERIMENTAL_PRINTF)
1083 WX_ARG_ENABLE(std_iostreams, [  --enable-std_iostreams  use standard C++ stream classes], wxUSE_STD_IOSTREAM)
1084 WX_ARG_ENABLE(filesystem,    [  --enable-filesystem     use virtual file systems classes], wxUSE_FILESYSTEM)
1085 WX_ARG_ENABLE(fs_inet,       [  --enable-fs_inet        use virtual HTTP/FTP filesystems], wxUSE_FS_INET)
1086 WX_ARG_ENABLE(fs_zip,        [  --enable-fs_zip         use virtual ZIP filesystems], wxUSE_FS_ZIP)
1087 WX_ARG_ENABLE(zipstream,     [  --enable-zipstream      use wxZipInputStream], wxUSE_ZIPSTREAM)
1088
1089 WX_ARG_ENABLE(catch_segvs,   [  --enable-catch_segvs    catch signals and pass them to wxApp::OnFatalException], wxUSE_ON_FATAL_EXCEPTION)
1090
1091 dnl ---------------------------------------------------------------------------
1092 dnl "big" options (i.e. those which change a lot of things throughout the library)
1093 dnl ---------------------------------------------------------------------------
1094
1095 WX_ARG_ENABLE(threads,     [  --enable-threads        use threads], wxUSE_THREADS)
1096 WX_ARG_ENABLE(serial,      [  --enable-serial         use class serialization], wxUSE_SERIAL)
1097
1098 if test "$wxUSE_GUI" = "yes"; then
1099
1100 dnl ---------------------------------------------------------------------------
1101 dnl "big" GUI options
1102 dnl ---------------------------------------------------------------------------
1103
1104 WX_ARG_ENABLE(docview,     [  --enable-docview        use document view architecture], wxUSE_DOC_VIEW_ARCHITECTURE)
1105 WX_ARG_ENABLE(help,        [  --enable-help           use help (using external browser at present)], wxUSE_HELP)
1106 WX_ARG_ENABLE(constraints, [  --enable-constraints    use layout-constraints system], wxUSE_CONSTRAINTS)
1107 WX_ARG_ENABLE(printarch,   [  --enable-printarch      use printing architecture], wxUSE_PRINTING_ARCHITECTURE)
1108 WX_ARG_ENABLE(mdi,         [  --enable-mdi            use multiple document interface architecture], wxUSE_MDI_ARCHITECTURE)
1109
1110 dnl ---------------------------------------------------------------------------
1111 dnl PostScript options
1112 dnl ---------------------------------------------------------------------------
1113 WX_ARG_ENABLE(postscript,  [  --enable-postscript     use wxPostscriptDC device context (default for gtk+)], wxUSE_POSTSCRIPT)
1114
1115 dnl VZ: these options seem to be always on, if someone wants to change it please do
1116 dnl WX_ARG_ENABLE(PS-normalized,    [  --enable-PS-normalized  use normalized PS fonts], dnl             wxUSE_NORMALIZED_PS_FONTS)
1117 dnl WX_ARG_ENABLE(afmfonts,        [  --enable-afmfonts       use Adobe Font Metric Font table], dnl             wxUSE_AFM_FOR_POSTSCRIPT)
1118
1119 dnl ---------------------------------------------------------------------------
1120 dnl resources
1121 dnl ---------------------------------------------------------------------------
1122 WX_ARG_ENABLE(prologio,    [  --enable-prologio       use Prolog IO library], wxUSE_PROLOGIO)
1123 WX_ARG_ENABLE(resources,   [  --enable-resources      use wxWindows resources], wxUSE_RESOURCES)
1124
1125 WX_ARG_ENABLE(xresources,  [  --enable-xresources     use X resources for save (default for gtk+)], wxUSE_X_RESOURCES)
1126
1127 dnl ---------------------------------------------------------------------------
1128 dnl IPC &c
1129 dnl ---------------------------------------------------------------------------
1130
1131 WX_ARG_ENABLE(clipboard,   [  --enable-clipboard      use wxClipboard classes], wxUSE_CLIPBOARD)
1132 WX_ARG_ENABLE(dnd,         [  --enable-dnd            use Drag'n'Drop classes], wxUSE_DRAG_AND_DROP)
1133 WX_ARG_ENABLE(metafile,    [  --enable-metafile       use win32 metafiles], wxUSE_METAFILE)
1134
1135 dnl TODO: doesn't work yet
1136 WX_ARG_ENABLE(wxtree,      [  --enable-wxtree         make wxTree library], wxUSE_WXTREE)
1137
1138 dnl ---------------------------------------------------------------------------
1139 dnl optional GUI controls (in alphabetical order except the first one)
1140 dnl ---------------------------------------------------------------------------
1141
1142 WX_ARG_ENABLE(controls,    [  --enable-controls       use all usual controls], wxUSE_CONTROLS)
1143
1144 dnl even with --enable-controls, some may be disabled by giving
1145 dnl --disable-<control> later on the command line - but by default all will be
1146 dnl used (and vice versa)
1147 if test "$wxUSE_CONTROLS" = "yes"; then
1148   DEFAULT_wxUSE_ACCEL=yes
1149   DEFAULT_wxUSE_CARET=yes
1150   DEFAULT_wxUSE_COMBOBOX=yes
1151   DEFAULT_wxUSE_BMPBUTTON=yes
1152   DEFAULT_wxUSE_CHECKBOX=yes
1153   DEFAULT_wxUSE_CHECKLISTBOX=yes
1154   DEFAULT_wxUSE_CHOICE=yes
1155   DEFAULT_wxUSE_GAUGE=yes
1156   DEFAULT_wxUSE_GRID=yes
1157   DEFAULT_wxUSE_NEW_GRID=yes
1158   DEFAULT_wxUSE_IMAGLIST=yes
1159   DEFAULT_wxUSE_LISTBOX=yes
1160   DEFAULT_wxUSE_LISTCTRL=yes
1161   DEFAULT_wxUSE_NOTEBOOK=yes
1162   DEFAULT_wxUSE_RADIOBOX=yes
1163   DEFAULT_wxUSE_RADIOBTN=yes
1164   DEFAULT_wxUSE_SASH=yes
1165   DEFAULT_wxUSE_SCROLLBAR=yes
1166   DEFAULT_wxUSE_SLIDER=yes
1167   DEFAULT_wxUSE_SPINBTN=yes
1168   DEFAULT_wxUSE_SPINCTRL=yes
1169   DEFAULT_wxUSE_SPLITTER=yes
1170   DEFAULT_wxUSE_STATBMP=yes
1171   DEFAULT_wxUSE_STATBOX=yes
1172   DEFAULT_wxUSE_STATLINE=yes
1173   DEFAULT_wxUSE_STATUSBAR=yes
1174   DEFAULT_wxUSE_TAB_DIALOG=yes
1175   DEFAULT_wxUSE_TOGGLEBTN=yes
1176   DEFAULT_wxUSE_TOOLBAR=yes
1177   DEFAULT_wxUSE_TOOLBAR_NATIVE=yes
1178   DEFAULT_wxUSE_TOOLBAR_SIMPLE=yes
1179   DEFAULT_wxUSE_TOOLTIPS=yes
1180   DEFAULT_wxUSE_TREECTRL=yes
1181 elif test "$wxUSE_CONTROLS" = "no"; then
1182   DEFAULT_wxUSE_ACCEL=no
1183   DEFAULT_wxUSE_CARET=no
1184   DEFAULT_wxUSE_COMBOBOX=no
1185   DEFAULT_wxUSE_BMPBUTTON=no
1186   DEFAULT_wxUSE_CHECKBOX=no
1187   DEFAULT_wxUSE_CHECKLISTBOX=no
1188   DEFAULT_wxUSE_CHOICE=no
1189   DEFAULT_wxUSE_GAUGE=no
1190   DEFAULT_wxUSE_GRID=no
1191   DEFAULT_wxUSE_NEW_GRID=no
1192   DEFAULT_wxUSE_IMAGLIST=no
1193   DEFAULT_wxUSE_LISTBOX=no
1194   DEFAULT_wxUSE_LISTCTRL=no
1195   DEFAULT_wxUSE_NOTEBOOK=no
1196   DEFAULT_wxUSE_RADIOBOX=no
1197   DEFAULT_wxUSE_RADIOBTN=no
1198   DEFAULT_wxUSE_SASH=no
1199   DEFAULT_wxUSE_SCROLLBAR=no
1200   DEFAULT_wxUSE_SLIDER=no
1201   DEFAULT_wxUSE_SPINBTN=no
1202   DEFAULT_wxUSE_SPINCTRL=no
1203   DEFAULT_wxUSE_SPLITTER=no
1204   DEFAULT_wxUSE_STATBMP=no
1205   DEFAULT_wxUSE_STATBOX=no
1206   DEFAULT_wxUSE_STATLINE=no
1207   DEFAULT_wxUSE_STATUSBAR=no
1208   DEFAULT_wxUSE_TAB_DIALOG=no
1209   DEFAULT_wxUSE_TOGGLEBTN=no
1210   DEFAULT_wxUSE_TOOLBAR=no
1211   DEFAULT_wxUSE_TOOLBAR_NATIVE=no
1212   DEFAULT_wxUSE_TOOLBAR_SIMPLE=no
1213   DEFAULT_wxUSE_TOOLTIPS=no
1214   DEFAULT_wxUSE_TREECTRL=no
1215 fi
1216
1217 WX_ARG_ENABLE(accel,       [  --enable-accel          use accelerators], wxUSE_ACCEL)
1218 WX_ARG_ENABLE(caret,       [  --enable-caret          use wxCaret class], wxUSE_CARET)
1219 WX_ARG_ENABLE(bmpbutton,   [  --enable-bmpbutton      use wxBitmapButton class], wxUSE_BMPBUTTON)
1220 WX_ARG_ENABLE(checkbox,    [  --enable-checkbox       use wxCheckBox class], wxUSE_CHECKBOX)
1221 WX_ARG_ENABLE(checklst,    [  --enable-checklst       use wxCheckListBox (listbox with checkboxes) class], wxUSE_CHECKLST)
1222 WX_ARG_ENABLE(choice,      [  --enable-choice         use wxChoice class], wxUSE_CHOICE)
1223 WX_ARG_ENABLE(combobox,    [  --enable-combobox       use wxComboBox classes], wxUSE_COMBOBOX)
1224 WX_ARG_ENABLE(gauge,       [  --enable-gauge          use wxGauge class], wxUSE_GAUGE)
1225 WX_ARG_ENABLE(grid,        [  --enable-grid           use wxGrid class], wxUSE_GRID)
1226 WX_ARG_ENABLE(newgrid,     [  --enable-newgrid        use new wxGrid class], wxUSE_NEW_GRID)
1227 WX_ARG_ENABLE(imaglist,    [  --enable-imaglist       use wxImageList class], wxUSE_IMAGLIST)
1228 WX_ARG_ENABLE(listbox,     [  --enable-listbox        use wxListBox class], wxUSE_LISTBOX)
1229 WX_ARG_ENABLE(listctrl,    [  --enable-listctrl       use wxListCtrl class], wxUSE_LISTCTRL)
1230 WX_ARG_ENABLE(notebook,    [  --enable-notebook       use wxNotebook class], wxUSE_NOTEBOOK)
1231 WX_ARG_ENABLE(radiobox,    [  --enable-radiobox       use wxRadioBox class], wxUSE_RADIOBOX)
1232 WX_ARG_ENABLE(radiobtn,    [  --enable-radiobtn       use wxRadioButton class], wxUSE_RADIOBTN)
1233 WX_ARG_ENABLE(sash,        [  --enable-sash           use wxSashWindow class], wxUSE_SASH)
1234 WX_ARG_ENABLE(scrollbar,   [  --enable-scrollbar      use wxScrollBar class and scrollable windows], wxUSE_SCROLLBAR)
1235 WX_ARG_ENABLE(slider,      [  --enable-slider         use wxSlider class], wxUSE_SLIDER)
1236 WX_ARG_ENABLE(spinbtn,     [  --enable-spinbtn        use wxSpinButton class], wxUSE_SPINBTN)
1237 WX_ARG_ENABLE(spinctrl,    [  --enable-spinctrl       use wxSpinCtrl class], wxUSE_SPINCTRL)
1238 WX_ARG_ENABLE(splitter,    [  --enable-splitter       use wxSplitterWindow class], wxUSE_SPLITTER)
1239 WX_ARG_ENABLE(statbmp,     [  --enable-statbmp        use wxStaticBitmap class], wxUSE_STATBMP)
1240 WX_ARG_ENABLE(statbox,     [  --enable-statbox        use wxStaticBox class], wxUSE_STATBOX)
1241 WX_ARG_ENABLE(statline,    [  --enable-statline       use wxStaticLine class], wxUSE_STATLINE)
1242 WX_ARG_ENABLE(statusbar,   [  --enable-statusbar      use wxStatusBar class], wxUSE_STATUSBAR)
1243 WX_ARG_ENABLE(tabdialog,   [  --enable-tabdialog      use wxTabControl class], wxUSE_TABDIALOG)
1244 WX_ARG_ENABLE(togglebtn,   [  --enable-togglebtn      use wxToggleButton class], wxUSE_TOGGLEBTN)
1245 WX_ARG_ENABLE(toolbar,     [  --enable-toolbar        use wxToolBar class], wxUSE_TOOLBAR)
1246 WX_ARG_ENABLE(tbarnative,  [  --enable-tbarnative     use native wxToolBar class], wxUSE_TOOLBAR_NATIVE)
1247 WX_ARG_ENABLE(tbarsmpl,    [  --enable-tbarsmpl       use wxToolBarSimple class], wxUSE_TOOLBAR_SIMPLE)
1248 WX_ARG_ENABLE(treectrl,    [  --enable-treectrl       use wxTreeCtrl class], wxUSE_TREECTRL)
1249
1250 dnl ---------------------------------------------------------------------------
1251 dnl misc GUI options
1252 dnl ---------------------------------------------------------------------------
1253
1254 WX_ARG_ENABLE(commondlg,   [  --enable-commondlg      use common dialogs (wxDirDialog, wxProgressDialog, wxTextDialog, ...)], wxUSE_COMMONDLGS)
1255 WX_ARG_ENABLE(dirdlg,      [  --enable-dirdlg         use wxDirDialog], wxUSE_DIRDLG)
1256 WX_ARG_ENABLE(textdlg,     [  --enable-textdlg        use wxTextDialog], wxUSE_TEXTDLG)
1257 WX_ARG_ENABLE(tipdlg,      [  --enable-tipdlg         use startup tips], wxUSE_STARTUP_TIPS)
1258 WX_ARG_ENABLE(progressdlg, [  --enable-progressdlg    use wxProgressDialog], wxUSE_PROGRESSDLG)
1259 WX_ARG_ENABLE(miniframe,   [  --enable-miniframe      use wxMiniFrame class], wxUSE_MINIFRAME)
1260 WX_ARG_ENABLE(html,        [  --enable-html           use wxHTML sub-library], wxUSE_HTML)
1261 WX_ARG_ENABLE(tooltips,    [  --enable-tooltips       use wxToolTip class], wxUSE_TOOLTIPS)
1262 WX_ARG_ENABLE(splines,     [  --enable-splines        use spline drawing code], wxUSE_SPLINES)
1263 WX_ARG_ENABLE(validators,  [  --enable-validators     use wxValidator and derived classes], wxUSE_VALIDATORS)
1264 WX_ARG_ENABLE(busyinfo,    [  --enable-busyinfo       use wxBusyInfo], wxUSE_BUSYINFO)
1265 WX_ARG_ENABLE(joystick,    [  --enable-joystick       compile in joystick support (Linux only)], wxUSE_JOYSTICK)
1266
1267 dnl ---------------------------------------------------------------------------
1268 dnl support for image formats that do not rely on external library
1269 dnl ---------------------------------------------------------------------------
1270
1271 WX_ARG_ENABLE(image,       [  --enable-image          use wxImage class], wxUSE_IMAGE)
1272 WX_ARG_ENABLE(gif,         [  --enable-gif            use gif images (GIF file format)], wxUSE_GIF)
1273 WX_ARG_ENABLE(pcx,         [  --enable-pcx            use pcx images (PCX file format)], wxUSE_PCX)
1274 WX_ARG_ENABLE(pnm,         [  --enable-pnm            use pnm images (PNM file format)], wxUSE_PNM)
1275 WX_ARG_ENABLE(pnm,         [  --enable-xpm            use xpm images (XPM file format)], wxUSE_XPM)
1276
1277 fi
1278 dnl for GUI only
1279
1280 dnl cache the options values before (may be) aborting below
1281 WX_ARG_CACHE_FLUSH
1282
1283 dnl check that no more than one toolkit is given and that if none are given that
1284 dnl we have a default one
1285
1286 AC_MSG_CHECKING(for toolkit)
1287
1288 if test "$wxUSE_GUI" = "yes"; then
1289
1290 if test "$USE_BEOS" = 1; then
1291     AC_MSG_ERROR([BeOS GUI is not supported yet, use --disable-gui])
1292 fi
1293
1294 if test "$TOOLKIT_GIVEN" = 1; then
1295   dnl convert "yes" to 1 and "no" to 0
1296   for toolkit in `echo $ALL_TOOLKITS`; do
1297     var=wxUSE_$toolkit
1298     eval "value=\$${var}"
1299     eval "$var=`echo \$value | sed -e "s/yes/1/" -e "s/no/0/"`"
1300   done
1301 else
1302   dnl try to guess the most apropriate toolkit for this platform
1303   for toolkit in `echo $ALL_TOOLKITS`; do
1304     if test "$has_toolkit_in_cache" != 1; then
1305       var=DEFAULT_DEFAULT_wxUSE_$toolkit
1306     else
1307       var=DEFAULT_wxUSE_$toolkit
1308     fi
1309     eval "wxUSE_$toolkit=\$${var}"
1310   done
1311 fi
1312
1313 dnl we suppose that expr exists...
1314 NUM_TOOLKITS=`expr ${wxUSE_GTK:-0} + ${wxUSE_MOTIF:-0} + ${wxUSE_MAC:-0} + ${wxUSE_WINE:-0} + ${wxUSE_MINGW:-0} + ${wxUSE_CYGWIN:-0}`
1315
1316 dnl Allow wxUSE_PM only for OS/2 with EMX.
1317 dnl Path separator; ':' for unix.
1318 dnl Stem for flex output; lexyy for OS/2, lex.yy otherwise
1319 dnl Extension for programs; '.exe' for OS/2 and msw builds (set later).
1320 case "${host}" in
1321   *-pc-os2_emx )
1322     NUM_TOOLKITS=`expr ${NUM_TOOLKITS} + ${wxUSE_PM:-0}`
1323     # PATH_IFS is autodetected by OS/2's configure (usually ';')
1324     LEX_STEM="lexyy"
1325   ;;
1326   *)
1327     PATH_IFS=':'
1328     LEX_STEM="lex.yy"
1329   ;;
1330 esac
1331
1332 case "$NUM_TOOLKITS" in
1333   1)
1334   ;;
1335   0)
1336     AC_MSG_ERROR(Please specify a toolkit - cannot determine the default for ${host})
1337   ;;
1338   *)
1339     AC_MSG_ERROR(Please specify at most one toolkit (may be some are cached?))
1340 esac
1341
1342 dnl cache the wxUSE_<TOOLKIT> values too
1343 for toolkit in `echo $ALL_TOOLKITS`; do
1344   var=wxUSE_$toolkit
1345   eval "value=\$${var}"
1346   if test "x$value" != x; then
1347     cache_var=CACHE_$toolkit
1348     eval "cache=\$${cache_var}"
1349     if test "$cache" = 1; then
1350       echo "$var=$value" >> ${wx_arg_cache_file}
1351     fi
1352     if test "$value" = 1; then
1353       AC_MSG_RESULT(`echo $toolkit | tr [[A-Z]] [[a-z]]`)
1354     fi
1355   fi
1356 done
1357
1358 dnl from "if wxUSE_GUI"
1359 else
1360     PATH_IFS=':'
1361     AC_MSG_RESULT(base only)
1362 fi
1363
1364 dnl ---------------------------------------------------------------------------
1365 dnl Checks for programs
1366 dnl ---------------------------------------------------------------------------
1367
1368 dnl flush the cache because checking for programs might abort
1369 AC_CACHE_SAVE
1370
1371 dnl cross-compiling support: we're cross compiling if the build system is
1372 dnl different from the target one (assume host and target be always the same)
1373 if test "$build" != "$host" ; then
1374     CC=$host_alias-gcc
1375     CXX=$host_alias-c++
1376     AR=$host_alias-ar
1377     RANLIB=$host_alias-ranlib
1378     DLLTOOL=$host_alias-dlltool
1379     RESCOMP=$host_alias-windres
1380     LD=$host_alias-ld
1381     NM=$host_alias-nm
1382     STRIP=$host_alias-strip
1383 fi
1384
1385 dnl C-compiler checks
1386 dnl   defines CC with the compiler to use
1387 dnl   defines GCC with yes if using gcc
1388 dnl   defines GCC empty if not using gcc
1389 dnl   defines CFLAGS
1390 AC_PROG_CC
1391
1392 CFLAGS=`echo "$CFLAGS" | sed 's/-g//g'`
1393
1394 dnl what is the c-preprocessor
1395 dnl   defines CPP with the c-preprocessor
1396 AC_PROG_CPP
1397
1398 dnl is -traditional needed for correct compilations
1399 dnl   adds -traditional for gcc if needed
1400 AC_PROG_GCC_TRADITIONAL
1401
1402 AC_LANG_SAVE
1403 AC_LANG_CPLUSPLUS
1404
1405 dnl C++-compiler checks
1406 dnl   defines CXX with the compiler to use
1407 dnl   defines GXX with yes if using gxx
1408 dnl   defines GXX empty if not using gxx
1409 dnl   defines CXXFLAGS
1410 AC_PROG_CXX
1411
1412 dnl what is the C++-preprocessor
1413 dnl   defines CXXCPP with the C++-preprocessor
1414 AC_PROG_CXXCPP
1415
1416 CXXFLAGS=`echo "$CXXFLAGS" | sed 's/-g//g'`
1417
1418 AC_LANG_RESTORE
1419
1420 dnl ranlib command
1421 dnl   defines RANLIB with the appropriate command
1422 AC_PROG_RANLIB
1423
1424 dnl ar command
1425 dnl   defines AR with the appropriate command
1426 AC_CHECK_PROG(AR, ar, ar, ar)
1427
1428 dnl install checks
1429 dnl   defines INSTALL with the appropriate command
1430 AC_PROG_INSTALL
1431
1432 dnl strip command
1433 dnl   defines STRIP as strip or nothing if not found
1434 AC_CHECK_PROG(STRIP, strip, strip, true)
1435
1436 dnl check if VPATH works
1437 AC_MSG_CHECKING("make for VPATH support")
1438 dnl create Makefile
1439 cat - << EOF > confMake
1440 check : file
1441         cp \$? \$@
1442         cp \$? final_file
1443 EOF
1444
1445 if test ! -d sub ; then
1446   mkdir sub
1447 fi
1448 echo dummy > sub/file
1449 ${MAKE-make} -f confMake VPATH=sub 2>&5 > /dev/null
1450 RESULT=$?
1451 rm -f sub/file check final_file confMake
1452 rmdir sub
1453 if test "$RESULT" = 0; then
1454   AC_MSG_RESULT(yes)
1455 else
1456   AC_MSG_RESULT(no)
1457   AC_MSG_ERROR(
1458 You need a make-utility that is able to use the variable
1459 VPATH correctly.
1460 If your version of make does not support VPATH correctly,
1461 please install GNU-make (possibly as gmake), and start
1462 configure with the following command:
1463 export MAKE=gmake; ./configure  for sh-type shells
1464 setenv MAKE gmake; ./configure  for csh-type shells
1465 Also please do remember to use gmake in this case every time
1466 you are trying to compile.
1467 )
1468 fi
1469
1470 dnl YACC checks
1471 dnl   defines YACC with the appropriate command
1472 AC_PROG_YACC
1473
1474 dnl LEX checks
1475 dnl   defines LEX with the appropriate command
1476 dnl   defines LEXLIB with the appropriate library
1477 AC_PROG_LEX
1478
1479 dnl needed for making link to setup.h
1480 AC_PROG_LN_S
1481
1482 dnl ---------------------------------------------------------------------------
1483 dnl Define search path for includes and libraries: all headers and libs will be
1484 dnl looked for in all directories of this path
1485 dnl ---------------------------------------------------------------------------
1486
1487 dnl notice that /usr/include should not be in this list, otherwise it breaks
1488 dnl compilation on Solaris/gcc because standard headers are included instead
1489 dnl of the gcc ones (correction: it *is* needed for broken AIX compiler - but
1490 dnl do put it last!)
1491 dnl
1492 dnl Also try to put all directories which may contain X11R6 before those which
1493 dnl may contain X11R5/4 - we want to use R6 on machines which have both!
1494 SEARCH_INCLUDE="\
1495     /usr/local/include        \
1496                               \
1497     /usr/Motif-1.2/include    \
1498     /usr/Motif-2.1/include    \
1499                               \
1500     /usr/include/Motif1.2     \
1501     /opt/xpm/include/X11      \
1502     /opt/GBxpm/include/       \
1503     /opt/GBxpm/X11/include/   \
1504                               \
1505     /usr/Motif1.2/include     \
1506     /usr/dt/include           \
1507     /usr/openwin/include      \
1508                               \
1509     /usr/include/Xm           \
1510                               \
1511     /usr/X11R6/include        \
1512     /usr/X11R6.4/include      \
1513     /usr/X11R5/include        \
1514     /usr/X11R4/include        \
1515                               \
1516     /usr/include/X11R6        \
1517     /usr/include/X11R5        \
1518     /usr/include/X11R4        \
1519                               \
1520     /usr/local/X11R6/include  \
1521     /usr/local/X11R5/include  \
1522     /usr/local/X11R4/include  \
1523                               \
1524     /usr/local/include/X11R6  \
1525     /usr/local/include/X11R5  \
1526     /usr/local/include/X11R4  \
1527                               \
1528     /usr/X11/include          \
1529     /usr/include/X11          \
1530     /usr/local/X11/include    \
1531     /usr/local/include/X11    \
1532                               \
1533     /usr/X386/include         \
1534     /usr/x386/include         \
1535     /usr/XFree86/include/X11  \
1536                               \
1537     X:/XFree86/include        \
1538     X:/XFree86/include/X11    \
1539                               \
1540     /usr/include/gtk          \
1541     /usr/local/include/gtk    \
1542     /usr/include/glib         \
1543     /usr/local/include/glib   \
1544                               \
1545     /usr/include/qt           \
1546     /usr/local/include/qt     \
1547                               \
1548     /usr/include/windows      \
1549     /usr/include/wine         \
1550     /usr/local/include/wine   \
1551                               \
1552     /usr/unsupported/include  \
1553     /usr/athena/include       \
1554     /usr/local/x11r5/include  \
1555     /usr/lpp/Xamples/include  \
1556                               \
1557     /usr/openwin/share/include \
1558                                \
1559     /usr/include"
1560
1561 SEARCH_LIB="`echo "$SEARCH_INCLUDE" | sed s/include/lib/g` "
1562
1563 dnl ------------------------------------------------------------------------
1564 dnl Check for libraries
1565 dnl ------------------------------------------------------------------------
1566
1567 dnl flush the cache because checking for libraries below might abort
1568 AC_CACHE_SAVE
1569
1570 dnl ----------------------------------------------------------------
1571 dnl search for toolkit (widget sets)
1572 dnl ----------------------------------------------------------------
1573
1574 AFMINSTALL=
1575
1576 if test "$wxUSE_GUI" = "yes"; then
1577
1578 USE_GUI=1
1579
1580 TOOLKIT=
1581 TOOLKIT_INCLUDE=
1582
1583 GUI_TK_LIBRARY=
1584 GUI_TK_LINK=
1585
1586 WXGTK12=
1587 WXGTK127=
1588 WXGTK20=
1589
1590 WXWINE=
1591
1592 if test "$wxUSE_CYGWIN" = 1 || test "$wxUSE_MINGW" = 1 ; then
1593     if test "$cross_compiling" = "yes" ; then
1594         dnl mingw32 will find them even if they're not in one of standard paths
1595         AC_MSG_WARN(skipping windows.h check for cross-compilation)
1596     else
1597         AC_MSG_CHECKING(for Windows headers)
1598         WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
1599         if test "$ac_find_includes" != "" ; then
1600             AC_MSG_RESULT(found $ac_find_includes)
1601             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes"
1602         else
1603             AC_MSG_RESULT(no)
1604             AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
1605         fi
1606     fi
1607
1608     INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS msw"
1609     dnl --- Quick & Dirty ; link against most/all libraries
1610     dnl --- This will bloat the executable, but it'll work for now...
1611     LIBS="$LIBS -lkernel32 -luser32 -lgdi32 -lcomdlg32 -lwinspool -lwinmm -lshell32 -lcomctl32 -lctl3d32 -lcrtdll -ladvapi32 -lwsock32"
1612
1613     dnl add extra odbc libs if we have compiled in odbc
1614     if test "$wxUSE_ODBC" = "yes" ; then
1615         LIBS="$LIBS -lodbc32 -lole32 -loleaut32"
1616     fi
1617
1618     dnl -mwindows is needed to avoid that spawning of a console window
1619     if test "$wxUSE_MINGW" = 1; then
1620         LDFLAGS="$LDFLAGS -mwindows"
1621     fi
1622
1623     TOOLKIT=MSW
1624     GUIDIST=MSW_DIST
1625
1626     dnl we should calculate these
1627     RCINCSWITCH="--include-dir"
1628     RCDEFSWITCH="--define"
1629     RCPREPROCESSOR="--preprocessor \"\$(CC) -c -E -xc-header -DRC_INVOKED\""
1630     RCINPUTSWITCH="-i"
1631     RCOUTPUTSWITCH="-o"
1632     RESFLAGS="$RCPREPROCESSOR $RCINCSWITCH \$(top_srcdir)/include $RCINCSWITCH \$(top_srcdir)/\$(program_dir) $RCDEFSWITCH __WIN32__ $RCDEFSWITCH __WIN95__ $RCDEFSWITCH __GNUWIN32__"
1633
1634     dnl set optinal RES_PROGRAM_OPT to RES_PROGRAM
1635     RESPROGRAM="\$(RES_PROGRAM)"
1636
1637 fi
1638
1639 if test "$wxUSE_GTK" = 1; then
1640     dnl avoid calling AM_PATH_GTK twice, so check first for the newer version
1641     dnl and only then, if it wasn't found, for an older one
1642     AM_PATH_GTK_2_0(1.3.1, WXGTK20=1,[
1643       AM_PATH_GTK(1.2.7, WXGTK127=1)
1644       AM_PATH_GTK(1.2.3, WXGTK12=1)
1645     ], gthread)
1646
1647     if test "$WXGTK12" != 1 -a "$WXGTK20" != 1; then
1648         AC_MSG_ERROR([
1649             Please check that gtk-config is in path, the directory
1650             where GTK+ libraries are installed (returned by
1651             'gtk-config --libs' command) is in LD_LIBRARY_PATH or
1652             equivalent variable and GTK+ is version 1.2.3 or above.
1653         ])
1654     fi
1655
1656     TOOLKIT_INCLUDE="$GTK_CFLAGS"
1657
1658 dnl Appending gthreads as it was done here is not portable, instead
1659 dnl we now call "gtk-config --libs gthread" which sets the right library
1660 dnl name for us. The following hacks are no longer required.
1661
1662     GUI_TK_LIBRARY="$GTK_LIBS"
1663
1664 dnl dnl On FreeBSD, the libs are called gtk12 etc, so we must append gthread12
1665 dnl    echo $GTK_LIBS | fgrep -q "glib12"
1666 dnl    if test $? = 0  ; then
1667 dnl       GUI_TK_LIBRARY="$GTK_LIBS -gthread12"
1668 dnl    else
1669 dnl       GUI_TK_LIBRARY="$GTK_LIBS -lgthread"
1670 dnl    fi
1671
1672     AFMINSTALL=afminstall
1673     TOOLKIT=GTK
1674     GUIDIST=GTK_DIST
1675
1676     dnl test for XIM support in libgdk
1677     AC_CHECK_LIB(gdk, gdk_im_open, AC_DEFINE(HAVE_XIM))
1678 fi
1679
1680 if test "$wxUSE_WINE" = 1; then
1681     AC_MSG_CHECKING(for WINE includes)
1682     WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, windows.h)
1683     if test "$ac_find_includes" != "" ; then
1684         AC_MSG_RESULT(found $ac_find_includes)
1685         TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE -I$ac_find_includes"
1686     else
1687         AC_MSG_RESULT(no)
1688         AC_MSG_ERROR(please set CFLAGS to contain the location of windows.h)
1689     fi
1690
1691     XPM_LINK=""
1692     AC_MSG_CHECKING(for Xpm library)
1693     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
1694     if test "$ac_find_libraries" != "" ; then
1695         GUI_TK_LIBRARY="-L$ac_find_libraries"
1696         XPM_LINK="-lXpm"
1697         AC_DEFINE(wxHAVE_LIB_XPM)
1698         AC_MSG_RESULT(found at $ac_find_libraries)
1699     else
1700         AC_MSG_RESULT(no)
1701         AC_MSG_WARN(library will be compiled without support for images in XPM format)
1702     fi
1703
1704     MESA_LINK=""
1705     AC_MSG_CHECKING(for Mesa library)
1706     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,MesaGL)
1707     if test "$ac_find_libraries" != "" ; then
1708         GUI_TK_LIBRARY="$GUI_TK_LIBRARY -L$ac_find_libraries"
1709         MESA_LINK="-lMesaGL"
1710         AC_MSG_RESULT(found at $ac_find_libraries)
1711     else
1712         AC_MSG_ERROR(no)
1713     fi
1714
1715     GUI_TK_LINK="-lwine $MESA_LINK $XPM_LINK -lXxf86dga -lXxf86vm -lSM -lICE -lXext -lXmu -lX11 -lncurses"
1716     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
1717     WXWINE=1
1718     TOOLKIT=MSW
1719     GUIDIST=MSW_DIST
1720 fi
1721
1722 dnl use standard macros to check for X headers/libs, this brings support
1723 dnl for the standard configure options --x-includes and --x-libraries;
1724 dnl the path to the X headers/libs is not only needed for motif, but also
1725 dnl by the OpenGL and XKBlib.h checks further down
1726
1727 AC_PATH_XTRA
1728 CPPFLAGS="$CPPFLAGS $X_CFLAGS"
1729 LDFLAGS="$LDFLAGS $X_LIBS"
1730
1731 if test "$wxUSE_MOTIF" = 1; then
1732     if test "$no_x" = "yes"; then
1733       AC_MSG_ERROR(X11 not found, please use --x-includes and/or --x-libraries options)
1734     fi
1735
1736     GUI_TK_LIBRARY="$X_LIBS"
1737     TOOLKIT_INCLUDE="$X_CFLAGS"
1738
1739     AFMINSTALL=afminstall
1740
1741     dnl manual check for X11 headers/libs
1742     dnl
1743     dnl    AC_MSG_CHECKING(for X11 headers)
1744     dnl    WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, X11/Intrinsic.h)
1745     dnl    if test "$ac_find_includes" != "" ; then
1746     dnl        AC_MSG_RESULT(found $ac_find_includes)
1747     dnl    else
1748     dnl        AC_MSG_RESULT(no)
1749     dnl        AC_MSG_ERROR(please set CFLAGS to contain the location of X11/Intrinsic.h)
1750     dnl    fi
1751     dnl
1752     dnl    AC_MSG_CHECKING(for X11 libraries)
1753     dnl    WX_PATH_FIND_LIBRARIES($SEARCH_LIB, X11)
1754     dnl    if test "$ac_find_libraries" != "" ; then
1755     dnl        WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
1756     dnl        WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
1757     dnl
1758     dnl        GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
1759     dnl        TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
1760     dnl        AC_MSG_RESULT(found at $ac_find_libraries)
1761     dnl    else
1762     dnl        AC_MSG_RESULT(no)
1763     dnl        AC_MSG_ERROR(please set LDFLAGS to contain the location of libX11)
1764     dnl    fi
1765
1766     COMPILED_X_PROGRAM=0
1767
1768     AC_MSG_CHECKING(for Motif/Lesstif headers)
1769     WX_PATH_FIND_INCLUDES($SEARCH_INCLUDE, Xm/Xm.h)
1770     if test "$ac_find_includes" != "" ; then
1771         AC_MSG_RESULT(found $ac_find_includes)
1772     else
1773         AC_TRY_COMPILE(
1774             [
1775                 #include <Xm/Xm.h>
1776             ],
1777             [
1778                 int version;
1779
1780                 version = xmUseVersion;
1781             ],
1782             [
1783                 AC_MSG_RESULT(found in default search path)
1784                 COMPILED_X_PROGRAM=1
1785             ],
1786             [
1787                 AC_MSG_RESULT(no)
1788                 AC_MSG_ERROR(please set CFLAGS to contain the location of Xm/Xm.h)
1789             ]
1790         )
1791     fi
1792
1793     if test "$COMPILED_X_PROGRAM" = 0; then
1794         AC_MSG_CHECKING(for Motif/Lesstif library)
1795         WX_PATH_FIND_LIBRARIES($SEARCH_LIB, Xm)
1796         if test "$ac_find_libraries" != "" ; then
1797             WX_INCLUDE_PATH_EXIST($ac_find_includes, $TOOLKIT_INCLUDE)
1798             WX_LINK_PATH_EXIST($ac_find_libraries, $GUI_TK_LIBRARY)
1799
1800             GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
1801             TOOLKIT_INCLUDE="$TOOLKIT_INCLUDE $ac_path_to_include"
1802             AC_MSG_RESULT(found at $ac_find_libraries)
1803         else
1804             dnl it might happen that we found headers in one of the standard
1805             dnl paths but the libs are elsewhere - we do need to try to
1806             dnl compile a sample program then here
1807             AC_TRY_COMPILE(
1808                 [
1809                     #include <Xm/Xm.h>
1810                 ],
1811                 [
1812                     int version;
1813
1814                     version = xmUseVersion;
1815                 ],
1816                 [
1817                     AC_MSG_RESULT(found in default search path)
1818                     COMPILED_X_PROGRAM=1
1819                 ],
1820                 [
1821                     AC_MSG_RESULT(no)
1822                     AC_MSG_ERROR(please set LDFLAGS to contain the location of libXm)
1823                 ]
1824             )
1825         fi
1826     fi
1827
1828     dnl we don't need this as we used AC_PATH_XTRA above which does it for us
1829     dnl
1830     dnl dnl if we already compiled a sample program, X libs are surely there
1831     dnl if test "$COMPILED_X_PROGRAM" = 0; then
1832     dnl     AC_MSG_CHECKING(for Xt library)
1833     dnl     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xt)
1834     dnl     if test "$ac_find_libraries" != "" ; then
1835     dnl         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
1836     dnl         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
1837     dnl         AC_MSG_RESULT(found at $ac_find_libraries)
1838     dnl     else
1839     dnl         AC_TRY_COMPILE
1840     dnl         (
1841     dnl             [
1842     dnl                 #include <X11/Intrinsic.h>
1843     dnl             ],
1844     dnl             [
1845     dnl                 char *p;
1846     dnl                 p = XtMalloc(5);
1847     dnl             ],
1848     dnl             [
1849     dnl                 AC_MSG_RESULT(found in default search path)
1850     dnl                 COMPILED_X_PROGRAM=1
1851     dnl             ],
1852     dnl             [
1853     dnl                 AC_MSG_RESULT(no)
1854     dnl                 AC_MSG_ERROR(please set LDFLAGS to contain the location of libXt)
1855     dnl             ]
1856     dnl         )
1857     dnl     fi
1858     dnl fi
1859
1860     XPM_LINK=""
1861     AC_MSG_CHECKING(for Xpm library)
1862     WX_PATH_FIND_LIBRARIES($SEARCH_LIB,Xpm)
1863     if test "$ac_find_libraries" != "" ; then
1864         WX_LINK_PATH_EXIST($ac_find_libraries,$GUI_TK_LIBRARY)
1865         GUI_TK_LIBRARY="$GUI_TK_LIBRARY $ac_path_to_link"
1866         XPM_LINK="-lXpm "
1867         AC_DEFINE(wxHAVE_LIB_XPM)
1868         AC_MSG_RESULT(found at $ac_find_libraries)
1869     else
1870         AC_TRY_COMPILE(
1871             [
1872                 #include <X11/xpm.h>
1873             ],
1874             [
1875                 int version;
1876
1877                 version = XpmLibraryVersion();
1878             ],
1879             [
1880             XPM_LINK="-lXpm "
1881             AC_DEFINE(wxHAVE_LIB_XPM)
1882                 AC_MSG_RESULT(found in default search path)
1883                 COMPILED_X_PROGRAM=0
1884             ],
1885             [
1886                 AC_MSG_RESULT(no)
1887                 AC_MSG_WARN(library will be compiled without support for images in XPM format)
1888             ]
1889         )
1890     fi
1891
1892     GUI_TK_LINK="-lXm $XPM_LINK -lXmu -lXext -lXt -lX11"
1893     GUI_TK_LIBRARY="$GUI_TK_LIBRARY $GUI_TK_LINK"
1894     TOOLKIT=MOTIF
1895     GUIDIST=MOTIF_DIST
1896 fi
1897
1898 if test "$wxUSE_MAC" = 1; then
1899     TOOLKIT=MAC
1900     dnl we can't call this MAC_DIST or autoconf thinks its a macro
1901     GUIDIST=MACX_DIST
1902 fi
1903
1904 if test "$wxUSE_PM" = 1; then
1905     TOOLKIT=PM
1906     GUIDIST=GTK_DIST
1907 fi
1908
1909 dnl the name of the directory where the files for this toolkit live
1910 if test "$TOOLKIT" != "PM" ; then
1911     TOOLKIT_DIR=`echo ${TOOLKIT} | tr "[[A-Z]]" "[[a-z]]"`
1912 else
1913     TOOLKIT_DIR="os2"
1914 fi
1915
1916     dnl the (base) name of the library and support files for this toolkit
1917     if test "$wxUSE_DEBUG_FLAG" = "yes"; then
1918         TOOLKIT_NAME="${TOOLKIT_DIR}d"
1919     else
1920         TOOLKIT_NAME="${TOOLKIT_DIR}"
1921     fi
1922
1923     dnl the symbol which allows conditional compilation for the given toolkit
1924     TOOLKIT_DEF="-D__WX${TOOLKIT}__"
1925
1926     dnl the name of the (libtool) library
1927     WX_LIBRARY="wx_${TOOLKIT_NAME}"
1928
1929     dnl the sources, their dependenices and the headers
1930     ALL_OBJECTS="\$(GUIOBJS) \$(COMMONOBJS) \$(GENERICOBJS) \$(UNIXOBJS) \$(HTMLOBJS) \$(OGLOBJS)"
1931
1932     dnl ODBC objects are Unix only
1933     if test "$TOOLKIT" != "MSW" -a "$wxUSE_ODBC" = "yes" ; then
1934         ALL_OBJECTS="${ALL_OBJECTS} \$(IODBCOBJS)"
1935     fi
1936
1937     if test "$wxUSE_LIBJPEG" = "yes" ; then
1938         ALL_OBJECTS="${ALL_OBJECTS} \$(JPEGOBJS)"
1939     fi
1940     if test "$wxUSE_LIBTIFF" = "yes" ; then
1941         ALL_OBJECTS="${ALL_OBJECTS} \$(TIFFOBJS)"
1942     fi
1943     if test "$wxUSE_LIBPNG" = "yes" ; then
1944         ALL_OBJECTS="${ALL_OBJECTS} \$(PNGOBJS)"
1945     fi
1946     if test "$wxUSE_ZLIB" = "yes" ; then
1947         ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
1948     fi
1949     if test "$wxUSE_FREETYPE" = "yes" ; then
1950         ALL_OBJECTS="${ALL_OBJECTS} \$(FREETYPEOBJS)"
1951     fi
1952     ALL_DEPFILES="\$(GUIDEPS) \$(COMMONDEPS) \$(GENERICDEPS) \$(UNIXDEPS) \$(HTMLDEPS) \$(OGLDEPS)"
1953
1954     PORT_FILES="src/\$(TOOLKITDIR)/files.lst"
1955     RPM_FILES="src/\$(TOOLKITDIR)/rpmfiles.lst"
1956     RPM_SPEC="wx\$(TOOLKIT).spec"
1957
1958     dnl distribute samples/demos/utils with GUI versions
1959     GUIDIST="${GUIDIST} SAMPLES_DIST DEMOS_DIST UTILS_DIST MISC_DIST"
1960     DISTDIR="wx\$(TOOLKIT)"
1961 else
1962     USE_GUI=0
1963
1964     dnl this may be (almost) unneccesary for wxBase now we use TOOLKIT_NAME
1965     TOOLKIT_DIR="base"
1966
1967     dnl the base name of the library and wxXXX-config files
1968     if test "$wxUSE_DEBUG_FLAG" = "yes"; then
1969         TOOLKIT_NAME="${TOOLKIT_DIR}d"
1970     else
1971         TOOLKIT_NAME="${TOOLKIT_DIR}"
1972     fi
1973
1974     TOOLKIT_DEF="-D__WXBASE__"
1975
1976     dnl the sources, their dependenices and the headers
1977     ALL_OBJECTS="\$(BASE_OBJS) \$(BASE_UNIX_OBJS)"
1978     ALL_DEPFILES="\$(BASE_DEPS) \$(BASE_UNIX_DEPS)"
1979
1980     if test "$wxUSE_ZLIB" = "yes" ; then
1981         ALL_OBJECTS="${ALL_OBJECTS} \$(ZLIBOBJS)"
1982     fi
1983
1984     dnl building wxBase only
1985     WX_LIBRARY="wx_${TOOLKIT_NAME}"
1986
1987     PORT_FILES="src/files.lst"
1988     RPM_FILES="src/rpmfiles.lst"
1989     RPM_SPEC="wxBase.spec"
1990
1991     dnl distribute only wxBase sources/headers
1992     GUIDIST="BASE_DIST"
1993     DISTDIR="wxBase"
1994 fi
1995
1996 dnl the name of the (libtool) library
1997 WX_LIBRARY_NAME="lib${WX_LIBRARY}.la"
1998 WX_LIBRARY_NAME_GL="lib${WX_LIBRARY}_gl.la"
1999
2000 dnl the name of the static library
2001 WX_LIBRARY_NAME_STATIC="lib${WX_LIBRARY}.a"
2002 WX_LIBRARY_NAME_STATIC_GL="lib${WX_LIBRARY}_gl.a"
2003
2004 dnl the name of the shared library
2005 WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
2006 WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}"
2007
2008 dnl the name of the links to the shared library
2009 WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.so.${WX_CURRENT}"
2010 WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.so"
2011 WX_LIBRARY_LINK3="lib${WX_LIBRARY}.so"
2012 WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so.${WX_CURRENT}"
2013 WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.so"
2014 WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.so"
2015
2016 dnl shared library settings
2017 SHARED_LD=
2018 PIC_FLAG=
2019 WX_ALL=
2020 WX_ALL_INSTALLED=
2021 BURNT_LIBRARY_NAME=
2022 WX_TARGET_LIBRARY_SONAME=
2023
2024 dnl --- the marker for quick search, leave it here: SHARED_LIB_SETUP ---
2025
2026 if test "$wxUSE_SHARED" = "yes"; then
2027     case "${host}" in
2028       *-hp-hpux* )
2029         if test "$GCC" = yes ; then
2030             SHARED_LD="${CC} -shared -fPIC -o"
2031             PIC_FLAG="-fPIC"
2032         else
2033             dnl no idea why it wants it, but it does
2034             LDFLAGS="-L/usr/lib"
2035
2036             SHARED_LD="${CXX} -b -o"
2037             PIC_FLAG="+Z"
2038         fi
2039         WX_LIBRARY_NAME_SHARED="libwx_${TOOLKIT_NAME}.sl"
2040         WX_LIBRARY_NAME_SHARED_GL="libwx_${TOOLKIT_NAME}_gl.sl"
2041         if test "$wxUSE_OPENGL" = "yes"; then
2042             WX_ALL_INSTALLED="preinstall_gl"
2043             WX_ALL="${WX_LIBRARY_NAME_SHARED} ${WX_LIBRARY_NAME_SHARED_GL}"
2044         else
2045             WX_ALL="${WX_LIBRARY_NAME_SHARED}"
2046         fi
2047       ;;
2048
2049       dnl in fact, these settings are for any platform using gcc
2050       *-*-linux* )
2051         SHARED_LD="${CC} -shared -o"
2052         PIC_FLAG="-fPIC"
2053         if test "$wxUSE_BURNT_NAME" = "yes" ; then
2054             BURNT_LIBRARY_NAME="-Wl,-soname,${WX_LIBRARY_LINK1}"
2055             BURNT_LIBRARY_NAME_GL="-Wl,-soname,${WX_LIBRARY_LINK1_GL}"
2056             dnl substitute this in makelib.env for the contrib libs
2057             WX_TARGET_LIBRARY_SONAME="-Wl,-soname,\$(TARGETLIB_LINK1)"
2058         fi
2059         if test "$wxUSE_OPENGL" = "yes"; then
2060             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
2061             WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
2062         else
2063             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2064             WX_ALL="CREATE_LINKS"
2065         fi
2066       ;;
2067       *-*-irix5* | *-*-irix6* )
2068         if test "$GCC" = yes ; then
2069            SHARED_LD="${CC} -shared -o"
2070            PIC_FLAG="-fPIC"
2071         else
2072            SHARED_LD="${CXX} -shared -o"
2073         fi
2074         if test "$wxUSE_OPENGL" = "yes"; then
2075             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
2076             WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
2077         else
2078             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2079             WX_ALL="CREATE_LINKS"
2080         fi
2081       ;;
2082       *-*-solaris2* )
2083         if test "$GCC" = yes ; then
2084             SHARED_LD="${CC} -shared -o"
2085             PIC_FLAG="-fPIC"
2086
2087             dnl newer versions of gcc need -isystem to compile X headers on
2088             dnl Solaris (which use old style C syntax)
2089             CPPFLAGS="$CPPFLAGS -isystem /usr/openwin/include"
2090         else
2091             SHARED_LD="${CXX} -G -o"
2092             PIC_FLAG="-KPIC"
2093         fi
2094         if test "$wxUSE_OPENGL" = "yes"; then
2095             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
2096             WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
2097         else
2098             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2099             WX_ALL="CREATE_LINKS"
2100         fi
2101       ;;
2102       *-*-sunos4* )
2103         SHARED_LD="${CC} -shared -o"
2104         PIC_FLAG="-fPIC"
2105         WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2106         WX_ALL="CREATE_LINKS"
2107       ;;
2108       *-*-freebsd* | *-*-openbsd* | *-*-netbsd* )
2109         SHARED_LD="${CC} -shared -o"
2110         PIC_FLAG="-fPIC"
2111         if test "$wxUSE_OPENGL" = "yes"; then
2112             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
2113             WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
2114         else
2115             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2116             WX_ALL="CREATE_LINKS"
2117         fi
2118       ;;
2119       *-*-darwin* )
2120         SHARED_LD="${CXX} -dynamiclib -o"
2121         PIC_FLAG="-dynamic -fPIC"
2122         if test "$wxUSE_OPENGL" = "yes"; then
2123             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS CREATE_INSTALLED_LINKS_GL"
2124             WX_ALL="CREATE_LINKS CREATE_LINKS_GL"
2125         else
2126             WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2127             WX_ALL="CREATE_LINKS"
2128         fi
2129         dnl add the resources target
2130         WX_ALL="${WX_ALL} ./lib/lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.r"
2131         dnl the name of the shared library
2132         WX_LIBRARY_NAME_SHARED="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
2133         WX_LIBRARY_NAME_SHARED_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.${WX_REVISION}.${WX_AGE}.dylib"
2134         dnl the name of the links to the shared library
2135         WX_LIBRARY_LINK1="lib${WX_LIBRARY}-${WX_RELEASE}.${WX_CURRENT}.dylib"
2136         WX_LIBRARY_LINK2="lib${WX_LIBRARY}-${WX_RELEASE}.dylib"
2137         WX_LIBRARY_LINK3="lib${WX_LIBRARY}.dylib"
2138         WX_LIBRARY_LINK1_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.${WX_CURRENT}.dylib"
2139         WX_LIBRARY_LINK2_GL="lib${WX_LIBRARY}_gl-${WX_RELEASE}.dylib"
2140         WX_LIBRARY_LINK3_GL="lib${WX_LIBRARY}_gl.dylib"
2141       ;;
2142       *-*-osf* )
2143         SHARED_LD="${CXX} -shared -o"
2144         PIC_FLAG="-fPIC"
2145         WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2146         WX_ALL="CREATE_LINKS"
2147       ;;
2148       *-*-dgux5* )
2149         SHARED_LD="${CXX} -shared -o"
2150         PIC_FLAG="-fPIC"
2151         WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2152         WX_ALL="CREATE_LINKS"
2153       ;;
2154       *-*-sysv5* )
2155         SHARED_LD="${CC} -shared -o"
2156         PIC_FLAG="-fPIC"
2157         WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2158         WX_ALL="CREATE_LINKS"
2159       ;;
2160       *-*-aix* )
2161         SHARED_LD="/usr/lpp/xlC/bin/makeC++SharedLib -p 0 -o"
2162         WX_ALL=${WX_LIBRARY_NAME_SHARED}
2163       ;;
2164       *-*-cygwin* )
2165         dnl only static for now
2166         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
2167         WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
2168         if test "$wxUSE_OPENGL" = "yes"; then
2169             WX_ALL_INSTALLED="preinstall_gl"
2170             WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
2171         else
2172             WX_ALL="${WX_LIBRARY_NAME_STATIC}"
2173         fi
2174       ;;
2175       *-*-mingw32* )
2176         dnl only static for now
2177         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
2178         WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
2179         if test "$wxUSE_OPENGL" = "yes"; then
2180             WX_ALL_INSTALLED="preinstall_gl"
2181             WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
2182         else
2183             WX_ALL="${WX_LIBRARY_NAME_STATIC}"
2184         fi
2185       ;;
2186       *-pc-os2_emx )
2187         dnl only static for now
2188         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
2189         WX_ALL="${WX_LIBRARY_NAME_STATIC}"
2190       ;;
2191       *-*-beos* )
2192         dnl can't use gcc under BeOS for shared library creation because it
2193         dnl complains about missing 'main'
2194         SHARED_LD="${LD} -shared -o"
2195         PIC_FLAG="-fPIC"
2196         WX_ALL_INSTALLED="CREATE_INSTALLED_LINKS"
2197         WX_ALL="CREATE_LINKS"
2198       ;;
2199       *)
2200         AC_MSG_ERROR(unknown system type ${host}.)
2201     esac
2202
2203     dnl set target to shared if not explicitly chose static before
2204     if test "x$WX_TARGET_LIBRARY" = "x"; then
2205         WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_SHARED}"
2206         WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_SHARED_GL}"
2207     fi
2208     dnl do not alter the LIBRARY_TYPE strings "so" and "a", they are magic
2209     WX_TARGET_LIBRARY_TYPE="so"
2210 else
2211     dnl set target to static
2212     WX_TARGET_LIBRARY="${WX_LIBRARY_NAME_STATIC}"
2213     WX_TARGET_LIBRARY_GL="${WX_LIBRARY_NAME_STATIC_GL}"
2214
2215     if test "$wxUSE_OPENGL" = "yes"; then
2216         WX_ALL_INSTALLED="preinstall_gl"
2217         WX_ALL="${WX_LIBRARY_NAME_STATIC} ${WX_LIBRARY_NAME_STATIC_GL}"
2218     else
2219         WX_ALL="${WX_LIBRARY_NAME_STATIC}"
2220     fi
2221
2222     dnl give static wxBase build a working install target
2223     if test "$wxUSE_GUI" = "no"; then
2224         dnl we're here because WX_ALL_INSTALLED is empty, but play safe anyway
2225         WX_ALL_INSTALLED="${WX_ALL_INSTALLED} preinstall"
2226     fi
2227
2228     WX_TARGET_LIBRARY_TYPE="a"
2229 fi
2230
2231 dnl ------------------------------------------------------------------------
2232 dnl Check for headers
2233 dnl ------------------------------------------------------------------------
2234
2235 dnl defines HAVE_STRINGS_H (where some string functions live on AIX for example)
2236 AC_CHECK_HEADERS(strings.h)
2237 dnl defines HAVE_UNISTD_H
2238 AC_CHECK_HEADERS(unistd.h)
2239 dnl defines HAVE_FCNTL_H
2240 AC_CHECK_HEADERS(fcntl.h)
2241 dnl defines HAVE_WCHAR_H
2242 AC_CHECK_HEADERS(wchar.h)
2243 dnl defines HAVE_WCSTR_H
2244 AC_CHECK_HEADERS(wcstr.h)
2245 dnl defines HAVE_FNMATCH_H
2246 AC_CHECK_HEADERS(fnmatch.h)
2247 dnl defines HAVE_ICONV_H (Unix98 encoding conversion routines)
2248 AC_CHECK_HEADERS(iconv.h)
2249 dnl defines HAVE_LANGINFO_H (GNU libc locale parameters)
2250 AC_CHECK_HEADERS(langinfo.h)
2251
2252 if test "$wxUSE_GUI" = "yes"; then
2253     if test "$wxUSE_UNIX" = "yes"; then
2254         dnl defines HAVE_X11_XKBLIB_H
2255         AC_CHECK_HEADERS(X11/XKBlib.h)
2256     fi
2257 fi
2258
2259 dnl ---------------------------------------------------------------------------
2260 dnl Checks for typedefs
2261 dnl ---------------------------------------------------------------------------
2262
2263 dnl   defines mode_t if not already defined
2264 AC_TYPE_MODE_T
2265 dnl   defines off_t if not already defined
2266 AC_TYPE_OFF_T
2267 dnl   defines pid_t if not already defined
2268 AC_TYPE_PID_T
2269 dnl   defines size_t if not already defined
2270 AC_TYPE_SIZE_T
2271 dnl   defines uid_t and gid_t if not already defined
2272 AC_TYPE_UID_T
2273
2274 dnl   check for wchar_t
2275 AC_CACHE_CHECK([for wchar_t], wx_cv_type_wchar_t,
2276 [
2277     AC_TRY_COMPILE([#include <wchar.h>],
2278         [
2279             wchar_t wc, *ws;
2280             wc = L'a';
2281             ws = L"Hello, world!";
2282         ],
2283         wx_cv_type_wchar_t=yes,
2284         wx_cv_type_wchar_t=no)
2285 ])
2286 if test "$wx_cv_type_wchar_t" = yes ; then
2287     AC_DEFINE(wxUSE_WCHAR_T)
2288 fi
2289
2290 dnl ---------------------------------------------------------------------------
2291 dnl Checks for structures
2292 dnl ---------------------------------------------------------------------------
2293
2294 dnl does passwd struct has the pw_gecos field?
2295 AC_CACHE_CHECK([for pw_gecos in struct passwd], wx_cv_struct_pw_gecos,
2296     [
2297         AC_TRY_COMPILE([#include <pwd.h>],
2298              [
2299                 char *p;
2300                 struct passwd *pw;
2301                 p = pw->pw_gecos;
2302              ],
2303              [
2304                 wx_cv_struct_pw_gecos=yes
2305              ],
2306              [
2307                 wx_cv_struct_pw_gecos=no
2308              ]
2309         )
2310     ]
2311 )
2312
2313 if test "$wx_cv_struct_pw_gecos" = "yes"; then
2314     AC_DEFINE(HAVE_PW_GECOS)
2315 fi
2316
2317 dnl ---------------------------------------------------------------------------
2318 dnl Checks for compiler characteristics
2319 dnl ---------------------------------------------------------------------------
2320
2321 dnl defines const to be empty if c-compiler does not support const fully
2322 AC_C_CONST
2323 dnl defines inline to a sensible value for the c-compiler
2324 AC_C_INLINE
2325
2326 dnl check the sizes of integral types (give some reasonable default values for
2327 dnl cross-compiling)
2328 dnl   defines the size of certain types of variables in SIZEOF_<TYPE>
2329 AC_CHECK_SIZEOF(char, 1)
2330 AC_CHECK_SIZEOF(short, 2)
2331 AC_CHECK_SIZEOF(int *, 4)
2332 AC_CHECK_SIZEOF(int, 4)
2333 AC_CHECK_SIZEOF(long, 4)
2334 AC_CHECK_SIZEOF(long long, 0)
2335
2336 dnl we have to do it ourselves because SGI/Irix's stdio.h does not include
2337 dnl wchar_t an AC_CHECK_SIZEOF only includes stdio.h
2338 AC_CACHE_CHECK([size of wchar_t], wx_cv_sizeof_wchar_t,
2339 [
2340     AC_TRY_RUN(
2341         [
2342             #include <wchar.h>
2343             #include <stdio.h>
2344             int main()
2345             {
2346             FILE *f=fopen("conftestval", "w");
2347             if (!f) exit(1);
2348             fprintf(f, "%i", sizeof(wchar_t));
2349             exit(0);
2350             }
2351         ],
2352         wx_cv_sizeof_wchar_t=`cat conftestval`,
2353         wx_cv_sizeof_wchar_t=0,
2354         wx_cv_sizeof_wchar_t=4
2355         )
2356 ])
2357
2358 AC_DEFINE_UNQUOTED(SIZEOF_WCHAR_T, $wx_cv_sizeof_wchar_t)
2359
2360
2361 dnl for bytesex stuff (don't use AC_C_BIGENDIAN to allow cross-compiling)
2362 WX_C_BIGENDIAN
2363
2364 dnl check for iostream (as opposed to iostream.h) standard header
2365 WX_CPP_NEW_HEADERS(, AC_DEFINE(wxUSE_IOSTREAMH))
2366
2367 dnl check whether C++ compiler supports bool built-in type
2368 WX_CPP_BOOL
2369
2370 dnl check whether we should define _GNU_SOURCE
2371 WX_GNU_EXTENSIONS
2372
2373 dnl ---------------------------------------------------------------------------
2374 dnl Check for functions
2375 dnl ---------------------------------------------------------------------------
2376
2377 dnl check for wcslen
2378 AC_CHECK_LIB(c, wcslen, [
2379             AC_DEFINE(HAVE_WCSLEN)
2380             WCHAR_LINK=""
2381         ], [
2382             AC_CHECK_LIB(w, wcslen, [
2383                 AC_DEFINE(HAVE_WCSLEN)
2384                 WCHAR_LINK="-lw"
2385             ])
2386         ])
2387
2388 dnl check for vprintf/vsprintf() which are GNU extensions
2389 AC_FUNC_VPRINTF
2390
2391
2392 dnl check for vsscanf() and vsnprintf() - on some platforms (Linux, glibc
2393 dnl 2.1.1 for the first one, HP-UX for the second) it's available in the
2394 dnl library but the prototype is missing, so we can't use AC_CHECK_FUNCS here,
2395 dnl do it manually
2396
2397 dnl we use AC_TRY_COMPILE() here instead of AC_TRY_RUN() to make the checks
2398 dnl work for cross-compilation, but AC_TRY_COMPILE() normally only compiles
2399 dnl one function while we need at least 2 - hence the ugly hack below. To
2400 dnl understand why it works, remember that AC_TRY_COMPILE() just prepends
2401 dnl "int main() {" in the beginning of the code and "; return 0; }" at the
2402 dnl end...
2403
2404 dnl if we fail to find vsnprintf, also try for _vsnprintf as that is what
2405 dnl we'll find under MSW if it exists.
2406
2407 dnl final note: AC_TRY_COMPILE will only be executed if there is nothing in
2408 dnl the cache so we have to do AC_DEFINE(HAVE_VSNPRINTF) below and not inside
2409 dnl it or the symbol wouldn't be defined for the 2nd and subsequent configure
2410 dnl runs
2411
2412 dnl check for vsnprintf() - a safe version of vsprintf()
2413 AC_CACHE_CHECK([for vsnprintf], wx_cv_func_vsnprintf,
2414 [
2415   AC_TRY_COMPILE([
2416                     #include <stdio.h>
2417                     #include <stdarg.h>
2418                  ], [
2419                     int wx_test_vsnprintf(const char *, ...);
2420
2421                     wx_test_vsnprintf("%s");
2422                     return 0;
2423                  }
2424
2425                  int wx_test_vsnprintf(const char *fmt, ...)
2426                  {
2427                     char *s;
2428
2429                     va_list argp;
2430                     va_start(argp, fmt);
2431                     vsnprintf(s, 42, fmt, argp);
2432                     va_end(argp);
2433                  ], [
2434                     wx_cv_func_vsnprintf=yes
2435                  ], [
2436                     AC_TRY_COMPILE([
2437                                       #include <stdio.h>
2438                                       #include <stdarg.h>
2439                                    ], [
2440                                       int wx_test_vsnprintf(const char *, ...);
2441
2442                                       wx_test_vsnprintf("%s");
2443                                       return 0;
2444                                    }
2445
2446                                    int wx_test_vsnprintf(const char *fmt, ...)
2447                                    {
2448                                       char *s;
2449
2450                                       va_list argp;
2451                                       va_start(argp, fmt);
2452                                       _vsnprintf(s, 42, fmt, argp);
2453                                       va_end(argp);
2454                                    ], [
2455                                       wx_cv_func_vsnprintf=yes
2456                                    ], [
2457                                       wx_cv_func_vsnprintf=no
2458                                    ])
2459                  ])
2460 ])
2461
2462 if test "$wx_cv_func_vsnprintf" = yes; then
2463     AC_DEFINE(HAVE_VSNPRINTF)
2464 else
2465     AC_MSG_WARN(unsafe function sprintf will be used instead of snprintf)
2466 fi
2467
2468 dnl check for vsscanf()
2469 AC_CACHE_CHECK([for vsscanf], wx_cv_func_vsscanf,
2470 [
2471   AC_TRY_COMPILE([
2472                     #include <stdio.h>
2473                     #include <stdarg.h>
2474                 ], [
2475                     int wx_test_vsscanf(const char *, ...);
2476
2477                     wx_test_vsscanf("%d");
2478                     return 0;
2479                 }
2480
2481                 int wx_test_vsscanf(const char *fmt, ...)
2482                 {
2483                     va_list argp;
2484                     va_start(argp, fmt);
2485                     vsscanf("42", fmt, argp);
2486                     va_end(argp);
2487                 ], [
2488                     wx_cv_func_vsscanf=yes
2489                 ], [
2490                     wx_cv_func_vsscanf=no
2491                 ])
2492 ])
2493
2494 if test "$wx_cv_func_vsscanf" = yes; then
2495     AC_DEFINE(HAVE_VSSCANF)
2496 fi
2497
2498 AC_LANG_RESTORE
2499
2500 dnl the following tests are for Unix(like) systems only
2501 if test "$TOOLKIT" != "MSW"; then
2502
2503 dnl check for available version of iconv()
2504
2505 AC_LANG_SAVE
2506 AC_LANG_CPLUSPLUS
2507 AC_CACHE_CHECK([if iconv() takes char**], wx_cv_iconv_takes_char,
2508 [
2509     AC_TRY_COMPILE([#include <iconv.h>],
2510     [
2511         char **inbuf, **outbuf;
2512         iconv_t cd;
2513         size_t insz, outsz;
2514         iconv(cd, inbuf, &insz, outbuf, &outsz);
2515     ],
2516     wx_cv_iconv_takes_char=yes,
2517     wx_cv_iconv_takes_char=no)
2518 ])
2519 AC_LANG_RESTORE
2520 if test "$wx_cv_iconv_takes_char" = yes ; then
2521     AC_DEFINE(WX_ICONV_TAKES_CHAR)
2522 fi
2523
2524
2525 dnl check for POSIX signals if we need them
2526 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes" -a "$wxUSE_UNIX" = "yes"; then
2527     AC_CHECK_FUNCS(sigaction)
2528
2529     if test "$ac_cv_func_sigaction" = "no"; then
2530         AC_MSG_WARN([No POSIX signal functions on this system, wxApp::OnFatalException will not be called])
2531         wxUSE_ON_FATAL_EXCEPTION=no
2532     fi
2533
2534     if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
2535       AC_LANG_SAVE
2536       AC_LANG_CPLUSPLUS
2537
2538       AC_CACHE_CHECK([for sa_handler type], wx_cv_type_sa_handler,
2539       [
2540         AC_TRY_COMPILE([#include <signal.h>],
2541                      [
2542                         extern void testSigHandler(int);
2543
2544                         struct sigaction sa;
2545                         sa.sa_handler = testSigHandler;
2546                      ], [
2547                         wx_cv_type_sa_handler=int
2548                      ], [
2549                         wx_cv_type_sa_handler=void
2550                      ])
2551       ])
2552
2553       AC_LANG_RESTORE
2554
2555       AC_DEFINE_UNQUOTED(wxTYPE_SA_HANDLER, $wx_cv_type_sa_handler)
2556     fi
2557 fi
2558
2559 dnl check for vfork() (even if it's the same as fork() in modern Unices)
2560 AC_CHECK_FUNCS(vfork)
2561
2562 dnl check for timegm() used by datetime.cpp
2563 AC_CHECK_FUNCS(timegm)
2564
2565 dnl look for a functiopn to modify the environment
2566 AC_CHECK_FUNCS(putenv setenv, break)
2567
2568 HAVE_SOME_SLEEP_FUNC=0
2569 if test "$USE_BEOS" = 1; then
2570     dnl BeOS has its own (wonder where did they get it from) sleep() function
2571     dnl in unistd.h
2572     AC_DEFINE(HAVE_SLEEP)
2573     HAVE_SOME_SLEEP_FUNC=1
2574 fi
2575
2576 if test "$USE_MAC" = 1; then
2577     dnl Mac OS X has both nanosleep and usleep
2578     dnl but only usleep is defined in unistd.h
2579     AC_DEFINE(HAVE_USLEEP)
2580     HAVE_SOME_SLEEP_FUNC=1
2581 fi
2582
2583 if test "$HAVE_SOME_SLEEP_FUNC" != 1; then
2584     dnl try nanosleep() in libc and libposix4, if this fails - usleep()
2585     POSIX4_LINK=
2586     AC_CHECK_FUNCS(nanosleep,
2587         AC_DEFINE(HAVE_NANOSLEEP),
2588         [
2589             AC_CHECK_LIB(posix4, nanosleep,
2590                 [
2591                     AC_DEFINE(HAVE_NANOSLEEP)
2592                     POSIX4_LINK="-lposix4"
2593                 ],
2594                 [
2595                     AC_CHECK_FUNCS(usleep,
2596                         AC_DEFINE(HAVE_USLEEP),
2597                     )
2598                     AC_MSG_WARN([wxSleep() function will not work])
2599                 ]
2600             )
2601         ]
2602     )
2603 fi
2604
2605 dnl check for uname (POSIX) and gethostname (BSD)
2606 AC_CHECK_FUNCS(uname gethostname, break)
2607
2608 dnl check for MT-safe version of strtok (on DEC Alpha, it's ok for C compiler
2609 dnl but not for C++ one - hence change language)
2610 AC_LANG_SAVE
2611 AC_LANG_CPLUSPLUS
2612
2613 AC_CHECK_FUNCS(strtok_r)
2614
2615 AC_LANG_RESTORE
2616
2617 dnl check for inet_addr and inet_aton (these may live either in libc, or in
2618 dnl libnsl or libresolv)
2619 INET_LINK=
2620 AC_CHECK_FUNCS(inet_addr,
2621     AC_DEFINE(HAVE_INET_ADDR),
2622     [
2623         AC_CHECK_LIB(nsl, inet_addr,
2624             INET_LINK="nsl",
2625             AC_CHECK_LIB(resolv, inet_addr,
2626                 INET_LINK="resolv"
2627             )
2628         )
2629     ]
2630 )
2631
2632 AC_CHECK_FUNCS(inet_aton,
2633         AC_DEFINE(HAVE_INET_ATON),
2634         [
2635             dnl only check it in the same lib
2636             AC_CHECK_LIB($INET_LINK, inet_aton, AC_DEFINE(HAVE_INET_ATON))
2637         ])
2638
2639 if test "x$INET_LINK" != "x"; then
2640     AC_DEFINE(HAVE_INET_ADDR)
2641     INET_LINK="-l$INET_LINK"
2642 fi
2643
2644 fi
2645 dnl if !MSW
2646
2647 dnl ===========================================================================
2648 dnl Now we have all the info we need - use it!
2649 dnl ===========================================================================
2650
2651 dnl flush the cache
2652 AC_CACHE_SAVE
2653
2654 dnl ---------------------------------------------------------------------------
2655 dnl thread support for Unix (always available under Win32)
2656 dnl ---------------------------------------------------------------------------
2657
2658 dnl under MSW we always have thread support
2659 if test "$TOOLKIT" != "MSW"; then
2660
2661 dnl the code below:
2662 dnl   defines THREADS_OBJ which contains the object files to build
2663 dnl   defines THREADS_LINK which contains the thread library to link with
2664 dnl   defines wxUSE_THREADS=1 if thread support is activated
2665
2666 THREADS_LINK=""
2667 THREADS_OBJ=""
2668
2669 if test "$wxUSE_THREADS" = "yes" ; then
2670     if test "$wxUSE_WINE" = 1 ; then
2671         AC_MSG_WARN([Threads are not supported under WINE])
2672         wxUSE_THREADS="no"
2673     elif test "$USE_BEOS" = 1; then
2674         AC_MSG_WARN([BeOS threads are not yet supported])
2675         wxUSE_THREADS="no"
2676     fi
2677 fi
2678
2679 if test "$wxUSE_THREADS" = "yes" ; then
2680     dnl find if POSIX threads are available
2681
2682     dnl AIX calls the library libpthreads - thanks IBM!
2683     if test "$USE_AIX" = 1; then
2684         THREADS_LIB=pthreads
2685     elif test "$USE_MAC" = 1; then
2686         THREADS_LIB=cc_dynamic
2687     else
2688         THREADS_LIB=pthread
2689     fi
2690
2691     dnl standard lib name is pthread
2692     dnl We no longer test for pthread-0.7 as it breaks compilation on some
2693     dnl glibc2 systems, especially for static linkage.
2694     AC_CHECK_LIB($THREADS_LIB, pthread_create, [
2695             THREADS_OBJ="threadpsx.lo"
2696             THREADS_LINK=$THREADS_LIB
2697         ], [
2698             dnl thread functions are in libc_r under FreeBSD
2699             AC_CHECK_LIB(c_r, pthread_create, [
2700                 THREADS_OBJ="threadpsx.lo"
2701                 THREADS_LINK="c_r"
2702             ], [
2703                 dnl thread functions are in libcc_dynamic under Mac OS X/Darwin
2704                 AC_CHECK_LIB(cc_dynamic, pthread_create, [
2705                     THREADS_OBJ="threadpsx.lo"
2706                     THREADS_LINK="cc_dynamic"
2707                 ], [
2708                     dnl VZ: SGI threads are not supported currently
2709                     AC_CHECK_HEADER(sys/prctl.h, [
2710                         THREADS_OBJ="threadsgi.lo"
2711                     ])
2712                 ])
2713             ])
2714         ])
2715
2716     if test -z "$THREADS_OBJ" ; then
2717         wxUSE_THREADS=no
2718         AC_MSG_WARN(No thread support on this system)
2719     fi
2720 fi
2721
2722 dnl do other tests only if we are using threads
2723 if test "$wxUSE_THREADS" = "yes" ; then
2724   AC_CHECK_FUNCS(thr_setconcurrency)
2725
2726   dnl define autoconf macro to check for given function in both pthread and
2727   dnl posix4 libraries
2728   dnl usage: AC_FUNC_THREAD(FUNCTION_NAME)
2729   dnl VZ: TODO
2730   dnl AC_DEFUN(AC_FUNC_THREAD,
2731   dnl [
2732   dnl     AC_CHECK_LIB($THREADS_LINK, $1,
2733   dnl            AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'),
2734   dnl            [AC_CHECK_LIB("posix4", $1,
2735   dnl                [AC_DEFINE(HAVE_`'translit($1, `A-Z', 'a-z'))
2736   dnl                 POSIX4_LINK="-lposix4"
2737   dnl             ])
2738   dnl            ])
2739   dnl ])
2740
2741   AC_CHECK_HEADERS(sched.h)
2742
2743   AC_CHECK_LIB($THREADS_LINK, sched_yield,
2744                AC_DEFINE(HAVE_SCHED_YIELD),
2745                [AC_CHECK_LIB("posix4", sched_yield,
2746                    [AC_DEFINE(HAVE_SCHED_YIELD) POSIX4_LINK="-lposix4"],
2747                    AC_MSG_WARN(wxThread::Yield will not work properly)
2748                 )]
2749                )
2750
2751   dnl to be able to set the thread priority, we need to have all of the
2752   dnl following functions:
2753   dnl   1. pthread_attr_getschedpolicy
2754   dnl   2. sched_get_priority_min and sched_get_priority_max
2755   dnl      (this one can be in either libpthread or libposix4 (under Solaris))
2756   dnl   3. pthread_attr_getschedparam and pthread_attr_setschedparam
2757   HAVE_PRIOR_FUNCS=0
2758   AC_CHECK_LIB($THREADS_LINK, pthread_attr_getschedpolicy,
2759                  AC_CHECK_LIB($THREADS_LINK, pthread_attr_setschedparam,
2760                    AC_CHECK_LIB($THREADS_LINK, sched_get_priority_max,
2761                        HAVE_PRIOR_FUNCS=1,
2762                        AC_CHECK_LIB("posix4", sched_get_priority_max,
2763                          [
2764                             HAVE_PRIOR_FUNCS=1
2765                             POSIX4_LINK="-lposix4"
2766                          ],
2767                        )
2768                    )
2769                  )
2770                )
2771
2772   if test "$HAVE_PRIOR_FUNCS" = 1; then
2773     AC_DEFINE(HAVE_THREAD_PRIORITY_FUNCTIONS)
2774   else
2775     AC_MSG_WARN(Setting thread priority will not work)
2776   fi
2777
2778   AC_CHECK_LIB($THREADS_LINK, pthread_cancel,
2779                AC_DEFINE(HAVE_PTHREAD_CANCEL),
2780                AC_MSG_WARN([wxThread::Kill() will not work properly]))
2781
2782   AC_CACHE_CHECK([for pthread_cleanup_push/pop], wx_cv_func_pthread_cleanup_push,
2783   [
2784     AC_TRY_COMPILE([#include <pthread.h>],
2785                  [
2786                     pthread_cleanup_push(NULL, NULL);
2787                     pthread_cleanup_pop(0);
2788                  ], [
2789                     wx_cv_func_pthread_cleanup_push=yes
2790                  ], [
2791                     wx_cv_func_pthread_cleanup_push=no
2792                  ])
2793   ])
2794
2795   if test "$wx_cv_func_pthread_cleanup_push" = "yes"; then
2796       AC_DEFINE(HAVE_THREAD_CLEANUP_FUNCTIONS)
2797   fi
2798
2799   dnl mutexattr_t initialization is done in quite different ways on different
2800   dnl platforms, so check for a few things:
2801   dnl
2802   dnl HAVE_MUTEX_RECURSIVE means that we can create recursive mutexes
2803   dnl HAVE_MUTEXATTR_SETTYPE means that we do it using
2804   dnl pthread_mutexattr_settype(PTHREAD_MUTEX_RECURSIVE) and if it is not
2805   dnl defined, we do it by directly assigned
2806   dnl PTHREAD_MUTEX_RECURSIVE_MUTEX_INITIALIZER_NP to attr
2807
2808   AC_CACHE_CHECK([for pthread_mutexattr_t], wx_cv_type_pthread_mutexattr_t,
2809   [
2810     AC_TRY_COMPILE([#include <pthread.h>],
2811         [
2812            pthread_mutexattr_t attr;
2813            pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE);
2814         ], [
2815            wx_cv_type_pthread_mutexattr_t=yes
2816         ], [
2817            wx_cv_type_pthread_mutexattr_t=no
2818         ]
2819     )
2820   ])
2821
2822   if test "$wx_cv_type_pthread_mutexattr_t" = "yes"; then
2823     AC_DEFINE(HAVE_PTHREAD_MUTEXATTR_T)
2824   else
2825     dnl don't despair, there may be another way to do it
2826     AC_CACHE_CHECK([for PTHREAD_RECURSIVE_MUTEX_INITIALIZER],
2827                    wx_cv_type_pthread_rec_mutex_init,
2828     [
2829         AC_TRY_COMPILE([#include <pthread.h>],
2830             [
2831                 pthread_mutex_t attr = PTHREAD_RECURSIVE_MUTEX_INITIALIZER_NP;
2832             ], [
2833                 wx_cv_type_pthread_rec_mutex_init=yes
2834             ], [
2835                 wx_cv_type_pthread_rec_mutex_init=no
2836             ]
2837         )
2838     ])
2839     if test "$wx_cv_type_pthread_rec_mutex_init" = "yes"; then
2840       AC_DEFINE(HAVE_PTHREAD_RECURSIVE_MUTEX_INITIALIZER)
2841     else
2842       dnl this may break code working elsewhere, so at least warn about it
2843       AC_MSG_WARN([wxMutex won't be recursive on this platform])
2844     fi
2845   fi
2846
2847   THREADS_LINK="-l$THREADS_LINK"
2848
2849   dnl building MT programs under Solaris with the native compiler requires -mt
2850   dnl switch
2851   if test "$USE_SOLARIS" = "yes" -a "$GCC" != "yes"; then
2852       CFLAGS="${CFLAGS} -mt"
2853       CXXFLAGS="${CXXFLAGS} -mt"
2854       LDFLAGS="${LDFLAGS} -mt"
2855   fi
2856 fi
2857
2858 dnl from if !MSW
2859 fi
2860
2861 if test "$wxUSE_THREADS" = "yes"; then
2862   AC_DEFINE(wxUSE_THREADS)
2863
2864   dnl must define _REENTRANT for multithreaded code except for Mac OS X
2865   if test "$wxUSE_MAC" = "0"; then
2866     CFLAGS="${CFLAGS} -D_REENTRANT"
2867     CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
2868   fi
2869
2870   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS thread"
2871 else
2872   dnl on some systems, _REENTRANT should be defined if we want to use any _r()
2873   dnl functions - add tests for other functions here as well
2874   if test "$ac_cv_func_strtok_r" = "yes"; then
2875     AC_MSG_CHECKING(if -D_REENTRANT is needed)
2876     if test "$NEEDS_D_REENTRANT_FOR_R_FUNCS" = 1; then
2877         CFLAGS="${CFLAGS} -D_REENTRANT"
2878         CXXFLAGS="${CXXFLAGS} -D_REENTRANT"
2879         AC_MSG_RESULT(yes)
2880     else
2881         AC_MSG_RESULT(no)
2882     fi
2883   fi
2884 fi
2885
2886 if test "$WXGTK20" = 1 ; then
2887   AC_DEFINE_UNQUOTED(__WXGTK20__,$WXGTK20)
2888   WXGTK12=1
2889 fi
2890
2891 if test "$WXGTK12" = 1 ; then
2892   AC_DEFINE_UNQUOTED(__WXGTK12__,$WXGTK12)
2893 fi
2894
2895 if test "$WXGTK127" = 1 ; then
2896   AC_DEFINE_UNQUOTED(__WXGTK127__,$WXGTK127)
2897 fi
2898
2899 if test "$WXWINE" = 1 ; then
2900   TOOLKIT_DEF="${TOOLKIT_DEF} -D__WXWINE__"
2901 fi
2902
2903 if test "$wxUSE_MAC" = 1 ; then
2904   TOOLKIT_DEF="${TOOLKIT_DEF} -D__UNIX__ -D__POWERPC__ -DTARGET_CARBON"
2905   CFLAGS="${CFLAGS} -fno-common -fpascal-strings"
2906   CPPFLAGS="${CPPFLAGS} -fno-common -fpascal-strings"
2907   AC_CHECK_PROG(REZ, Rez, Rez, /Developer/Tools/Rez)
2908   AC_CHECK_PROG(DEREZ, Derez, Derez, /Developer/Tools/Derez)
2909   RESCOMP=${REZ}
2910   REZFLAGS="-d __UNIX__ -useDF"
2911   DEREZFLAGS="Carbon.r -useDF"
2912   RESFLAGS="Carbon.r -t APPL"
2913   LIBWXMACRES="\$(LIBWX_MACRES)"
2914   LIBWXMACRESCOMP="\$(LIBWX_MACRESCOMP)"
2915 fi
2916
2917 if test "$wxUSE_CYGWIN" = 1 ; then
2918   TOOLKIT_DEF="${TOOLKIT_DEF} -D__WIN95__"
2919 fi
2920
2921 WXDEBUG=
2922
2923 if test "$wxUSE_DEBUG_INFO" = "yes" ; then
2924     WXDEBUG="-g"
2925     wxUSE_OPTIMISE=no
2926 fi
2927
2928 if test "$wxUSE_DEBUG_GDB" = "yes" ; then
2929     wxUSE_DEBUG_INFO=yes
2930     WXDEBUG="-ggdb"
2931 fi
2932
2933 if test "$wxUSE_DEBUG_FLAG" = "yes" ; then
2934     AC_DEFINE(WXDEBUG)
2935     WXDEBUG_DEFINE="-D__WXDEBUG__"
2936 else
2937     if test "$wxUSE_GTK" = 1 ; then
2938         WXDEBUG_DEFINE="-DGTK_NO_CHECK_CASTS"
2939     fi
2940 fi
2941
2942 if test "$wxUSE_MEM_TRACING" = "yes" ; then
2943     AC_DEFINE(wxUSE_MEMORY_TRACING)
2944     AC_DEFINE(wxUSE_GLOBAL_MEMORY_OPERATORS)
2945     AC_DEFINE(wxUSE_DEBUG_NEW_ALWAYS)
2946     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS memcheck"
2947 fi
2948
2949 if test "$wxUSE_DMALLOC" = "yes" ; then
2950     DMALLOC_LINK="-ldmalloc"
2951 fi
2952
2953 PROFILE=
2954 if test "$wxUSE_PROFILE" = "yes" ; then
2955     PROFILE="-pg"
2956 fi
2957
2958 DEP_INFO_FLAGS=
2959 CODE_GEN_FLAGS=
2960 CODE_GEN_FLAGS_CXX=
2961 if test "$GCC" = yes ; then
2962     if test "$wxUSE_NO_RTTI" = "yes" ; then
2963         CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-rtti"
2964     fi
2965     if test "$wxUSE_NO_EXCEPTIONS" = "yes" ; then
2966         CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS -fno-exceptions"
2967     fi
2968     if test "$wxUSE_PERMISSIVE" = "yes" ; then
2969        CODE_GEN_FLAGS="$CODE_GEN_FLAGS -fpermissive"
2970     fi
2971     if test "$wxUSE_NO_DEPS" = "no" ; then
2972         DEP_INFO_FLAGS="-MMD"
2973     fi
2974 fi
2975
2976
2977 CXXFLAGS=`echo "${CXXFLAGS}" | sed "s/\-O.//g" `
2978 CFLAGS=`echo "${CFLAGS}" | sed "s/\-O.//g" `
2979 if test "$wxUSE_OPTIMISE" = "no" ; then
2980     OPTIMISE=
2981 else
2982     if test "$GCC" = yes ; then
2983         OPTIMISE="-O2"
2984         case "${host}" in
2985             i586-*-*|i686-*-* )
2986             OPTIMISE="${OPTIMISE} "
2987         ;;
2988         esac
2989     else
2990         OPTIMISE="-O"
2991     fi
2992 fi
2993
2994 dnl ---------------------------------------------------------------------------
2995 dnl Optional libraries
2996 dnl ---------------------------------------------------------------------------
2997
2998 ZLIB_INCLUDE=
2999 if test "$wxUSE_ZLIB" = "yes" -o "$wxUSE_ZLIB" = "sys" ; then
3000   AC_DEFINE(wxUSE_ZLIB)
3001   if test "$wxUSE_ZLIB" = "yes" ; then
3002     ZLIB_INCLUDE="-I\${top_srcdir}/src/zlib"
3003   else
3004     ZLIB_LINK=
3005     AC_CHECK_HEADER(zlib.h, AC_CHECK_LIB(z, deflate, ZLIB_LINK="-lz"))
3006     if test "x$ZLIB_LINK" = "x" ; then
3007         AC_MSG_ERROR(system zlib compression library not found! Use --with-zlib=yes to use built-in zlib)
3008     fi
3009   fi
3010 fi
3011
3012 PNG_INCLUDE=
3013 if test "$wxUSE_LIBPNG" = "yes" -o "$wxUSE_LIBPNG" = "sys" ; then
3014   AC_DEFINE(wxUSE_LIBPNG)
3015   dnl for the check below to have a chance to succeed, we must already have
3016   dnl libz somewhere
3017   if test "$wxUSE_LIBPNG" = "sys" -a "$wxUSE_ZLIB" != "sys" ; then
3018     AC_MSG_WARN([--with-libpng=sys doesn't work without --with-zlib=sys, will compile the built-in libpng instead])
3019     wxUSE_LIBPNG=yes
3020   fi
3021
3022   if test "$wxUSE_LIBPNG" = "yes" ; then
3023     PNG_INCLUDE="-I\${top_srcdir}/src/png"
3024   else
3025     PNG_LINK=
3026     AC_CHECK_HEADER(png.h,
3027                     AC_CHECK_LIB(png, png_check_sig,
3028                                  PNG_LINK="-lpng",
3029                                  ,
3030                                  [-lz -lm])
3031                    )
3032     if test "x$PNG_LINK" = "x" ; then
3033         AC_MSG_ERROR(system png library not found! Use --with-libpng=yes to use the built-in libpng)
3034     fi
3035   fi
3036
3037   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS png"
3038 fi
3039
3040 JPEG_INCLUDE=
3041 if test "$wxUSE_LIBJPEG" = "yes" -o "$wxUSE_LIBJPEG" = "sys" ; then
3042   AC_DEFINE(wxUSE_LIBJPEG)
3043   if test "$wxUSE_LIBJPEG" = "yes" ; then
3044     JPEG_INCLUDE="-I\${top_srcdir}/src/jpeg"
3045   else
3046     JPEG_LINK=
3047     AC_CHECK_HEADER(jpeglib.h, AC_CHECK_LIB(jpeg, jpeg_read_header, JPEG_LINK="-ljpeg"))
3048     if test "x$JPEG_LINK" = "x" ; then
3049         AC_MSG_ERROR(system jpeg library not found! Use --with-libjpeg=yes to use the built-in one)
3050     fi
3051   fi
3052 fi
3053
3054 TIFF_INCLUDE=
3055 if test "$wxUSE_LIBTIFF" = "yes" -o "$wxUSE_LIBTIFF" = "sys" ; then
3056   AC_DEFINE(wxUSE_LIBTIFF)
3057   if test "$wxUSE_LIBTIFF" = "yes" ; then
3058     TIFF_INCLUDE="-I\${top_srcdir}/src/tiff"
3059   else
3060     TIFF_LINK=
3061     AC_CHECK_HEADER(tiffio.h, AC_CHECK_LIB(tiff, TIFFError,
3062                                            TIFF_LINK="-ltiff",
3063                                            ,
3064                                            -lm))
3065     if test "x$TIFF_LINK" = "x" ; then
3066         AC_MSG_ERROR(system tiff library not found! Use --with-libtiff=yes to use the built-in one)
3067     fi
3068   fi
3069 fi
3070
3071 FREETYPE_INCLUDE=
3072 if test "$wxUSE_FREETYPE" = "yes" -o "$wxUSE_FREETYPE" = "sys" ; then
3073   AC_DEFINE(wxUSE_FREETYPE)
3074   if test "$wxUSE_FREETYPE" = "yes" ; then
3075     FREETYPE_INCLUDE="-I\${top_srcdir}/src/freetype"
3076   else
3077     FREETYPE_LINK=
3078     AC_CHECK_HEADER(freetype.h,
3079                     AC_CHECK_LIB(freetype, FT_Render_Glyph,
3080                                  FREETYPE_LINK="-lfreetype",
3081                                  ,
3082                                  [-lm])
3083                    )
3084     if test "x$FREETYPE_LINK" = "x" ; then
3085         AC_MSG_ERROR(system freetype library not found! Use --with-freetype=yes to use the built-in freetype)
3086     fi
3087   fi
3088 fi
3089
3090 if test "$wxUSE_OPENGL" = "yes"; then
3091   AC_CHECK_HEADER(GL/gl.h, [
3092     AC_DEFINE(wxUSE_OPENGL)
3093     AC_DEFINE(wxUSE_GLCANVAS)
3094     AC_CHECK_LIB(GL, glFlush, [
3095       OPENGL_LINK="-lGL -lGLU"
3096     ],[
3097         AC_CHECK_LIB(MesaGL, glFlush, [
3098         OPENGL_LINK="-lMesaGL -lMesaGLU"
3099       ],)
3100      ],)
3101     ],wxUSE_OPENGL=0)
3102 fi
3103
3104 dnl ---------------------------------------------------------------------------
3105 dnl the library may be built without GUI classes at all
3106 dnl ---------------------------------------------------------------------------
3107
3108 if test "$wxUSE_GUI" = "yes"; then
3109   AC_DEFINE(wxUSE_GUI)
3110
3111   dnl the things we always pull in the GUI version of the library:
3112   dnl 1. basic things like wxApp, wxWindow, wxControl, wxFrame, wxDialog (the
3113   dnl    library really can't be built without those)
3114   dnl 2. basic controls: wxButton, wxStaticText, wxTextCtrl (these are used in
3115   dnl    almost any program and the first 2 are needed to show a message box
3116   dnl    which want to be always able to do)
3117   dnl 3. GDI stuff: icon, cursors and all that. Although it would be very nice
3118   dnl    to compile without them (if the app doesn't do any drawing, it doesn't
3119   dnl    need the dcs, pens, brushes, ...), this just can't be done now
3120   dnl 4. menu stuff: wxMenu, wxMenuBar, wxMenuItem
3121   dnl 5. misc stuff: timers, settings, message box
3122 else
3123   AC_DEFINE(wxUSE_NOGUI)
3124 fi
3125
3126 dnl ---------------------------------------------------------------------------
3127 dnl Unix/Windows
3128 dnl ---------------------------------------------------------------------------
3129
3130 if test "$wxUSE_UNIX" = "yes"; then
3131   AC_DEFINE(wxUSE_UNIX)
3132 fi
3133
3134 dnl ---------------------------------------------------------------------------
3135 dnl Register non-GUI class options for makefiles and setup.h
3136 dnl ---------------------------------------------------------------------------
3137
3138 if test "$wxUSE_APPLE_IEEE" = "yes"; then
3139   AC_DEFINE(wxUSE_APPLE_IEEE)
3140 fi
3141
3142 if test "$wxUSE_WAVE" = "yes"; then
3143   AC_DEFINE(wxUSE_WAVE)
3144 fi
3145
3146 if test "$wxUSE_FILE" = "yes"; then
3147   AC_DEFINE(wxUSE_FILE)
3148 fi
3149
3150 if test "$wxUSE_FILESYSTEM" = "yes"; then
3151   AC_DEFINE(wxUSE_FILESYSTEM)
3152 fi
3153
3154 if test "$wxUSE_FS_INET" = "yes"; then
3155   AC_DEFINE(wxUSE_FS_INET)
3156 fi
3157
3158 if test "$wxUSE_FS_ZIP" = "yes"; then
3159   AC_DEFINE(wxUSE_FS_ZIP)
3160 fi
3161
3162 if test "$wxUSE_ZIPSTREAM" = "yes"; then
3163   AC_DEFINE(wxUSE_ZIPSTREAM)
3164 fi
3165
3166 if test "$wxUSE_ON_FATAL_EXCEPTION" = "yes"; then
3167   AC_DEFINE(wxUSE_ON_FATAL_EXCEPTION)
3168 fi
3169
3170 if test "$wxUSE_BUSYINFO" = "yes"; then
3171   AC_DEFINE(wxUSE_BUSYINFO)
3172 fi
3173
3174 if test "$wxUSE_STD_IOSTREAM" = "yes"; then
3175   AC_DEFINE(wxUSE_STD_IOSTREAM)
3176 fi
3177
3178 if test "$wxUSE_TEXTFILE" = "yes"; then
3179   if test "$wxUSE_FILE" != "yes"; then
3180     AC_MSG_WARN(wxTextFile requires wxFile and it won't be compiled without it)
3181   else
3182     AC_DEFINE(wxUSE_TEXTFILE)
3183   fi
3184 fi
3185
3186 if test "$wxUSE_CONFIG" = "yes" ; then
3187   if test "$wxUSE_TEXTFILE" != "yes"; then
3188     AC_MSG_WARN(wxConfig requires wxTextFile and it won't be compiled without it)
3189   else
3190     AC_DEFINE(wxUSE_CONFIG)
3191     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS config"
3192   fi
3193 fi
3194
3195 if test "$wxUSE_INTL" = "yes" ; then
3196   if test "$wxUSE_FILE" != "yes"; then
3197     AC_MSG_WARN(I18n code requires wxFile and it won't be compiled without it)
3198   else
3199     AC_DEFINE(wxUSE_INTL)
3200     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS internat"
3201     GUIDIST="$GUIDIST INTL_DIST"
3202   fi
3203 fi
3204
3205 if test "$wxUSE_LOG" = "yes"; then
3206   AC_DEFINE(wxUSE_LOG)
3207 fi
3208
3209 if test "$wxUSE_LONGLONG" = "yes"; then
3210   AC_DEFINE(wxUSE_LONGLONG)
3211 fi
3212
3213 if test "$wxUSE_GEOMETRY" = "yes"; then
3214   AC_DEFINE(wxUSE_GEOMETRY)
3215 fi
3216
3217 if test "$wxUSE_DIALUP_MANAGER" = "yes" ; then
3218   AC_DEFINE(wxUSE_DIALUP_MANAGER)
3219   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dialup"
3220 fi
3221
3222 if test "$wxUSE_STREAMS" = "yes" ; then
3223   AC_DEFINE(wxUSE_STREAMS)
3224 fi
3225
3226 dnl ------------------------------------------------------------------------
3227 dnl time/date functions
3228 dnl ------------------------------------------------------------------------
3229
3230 if test "$wxUSE_TIMEDATE" = "yes"; then
3231     dnl check for strptime
3232     AC_CHECK_FUNCS(strptime)
3233
3234     dnl check for timezone variable
3235     AC_CACHE_CHECK(for timezone variable in <time.h>,
3236                    wx_cv_var_timezone,
3237                    [
3238                         AC_TRY_COMPILE(
3239                             [
3240                                 #include <time.h>
3241                             ],
3242                             [
3243                                 int tz;
3244                                 tz = __timezone;
3245                             ],
3246                             [
3247                                 wx_cv_var_timezone=__timezone
3248                             ],
3249                             [
3250                                 AC_TRY_COMPILE(
3251                                     [
3252                                         #include <time.h>
3253                                     ],
3254                                     [
3255                                         int tz;
3256                                         tz = _timezone;
3257                                     ],
3258                                     [
3259                                         wx_cv_var_timezone=_timezone
3260                                     ],
3261                                     [
3262                                         AC_TRY_COMPILE(
3263                                             [
3264                                                 #include <time.h>
3265                                             ],
3266                                             [
3267                                                 int tz;
3268                                                 tz = timezone;
3269                                             ],
3270                                             [
3271                                                 wx_cv_var_timezone=timezone
3272                                             ],
3273                                             AC_MSG_ERROR(no timezone variable)
3274                                         )
3275                                     ]
3276                                 )
3277                             ]
3278                         )
3279                    ]
3280     )
3281
3282     dnl as we want $wx_cv_var_timezone to be expanded, use AC_DEFINE_UNQUOTED
3283     AC_DEFINE_UNQUOTED(WX_TIMEZONE, $wx_cv_var_timezone)
3284
3285     dnl check for localtime (it's POSIX, but the check can do no harm...)
3286     AC_CHECK_FUNCS(localtime)
3287
3288     if test "$ac_cv_func_localtime" = "yes"; then
3289         AC_CACHE_CHECK(for tm_gmtoff in struct tm,
3290                        wx_cv_struct_tm_has_gmtoff,
3291         [
3292             AC_TRY_COMPILE(
3293                 [
3294                     #include <time.h>
3295                 ],
3296                 [
3297                     struct tm tm;
3298                     tm.tm_gmtoff++;
3299                 ],
3300                 [
3301                     wx_cv_struct_tm_has_gmtoff=yes
3302                     AC_DEFINE(WX_GMTOFF_IN_TM)
3303                 ],
3304                 wx_cv_struct_tm_has_gmtoff=no
3305             )
3306         ])
3307     fi
3308
3309     dnl check for gettimeofday (SVr4, BSD 4.3) and ftime (V7, BSD 4.3) for the
3310     dnl function to be used for high resolution timers
3311     AC_CHECK_FUNCS(gettimeofday ftime, break)
3312
3313     if test "$ac_cv_func_gettimeofday" = "yes"; then
3314         AC_CACHE_CHECK([whether gettimeofday takes two arguments],
3315                        wx_cv_func_gettimeofday_has_2_args,
3316         [
3317             dnl on some _really_ old systems it takes only 1 argument
3318             AC_LANG_SAVE
3319             AC_LANG_CPLUSPLUS
3320
3321             AC_TRY_COMPILE(
3322                 [
3323                     #include <sys/time.h>
3324                     #include <unistd.h>
3325                 ],
3326                 [
3327                     struct timeval tv;
3328                     struct timezone tz;
3329                     gettimeofday(&tv, &tz);
3330                 ],
3331                 wx_cv_func_gettimeofday_has_2_args=yes,
3332                 AC_TRY_COMPILE(
3333                     [
3334                         #include <sys/time.h>
3335                         #include <unistd.h>
3336                     ],
3337                     [
3338                         struct timeval tv;
3339                         gettimeofday(&tv);
3340                     ],
3341                     wx_cv_func_gettimeofday_has_2_args=no,
3342                     wx_cv_func_gettimeofday_has_2_args=unknown
3343                 )
3344             )
3345             AC_LANG_RESTORE
3346         ])
3347
3348         if test "$wx_cv_func_gettimeofday_has_2_args" != "yes"; then
3349             AC_DEFINE(WX_GETTIMEOFDAY_NO_TZ)
3350         fi
3351     fi
3352
3353     AC_DEFINE(wxUSE_TIMEDATE)
3354     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS typetest"
3355 fi
3356
3357 dnl ------------------------------------------------------------------------
3358 dnl wxSocket
3359 dnl ------------------------------------------------------------------------
3360
3361 dnl under MSW we always have sockets
3362 if test "$TOOLKIT" != "MSW"; then
3363
3364 if test "$wxUSE_SOCKETS" = "yes"; then
3365     dnl under Solaris, socket functions live in -lsocket
3366     AC_CHECK_FUNC(socket,,
3367         AC_CHECK_LIB(socket, socket,
3368             INET_LINK="$INET_LINK -lsocket",
3369             [
3370                 AC_MSG_WARN([socket library not found - sockets will be disabled])
3371                 wxUSE_SOCKETS=no
3372             ]
3373         )
3374     )
3375 fi
3376
3377 dnl this test may be appropriate if building under cygwin
3378 dnl right now I'm assuming it also uses the winsock stuff
3379 dnl like mingw does..  -- RL
3380
3381 if test "$wxUSE_SOCKETS" = "yes" ; then
3382     dnl determine the type of third argument for getsockname
3383     AC_CACHE_CHECK([what is the type of the third argument of getsockname],
3384                    wx_cv_type_getsockname3,
3385         [
3386             AC_LANG_SAVE
3387             AC_LANG_CPLUSPLUS
3388
3389             AC_TRY_COMPILE(
3390                 [
3391                     #include <sys/types.h>
3392                     #include <sys/socket.h>
3393                 ],
3394                 [
3395                     socklen_t len;
3396                     getsockname(0, 0, &len);
3397                 ],
3398                 wx_cv_type_getsockname3=socklen_t,
3399                 AC_TRY_COMPILE(
3400                     [
3401                         #include <sys/types.h>
3402                         #include <sys/socket.h>
3403                     ],
3404                     [
3405                         size_t len;
3406                         getsockname(0, 0, &len);
3407                     ],
3408                     wx_cv_type_getsockname3=size_t,
3409                     AC_TRY_COMPILE(
3410                         [
3411                             #include <sys/types.h>
3412                             #include <sys/socket.h>
3413                         ],
3414                         [
3415                             int len;
3416                             getsockname(0, 0, &len);
3417                         ],
3418                         wx_cv_type_getsockname3=int,
3419                         wx_cv_type_getsockname3=unknown
3420                     )
3421                 )
3422             )
3423
3424             AC_LANG_RESTORE
3425         ])
3426
3427     if test "$wx_cv_type_getsockname3" = "unknown"; then
3428         wxUSE_SOCKETS=no
3429         AC_MSG_WARN([Couldn't find socklen_t synonym for this system])
3430     else
3431         AC_DEFINE_UNQUOTED(SOCKLEN_T, $wx_cv_type_getsockname3)
3432     fi
3433 fi
3434
3435 fi
3436 dnl if !MSW
3437
3438 if test "$wxUSE_SOCKETS" = "yes" ; then
3439     AC_DEFINE(wxUSE_SOCKETS)
3440     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sockets"
3441     INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS protocol"
3442 fi
3443
3444 dnl ---------------------------------------------------------------------------
3445 dnl Joystick support
3446 dnl ---------------------------------------------------------------------------
3447
3448 if test "$wxUSE_GUI" = "yes"; then
3449
3450 dnl under MSW we always have joystick support
3451 if test "$TOOLKIT" != "MSW"; then
3452
3453 if test "$wxUSE_JOYSTICK" = "yes"; then
3454   dnl joystick support is only for Linux 2.1.x or greater
3455   AC_CHECK_HEADERS(linux/joystick.h)
3456   if test "$ac_cv_header_linux_joystick_h" != "yes"; then
3457     wxUSE_JOYSTICK=no
3458     AC_MSG_WARN(Joystick not supported by this system, disabled)
3459   fi
3460 fi
3461
3462 fi
3463 dnl if !MSW
3464
3465 if test "$wxUSE_JOYSTICK" = "yes"; then
3466     AC_DEFINE(wxUSE_JOYSTICK)
3467     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS joytest"
3468 fi
3469
3470 fi
3471 dnl if wxUSE_GUI
3472
3473 dnl ------------------------------------------------------------------------
3474 dnl DLL support
3475 dnl ------------------------------------------------------------------------
3476
3477 dnl under MSW we always have LoadLibrary/GetProcAddress
3478 if test "$TOOLKIT" != "MSW"; then
3479
3480 HAVE_DL_FUNCS=0
3481 HAVE_SHL_FUNCS=0
3482 if test "$wxUSE_DYNLIB_CLASS" = "yes"; then
3483     if test "$USE_MAC" = 1; then
3484         dnl Mac OS X needs dl_macosx.c to be compiled in to fake dlopen/dlerror
3485         HAVE_DL_FUNCS=1
3486     else
3487         dnl the test is a bit complicated because we check for dlopen() both with
3488         dnl and without -ldl and we also try to find shl_load() if there is no
3489         dnl dlopen() on this system
3490         AC_CHECK_FUNCS(dlopen,
3491         [
3492             AC_DEFINE(HAVE_DLOPEN)
3493             HAVE_DL_FUNCS=1
3494         ],
3495         [
3496             AC_CHECK_LIB(dl, dlopen,
3497                         [
3498                             AC_DEFINE(HAVE_DLOPEN)
3499                             HAVE_DL_FUNCS=1
3500                             LIBS="$LIBS -ldl"
3501                         ],
3502                         [
3503                             AC_CHECK_FUNCS(shl_load,
3504                                           [
3505                                             AC_DEFINE(HAVE_SHL_LOAD)
3506                                             HAVE_SHL_FUNCS=1
3507                                           ],
3508                                           [
3509                                             AC_CHECK_LIB(shl_load, dld,
3510                                                          [
3511                                                             HAVE_SHL_FUNCS=1
3512                                                             LIBS="$LIBS -ldld"
3513                                                          ])
3514                                           ])
3515                         ])
3516         ])
3517
3518     dnl check also for dlerror()
3519     if test "$HAVE_DL_FUNCS" = 1; then
3520         AC_CHECK_FUNCS(dlerror,
3521                        AC_DEFINE(HAVE_DLERROR),
3522                        AC_CHECK_LIB(dl, dlerror, AC_DEFINE(HAVE_DLERROR)))
3523     fi
3524     fi
3525
3526     if test "$HAVE_DL_FUNCS" = 0; then
3527         if test "$HAVE_SHL_FUNCS" = 0; then
3528           if test "$USE_UNIX" = 1; then
3529               AC_MSG_WARN([Missing dynamic loading support, several features will be disabled])
3530               wxUSE_DYNLIB_CLASS=no
3531           else
3532               AC_MSG_WARN([Assuming wxLibrary class works on this platform])
3533           fi
3534         fi
3535     fi
3536 fi
3537
3538 fi
3539 dnl if !MSW
3540
3541 if test "$wxUSE_DYNLIB_CLASS" = "yes" ; then
3542     AC_DEFINE(wxUSE_DYNLIB_CLASS)
3543 else
3544     wxUSE_ODBC=no
3545     wxUSE_SERIAL=no
3546 fi
3547
3548 dnl ---------------------------------------------------------------------------
3549 dnl String stuff
3550 dnl ---------------------------------------------------------------------------
3551
3552 if test "$wxUSE_UNICODE" = "yes" ; then
3553   AC_DEFINE(wxUSE_UNICODE)
3554 fi
3555
3556 if test "$wxUSE_WCSRTOMBS" = "yes" ; then
3557   AC_DEFINE(wxUSE_WCSRTOMBS)
3558 fi
3559
3560 if test "$wxUSE_wxUSE_EXPERIMENTAL_PRINTF" = "yes"; then
3561   AC_DEFINE(wxUSE_EXPERIMENTAL_PRINTF)
3562 fi
3563
3564 dnl ----------------------------------------------------------------
3565 dnl serialization support
3566 dnl ----------------------------------------------------------------
3567
3568 if test "$wxUSE_SERIAL" = "yes" ; then
3569     AC_DEFINE(wxUSE_SERIAL)
3570 fi
3571
3572 dnl ----------------------------------------------------------------
3573 dnl iODBC support
3574 dnl ----------------------------------------------------------------
3575
3576 IODBC_C_SRC=""
3577 if test "$wxUSE_ODBC" = "yes" ; then
3578     AC_DEFINE(wxUSE_ODBC)
3579     WXODBCFLAG="-D_IODBC_"
3580     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS db"
3581 fi
3582
3583 dnl ----------------------------------------------------------------
3584 dnl Register PostScript options for makefiles and setup.h
3585 dnl ----------------------------------------------------------------
3586
3587 if test "$wxUSE_POSTSCRIPT" = "yes" ; then
3588   AC_DEFINE(wxUSE_POSTSCRIPT)
3589 fi
3590
3591 AC_DEFINE(wxUSE_AFM_FOR_POSTSCRIPT)
3592
3593 AC_DEFINE(wxUSE_NORMALIZED_PS_FONTS)
3594
3595 dnl ---------------------------------------------------------------------------
3596 dnl big GUI components: MDI, doc/view, printing, help, ...
3597 dnl ---------------------------------------------------------------------------
3598
3599 if test "$wxUSE_CONSTRAINTS" = "yes"; then
3600     AC_DEFINE(wxUSE_CONSTRAINTS)
3601     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS layout"
3602 fi
3603
3604 if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
3605     AC_DEFINE(wxUSE_MDI_ARCHITECTURE)
3606     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS mdi"
3607 fi
3608
3609 if test "$wxUSE_DOC_VIEW_ARCHITECTURE" = "yes" ; then
3610     AC_DEFINE(wxUSE_DOC_VIEW_ARCHITECTURE)
3611     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docview"
3612     if test "$wxUSE_MDI_ARCHITECTURE" = "yes"; then
3613         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS docvwmdi"
3614     fi
3615 fi
3616
3617 if test "$wxUSE_HELP" = "yes"; then
3618     AC_DEFINE(wxUSE_HELP)
3619     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS help"
3620 fi
3621
3622 if test "$wxUSE_PRINTING_ARCHITECTURE" = "yes" ; then
3623     if test "$wxUSE_CONSTRAINTS" != "yes"; then
3624         AC_MSG_WARN(Printing support cannot be used without constraints so it won't be compiled without it)
3625     else
3626         AC_DEFINE(wxUSE_PRINTING_ARCHITECTURE)
3627     fi
3628     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS printing"
3629 fi
3630
3631 if test "$wxUSE_PROLOGIO" = "yes" ; then
3632     AC_DEFINE(wxUSE_PROLOGIO)
3633 fi
3634
3635 if test "$wxUSE_RESOURCES" = "yes" ; then
3636     if test "$wxUSE_PROLOGIO" = "yes" ; then
3637         AC_DEFINE(wxUSE_RESOURCES)
3638         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS resource"
3639     else
3640         AC_MSG_WARN([wxWindows ressource system requires PrologIO and can't be compiled without it.])
3641     fi
3642 fi
3643
3644 if test "$wxUSE_X_RESOURCES" = "yes"; then
3645     AC_DEFINE(wxUSE_X_RESOURCES)
3646 fi
3647
3648 dnl ---------------------------------------------------------------------------
3649 dnl IPC: IPC, Drag'n'Drop, Clipboard, ...
3650 dnl ---------------------------------------------------------------------------
3651
3652 if test "$wxUSE_IPC" = "yes"; then
3653     if test "$wxUSE_SOCKETS" != "yes"; then
3654         AC_MSG_WARN(wxWindows IPC classes require sockets, disabled)
3655     fi
3656
3657     AC_DEFINE(wxUSE_IPC)
3658 fi
3659
3660 if test "$wxUSE_CLIPBOARD" = "yes"; then
3661     AC_DEFINE(wxUSE_CLIPBOARD)
3662 fi
3663
3664 if test "$wxUSE_DRAG_AND_DROP" = "yes" ; then
3665     if test "$wxUSE_GTK" = 1; then
3666         if test "$WXGTK12" != 1; then
3667             AC_MSG_WARN([Drag and drop is only supported under GTK+ 1.2])
3668             wxUSE_DRAG_AND_DROP=no
3669         fi
3670     fi
3671
3672     if test "$wxUSE_MOTIF" = 1; then
3673         AC_MSG_WARN([Drag and drop is not yet supported under Motif])
3674         wxUSE_DRAG_AND_DROP=no
3675     fi
3676
3677     if test "$wxUSE_MAC" = 1; then
3678         AC_MSG_WARN([Drag and drop is not yet supported under Mac OS X])
3679         wxUSE_DRAG_AND_DROP=no
3680     fi
3681
3682     if test "$USE_WIN32" = 1; then
3683         dnl check for ole headers and disable DnD if not present (earlier
3684         dnl versions of mingw32 don't have them)
3685
3686         AC_CHECK_HEADERS(ole2.h)
3687
3688         dnl for some reason this test always fails here??
3689         dnl if test "x$HAVE_OLE2_H" != x ; then
3690         dnl this one does the right thing though
3691         if test "$ac_cv_header_ole2_h" = "yes" ; then
3692             if test "$GCC" = yes ; then
3693                 ALL_OBJECTS="$ALL_OBJECTS \$(OLEOBJS)"
3694                 ALL_DEPFILES="$ALL_DEPFILES \$(OLEDEPS)"
3695                 CODE_GEN_FLAGS_CXX="$CODE_GEN_FLAGS_CXX -fvtable-thunks"
3696                 LIBS="$LIBS -lole32 -luuid"
3697
3698                 dnl metafiles need the ole code, right??  if not this
3699                 dnl doesn't need to be in here.
3700                 if test "$wxUSE_METAFILE" = "yes"; then
3701                     AC_DEFINE(wxUSE_METAFILE)
3702                     dnl this one should probably be made separately configurable
3703                     AC_DEFINE(wxUSE_ENH_METAFILE)
3704                 fi
3705             fi
3706         else
3707             AC_MSG_WARN(Drag and drop disabled because OLE headers not found)
3708             wxUSE_DRAG_AND_DROP=no
3709         fi
3710     fi
3711
3712     if test "$wxUSE_DRAG_AND_DROP" = "yes"; then
3713         AC_DEFINE(wxUSE_DRAG_AND_DROP)
3714         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS dnd"
3715     fi
3716
3717 fi
3718
3719 if test "$wxUSE_SPLINES" = "yes" ; then
3720   AC_DEFINE(wxUSE_SPLINES)
3721 fi
3722
3723 dnl ---------------------------------------------------------------------------
3724 dnl GUI controls
3725 dnl ---------------------------------------------------------------------------
3726
3727 if test "$wxUSE_ACCEL" = "yes"; then
3728   AC_DEFINE(wxUSE_ACCEL)
3729 fi
3730
3731 if test "$wxUSE_CARET" = "yes"; then
3732   AC_DEFINE(wxUSE_CARET)
3733   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS caret"
3734 fi
3735
3736 if test "$wxUSE_COMBOBOX" = "yes"; then
3737   AC_DEFINE(wxUSE_COMBOBOX)
3738 fi
3739
3740 if test "$wxUSE_CHOICE" = "yes"; then
3741   AC_DEFINE(wxUSE_CHOICE)
3742 fi
3743
3744 if test "$wxUSE_BMPBUTTON" = "yes"; then
3745   AC_DEFINE(wxUSE_BMPBUTTON)
3746 fi
3747
3748 if test "$wxUSE_CHECKBOX" = "yes"; then
3749   AC_DEFINE(wxUSE_CHECKBOX)
3750 fi
3751
3752 if test "$wxUSE_CHECKLST" = "yes"; then
3753   AC_DEFINE(wxUSE_CHECKLISTBOX)
3754   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS checklst"
3755 fi
3756
3757 if test "$wxUSE_GAUGE" = "yes"; then
3758   AC_DEFINE(wxUSE_GAUGE)
3759 fi
3760
3761 if test "$wxUSE_NEW_GRID" = "yes"; then
3762   wxUSE_GRID="yes"
3763   AC_DEFINE(wxUSE_NEW_GRID)
3764   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS newgrid"
3765 fi
3766
3767 if test "$wxUSE_GRID" = "yes"; then
3768   AC_DEFINE(wxUSE_GRID)
3769   SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS grid"
3770 fi
3771
3772 if test "$wxUSE_IMAGLIST" = "yes"; then
3773     AC_DEFINE(wxUSE_IMAGLIST)
3774 fi
3775
3776 if test "$wxUSE_LISTBOX" = "yes"; then
3777     AC_DEFINE(wxUSE_LISTBOX)
3778 fi
3779
3780 if test "$wxUSE_LISTCTRL" = "yes"; then
3781     if test "$wxUSE_IMAGLIST" = "yes"; then
3782         AC_DEFINE(wxUSE_LISTCTRL)
3783         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS listctrl"
3784     else
3785         AC_MSG_WARN([wxListCtrl requires wxImageList and won't be compiled without it])
3786     fi
3787 fi
3788
3789 if test "$wxUSE_NOTEBOOK" = "yes"; then
3790     AC_DEFINE(wxUSE_NOTEBOOK)
3791     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS notebook"
3792 fi
3793
3794 if test "$wxUSE_RADIOBOX" = "yes"; then
3795     AC_DEFINE(wxUSE_RADIOBOX)
3796 fi
3797
3798 if test "$wxUSE_RADIOBTN" = "yes"; then
3799     AC_DEFINE(wxUSE_RADIOBTN)
3800 fi
3801
3802 if test "$wxUSE_SASH" = "yes"; then
3803     AC_DEFINE(wxUSE_SASH)
3804     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS sashtest"
3805 fi
3806
3807 if test "$wxUSE_SCROLLBAR" = "yes"; then
3808     AC_DEFINE(wxUSE_SCROLLBAR)
3809     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS scroll scrollsub"
3810 fi
3811
3812 if test "$wxUSE_SLIDER" = "yes"; then
3813     AC_DEFINE(wxUSE_SLIDER)
3814 fi
3815
3816 if test "$wxUSE_SPINBTN" = "yes"; then
3817     AC_DEFINE(wxUSE_SPINBTN)
3818 fi
3819
3820 if test "$wxUSE_SPINCTRL" = "yes"; then
3821     AC_DEFINE(wxUSE_SPINCTRL)
3822 fi
3823
3824 if test "$wxUSE_SPLITTER" = "yes"; then
3825     AC_DEFINE(wxUSE_SPLITTER)
3826     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS splitter"
3827 fi
3828
3829 if test "$wxUSE_STATBMP" = "yes"; then
3830     AC_DEFINE(wxUSE_STATBMP)
3831 fi
3832
3833 if test "$wxUSE_STATBOX" = "yes"; then
3834     AC_DEFINE(wxUSE_STATBOX)
3835 fi
3836
3837 if test "$wxUSE_STATLINE" = "yes"; then
3838     if test "$wxUSE_WINE" = 1 ; then
3839         AC_MSG_WARN([wxStaticLine is not supported under WINE])
3840     else
3841         AC_DEFINE(wxUSE_STATLINE)
3842     fi
3843 fi
3844
3845 if test "$wxUSE_STATUSBAR" = "yes"; then
3846     AC_DEFINE(wxUSE_STATUSBAR)
3847
3848     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS statbar"
3849 fi
3850
3851 if test "$wxUSE_TABDIALOG" = "yes"; then
3852     AC_DEFINE(wxUSE_TAB_DIALOG)
3853     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS tab"
3854 fi
3855
3856 if test "$wxUSE_TOGGLEBTN" = "yes"; then
3857   AC_DEFINE(wxUSE_TOGGLEBTN)
3858 fi
3859
3860 if test "$wxUSE_TOOLBAR_SIMPLE" = "yes"; then
3861     AC_DEFINE(wxUSE_TOOLBAR_SIMPLE)
3862     wxUSE_TOOLBAR="yes"
3863 fi
3864
3865 if test "$wxUSE_TOOLBAR" = "yes"; then
3866     AC_DEFINE(wxUSE_TOOLBAR)
3867
3868     dnl if wxUSE_TOOLBAR and !wxUSE_TOOLBAR_SIMPLE => wxUSE_TOOLBAR_NATIVE
3869     if test "$wxUSE_TOOLBAR_SIMPLE" != "yes"; then
3870         wxUSE_TOOLBAR_NATIVE="yes"
3871     fi
3872
3873     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS toolbar"
3874 fi
3875
3876 if test "$wxUSE_TOOLBAR_NATIVE" = "yes"; then
3877     AC_DEFINE(wxUSE_TOOLBAR_NATIVE)
3878 fi
3879
3880 if test "$wxUSE_TOOLTIPS" = "yes"; then
3881     if test "$wxUSE_MOTIF" = 1; then
3882         AC_MSG_WARN(wxTooltip not supported yet under Motif)
3883     else
3884         if test "$wxUSE_WINE" = 1; then
3885             AC_MSG_WARN(wxTooltip not supported under WINE)
3886         else
3887             AC_DEFINE(wxUSE_TOOLTIPS)
3888         fi
3889     fi
3890 fi
3891
3892 if test "$wxUSE_TREECTRL" = "yes"; then
3893     if test "$wxUSE_IMAGLIST" = "yes"; then
3894         AC_DEFINE(wxUSE_TREECTRL)
3895         SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS treectrl"
3896     else
3897         AC_MSG_WARN([wxTreeCtrl requires wxImageList and won't be compiled without it])
3898     fi
3899 fi
3900
3901 dnl ---------------------------------------------------------------------------
3902 dnl misc options
3903 dnl ---------------------------------------------------------------------------
3904
3905 dnl TODO this is unused for now...
3906 dnl if test "$wxUSE_WXTREE" = "yes"; then
3907 dnl   AC_DEFINE(wxUSE_WXTREE)
3908 dnl fi
3909
3910 if test "$wxUSE_DIRDLG" = "yes"; then
3911     if test "$wxUSE_CONSTRAINTS" != "yes"; then
3912        AC_MSG_WARN(wxDirDialog requires constraints so it won't be compiled without them)
3913     else
3914         if test "$wxUSE_TREECTRL" != "yes"; then
3915             AC_MSG_WARN(wxDirDialog requires wxTreeCtrl so it won't be compiled without it)
3916         else
3917             AC_DEFINE(wxUSE_DIRDLG)
3918         fi
3919     fi
3920 fi
3921
3922 if test "$wxUSE_TEXTDLG" = "yes"; then
3923     AC_DEFINE(wxUSE_TEXTDLG)
3924 fi
3925
3926 if test "$wxUSE_STARTUP_TIPS" = "yes"; then
3927     if test "$wxUSE_CONSTRAINTS" != "yes"; then
3928        AC_MSG_WARN(Startup tips requires constraints and won't be compiled without them)
3929     else
3930         AC_DEFINE(wxUSE_STARTUP_TIPS)
3931     fi
3932 fi
3933
3934 if test "$wxUSE_PROGRESSDLG" = "yes"; then
3935     if test "$wxUSE_CONSTRAINTS" != "yes"; then
3936        AC_MSG_WARN(wxProgressDialog requires constraints so it won't be compiled without them)
3937     else
3938         AC_DEFINE(wxUSE_PROGRESSDLG)
3939     fi
3940 fi
3941
3942 if test "$wxUSE_MINIFRAME" = "yes"; then
3943     AC_DEFINE(wxUSE_MINIFRAME)
3944     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS minifram"
3945 fi
3946
3947 if test "$wxUSE_HTML" = "yes"; then
3948     AC_DEFINE(wxUSE_HTML)
3949     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS html"
3950     INCLUDE_SUBDIRS="$INCLUDE_SUBDIRS html"
3951 fi
3952
3953 if test "$wxUSE_VALIDATORS" = "yes"; then
3954     AC_DEFINE(wxUSE_VALIDATORS)
3955     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS validate"
3956 fi
3957
3958 if test "$wxUSE_IMAGE" = "yes" ; then
3959   AC_DEFINE(wxUSE_IMAGE)
3960 fi
3961
3962 if test "$wxUSE_GIF" = "yes" ; then
3963   AC_DEFINE(wxUSE_GIF)
3964 fi
3965
3966 if test "$wxUSE_PCX" = "yes" ; then
3967   AC_DEFINE(wxUSE_PCX)
3968 fi
3969
3970 if test "$wxUSE_PNM" = "yes" ; then
3971   AC_DEFINE(wxUSE_PNM)
3972 fi
3973
3974 if test "$wxUSE_XPM" = "yes" ; then
3975   AC_DEFINE(wxUSE_XPM)
3976 fi
3977
3978 dnl ---------------------------------------------------------------------------
3979 dnl get the string with OS info - used by wxGetOsDescription()
3980 dnl ---------------------------------------------------------------------------
3981
3982 if test "$cross_compiling" = "yes"; then
3983     dnl Use best guess from host as we can't use uname when cross compiling
3984     OSINFO="\"$host\""
3985 else
3986     dnl attualy work out OS version
3987     OSINFO=`uname -s -r -m`
3988     OSINFO="\"$OSINFO\""
3989 fi
3990
3991 AC_DEFINE_UNQUOTED(WXWIN_OS_DESCRIPTION, $OSINFO)
3992
3993 dnl ---------------------------------------------------------------------------
3994 dnl Output the makefiles and such from the results found above
3995 dnl ---------------------------------------------------------------------------
3996
3997 GUILIBS="$GUI_TK_LIBRARY $TOOLKIT_LINK"
3998 OPENGL_LIBS="$OPENGL_LINK"
3999
4000 dnl all additional libraries (except wxWindows itself) we link with
4001 dnl
4002 dnl note that we always link with -lm except for Mac OS X
4003 dnl extended.c uses floor() and is always linked in
4004 EXTRA_LIBS="$LIBS $POSIX4_LINK $INET_LINK $WCHAR_LINK $THREADS_LINK $DMALLOC_LINK $DL_LINK $ZLIB_LINK -lm"
4005 if test "$USE_MAC" = 1 ; then
4006     EXTRA_LIBS="$EXTRA_LIBS -framework Carbon -framework System"
4007 fi
4008 if test "$wxUSE_GUI" = "yes"; then
4009     EXTRA_LIBS="$GUILIBS $PNG_LINK $JPEG_LINK $TIFF_LINK $FREETYPE_LINK $EXTRA_LIBS"
4010 fi
4011
4012 dnl all the libraries needed to link wxWindows programs when using the
4013 dnl makefile system without libtool
4014 LD_LIBS="\${top_builddir}/lib/${WX_LIBRARY_NAME_STATIC} $EXTRA_LIBS"
4015
4016 dnl all -I options we must pass to the compiler
4017 INCLUDES="-I. -I\${top_builddir}/include -I\${top_srcdir}/include $ZLIB_INCLUDE $PNG_INCLUDE $JPEG_INCLUDE $TIFF_INCLUDE $FREETYPE_INCLUDE $TOOLKIT_INCLUDE"
4018
4019 dnl wxGTK does not need TOOLKIT includes in wx-config
4020 if test "$wxUSE_GTK" = 1; then
4021     WXCONFIG_INCLUDE=""
4022 else
4023     WXCONFIG_INCLUDE="$TOOLKIT_INCLUDE"
4024 fi
4025
4026 dnl C/C++ compiler options used to compile wxWindows
4027 if test "$GXX" = yes ; then
4028     dnl CXXWARNINGS="-Wall -W -Wcast-qual -Werror"
4029     CXXWARNINGS="-Wall"
4030     dnl should enable this one day...
4031     dnl CXXWARNINGS="-Wall -Werror"
4032 fi
4033 EXTRA_CFLAGS="$WXDEBUG $WXODBCFLAG $PROFILE $OPTIMISE $INCLUDES"
4034
4035 CFLAGS=`echo $CFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \\+/ /g'`
4036 CXXFLAGS=`echo $CXXFLAGS $EXTRA_CFLAGS $CXXWARNINGS | sed 's/ \+/ /g'`
4037
4038 LDFLAGS="$LDFLAGS $PROFILE"
4039
4040 if test "$wxUSE_GUI" = "yes"; then
4041     dnl TODO add checks that these samples will really compile (i.e. all the
4042     dnl      library features they need are present)
4043
4044     dnl TODO some samples are never built so far:
4045     dnl      ipc, mfc, nativdlg, oleauto, ownerdrw, proplist
4046     SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS controls dialogs dragimag \
4047                      drawing dynamic event font fractal image menu \
4048                      minimal richedit"
4049
4050     dnl this is needed to be able to find AFM files
4051     CPPFLAGS="$CPPFLAGS \$(EXTRADEFS) \$(APPEXTRADEFS)"
4052 else
4053     SAMPLES_SUBDIRS=""
4054 fi
4055
4056 dnl for convenience, sort the samples in alphabetical order
4057 dnl
4058 dnl FIXME For some mysterious reasons, sometimes the directories are duplicated
4059 dnl       in this list - hence uniq. But normally, this shouldn't be needed!
4060 dnl
4061 dnl       Unfortunately, there is a bug in OS/2's tr, such that
4062 dnl       tr ' ' '\n' introduces DOS-like line breaks, whereas tr '\n' ' '
4063 dnl       only removes the Unix-like part of the introduced line break.
4064 SAMPLES_SUBDIRS="`echo $SAMPLES_SUBDIRS | tr -s ' ' | tr ' ' '\n' | sort | uniq | tr '\n' ' '| tr -d '\r'`"
4065
4066 dnl makefile variables
4067 AC_SUBST(LEX_STEM)
4068 AC_SUBST(PATH_IFS)
4069
4070 dnl global options
4071 AC_SUBST(WX_MAJOR_VERSION_NUMBER)
4072 AC_SUBST(WX_MINOR_VERSION_NUMBER)
4073 AC_SUBST(WX_RELEASE_NUMBER)
4074 AC_SUBST(WX_LIBRARY_NAME)
4075 AC_SUBST(WX_LIBRARY_NAME_STATIC)
4076 AC_SUBST(WX_LIBRARY_NAME_SHARED)
4077 AC_SUBST(WX_LIBRARY)
4078 AC_SUBST(WX_TARGET_LIBRARY)
4079 AC_SUBST(WX_LIBRARY_LINK1)
4080 AC_SUBST(WX_LIBRARY_LINK2)
4081 AC_SUBST(WX_LIBRARY_LINK3)
4082 AC_SUBST(PROGRAM_EXT)
4083
4084 dnl global gl options
4085 AC_SUBST(WX_LIBRARY_NAME_GL)
4086 AC_SUBST(WX_LIBRARY_NAME_STATIC_GL)
4087 AC_SUBST(WX_LIBRARY_NAME_SHARED_GL)
4088 AC_SUBST(WX_LIBRARY_GL)
4089 AC_SUBST(WX_TARGET_LIBRARY_GL)
4090 AC_SUBST(WX_LIBRARY_LINK1_GL)
4091 AC_SUBST(WX_LIBRARY_LINK2_GL)
4092 AC_SUBST(WX_LIBRARY_LINK3_GL)
4093
4094 dnl are we supposed to create the links?
4095 AC_SUBST(WX_ALL)
4096 AC_SUBST(WX_ALL_INSTALLED)
4097
4098 AC_SUBST(SHARED_LD)
4099 AC_SUBST(PIC_FLAG)
4100 AC_SUBST(DEP_INFO_FLAGS)
4101 AC_SUBST(CODE_GEN_FLAGS)
4102 AC_SUBST(CODE_GEN_FLAGS_CXX)
4103 AC_SUBST(BURNT_LIBRARY_NAME)
4104 AC_SUBST(BURNT_LIBRARY_NAME_GL)
4105 AC_SUBST(WX_TARGET_LIBRARY_SONAME)
4106 AC_SUBST(WX_TARGET_LIBRARY_TYPE)
4107
4108 dnl debugging options
4109 AC_SUBST(WXDEBUG_DEFINE)
4110
4111 dnl toolkit options
4112 AC_SUBST(USE_GUI)
4113 AC_SUBST(AFMINSTALL)
4114 AC_SUBST(TOOLKIT)
4115 AC_SUBST(TOOLKIT_DEF)
4116 AC_SUBST(TOOLKIT_DIR)
4117 AC_SUBST(TOOLKIT_NAME)
4118 AC_SUBST(TOOLKIT_INCLUDE)
4119 AC_SUBST(WXCONFIG_INCLUDE)
4120
4121 dnl what to compile
4122 AC_SUBST(ALL_OBJECTS)
4123 AC_SUBST(ALL_DEPFILES)
4124
4125 dnl distribution vars
4126 AC_SUBST(GUIDIST)
4127 AC_SUBST(PORT_FILES)
4128 AC_SUBST(DISTDIR)
4129 AC_SUBST(RPM_SPEC)
4130 AC_SUBST(RPM_FILES)
4131
4132 dnl additional subdirectories where we will build
4133 AC_SUBST(SRC_SUBDIRS)
4134 AC_SUBST(INCLUDE_SUBDIRS)
4135 AC_SUBST(UTILS_SUBDIRS)
4136 AC_SUBST(DOCS_SUBDIRS)
4137 AC_SUBST(SAMPLES_SUBDIRS)
4138 AC_SUBST(USER_SUBDIRS)
4139
4140 dnl additional libraries and linker settings
4141 AC_SUBST(LDFLAGS)
4142 AC_SUBST(EXTRA_LIBS)
4143 AC_SUBST(OPENGL_LIBS)
4144 AC_SUBST(EXTRADEFS)
4145 AC_SUBST(LIBS)
4146 AC_SUBST(LD_LIBS)
4147
4148 dnl additional resurces settings
4149 AC_SUBST(RCINPUTSWITCH)
4150 AC_SUBST(RCOUTPUTSWITCH)
4151 AC_SUBST(RESPROGRAM)
4152 AC_SUBST(RESCOMP)
4153 AC_SUBST(RESFLAGS)
4154 dnl additional for Mac OS X
4155 AC_SUBST(REZ)
4156 AC_SUBST(REZFLAGS)
4157 AC_SUBST(DEREZ)
4158 AC_SUBST(DEREZFLAGS)
4159 AC_SUBST(LIBWXMACRES)
4160 AC_SUBST(LIBWXMACRESCOMP)
4161
4162 dnl These seam to be missing
4163 AC_SUBST(DLLTOOL)
4164 AC_SUBST(AS)
4165 AC_SUBST(NM)
4166 AC_SUBST(LD)
4167 AC_SUBST(MAKEINFO)
4168
4169
4170 dnl MAKE_SET will be replaced with "MAKE=..." or nothing if make sets MAKE
4171 dnl itself (this is macro is required if SUBDIRS variable is used in Makefile.am
4172 dnl - and we do use it)
4173 AC_PROG_MAKE_SET
4174
4175 dnl move setup.h back if available
4176 if test -d include; then
4177     if test -d include/wx; then
4178         if test -d include/wx/${TOOLKIT_DIR}; then
4179             if test -f include/wx/${TOOLKIT_DIR}/setup.h; then
4180                 mv -f include/wx/${TOOLKIT_DIR}/setup.h setup.h
4181             fi
4182         fi
4183     fi
4184 fi
4185
4186 AC_CONFIG_HEADER(setup.h:setup.h.in)
4187
4188 dnl some more GUI only things
4189 if test "$wxUSE_GUI" = "yes"; then
4190     dnl we need to pass SAMPLES_SUBDIRS (and some other) to the configure in
4191     dnl samples and the only way to do it is, again, use the cache
4192     wx_cv_path_samplesubdirs=$SAMPLES_SUBDIRS
4193     wx_cv_path_ifs=$PATH_IFS
4194     wx_cv_program_ext=$PROGRAM_EXT
4195     wx_cv_target_library=$WX_TARGET_LIBRARY
4196     wx_cv_target_libtype=$WX_TARGET_LIBRARY_TYPE
4197     AC_CONFIG_SUBDIRS(demos samples utils contrib)
4198 fi
4199 dnl from wxUSE_GUI
4200
4201 dnl create each of the files in the space separated list from the file.in
4202 dnl (the original file name may be overriden by appending another name after a
4203 dnl colon)
4204 AC_OUTPUT([
4205             wx-config
4206             src/make.env
4207             src/makeprog.env
4208             src/makelib.env
4209             Makefile
4210           ],
4211           [
4212             chmod +x wx-config
4213             mv wx-config wx${TOOLKIT_NAME}-config
4214             ${LN_S} wx${TOOLKIT_NAME}-config wx-config
4215
4216             dnl the debian build process wants setup.h in the lib subdir so we
4217             dnl can pretend wxWin is already installed, so we *copy* it there
4218
4219             if test ! -d lib; then
4220               mkdir lib
4221             fi
4222             if test ! -d lib/wx; then
4223               mkdir lib/wx
4224             fi
4225             if test ! -d lib/wx/include; then
4226               mkdir lib/wx/include
4227             fi
4228             if test ! -d lib/wx/include/wx; then
4229               mkdir lib/wx/include/wx
4230             fi
4231             if test ! -d lib/wx/include/wx/${TOOLKIT_NAME}; then
4232               mkdir lib/wx/include/wx/${TOOLKIT_NAME}
4233             fi
4234             if test -f setup.h; then
4235                 cp -fp setup.h lib/wx/include/wx/${TOOLKIT_NAME}/setup.h
4236             fi
4237
4238             dnl *move* setup.h to its final place
4239
4240             if test ! -d include; then
4241               mkdir include
4242             fi
4243             if test ! -d include/wx; then
4244               mkdir include/wx
4245             fi
4246             if test ! -d include/wx/${TOOLKIT_DIR}; then
4247               mkdir include/wx/${TOOLKIT_DIR}
4248             fi
4249             if test -f setup.h; then
4250                 cp -fp setup.h include/wx/${TOOLKIT_DIR}/setup.h
4251             fi
4252
4253           ],
4254           [
4255             TOOLKIT_DIR="${TOOLKIT_DIR}"
4256             TOOLKIT_NAME="${TOOLKIT_NAME}"
4257             LN_S="${LN_S}"
4258           ]
4259          )
4260