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