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