]> git.saurik.com Git - wxWidgets.git/blob - aclocal.m4
added extra parentheses to wxDynamicCast() to allow using it like wxDynamicCast(foo...
[wxWidgets.git] / aclocal.m4
1 dnl aclocal.m4 generated automatically by aclocal 1.4-p5
2
3 dnl Copyright (C) 1994, 1995-8, 1999, 2001 Free Software Foundation, Inc.
4 dnl This file is free software; the Free Software Foundation
5 dnl gives unlimited permission to copy and/or distribute it,
6 dnl with or without modifications, as long as this notice is preserved.
7
8 dnl This program is distributed in the hope that it will be useful,
9 dnl but WITHOUT ANY WARRANTY, to the extent permitted by law; without
10 dnl even the implied warranty of MERCHANTABILITY or FITNESS FOR A
11 dnl PARTICULAR PURPOSE.
12
13 dnl ---------------------------------------------------------------------------
14 dnl
15 dnl Macros for configure.in for wxWindows by Robert Roebling, Phil Blecker,
16 dnl Vadim Zeitlin and Ron Lee
17 dnl
18 dnl This script is under the wxWindows licence.
19 dnl
20 dnl Version: $Id$
21 dnl ---------------------------------------------------------------------------
22
23 dnl ===========================================================================
24 dnl macros to find the a file in the list of include/lib paths
25 dnl ===========================================================================
26
27 dnl ---------------------------------------------------------------------------
28 dnl call WX_PATH_FIND_INCLUDES(search path, header name), sets ac_find_includes
29 dnl to the full name of the file that was found or leaves it empty if not found
30 dnl ---------------------------------------------------------------------------
31 AC_DEFUN([WX_PATH_FIND_INCLUDES],
32 [
33 ac_find_includes=
34 for ac_dir in $1;
35 do
36 if test -f "$ac_dir/$2"; then
37 ac_find_includes=$ac_dir
38 break
39 fi
40 done
41 ])
42
43 dnl ---------------------------------------------------------------------------
44 dnl call WX_PATH_FIND_LIBRARIES(search path, header name), sets ac_find_libraries
45 dnl to the full name of the file that was found or leaves it empty if not found
46 dnl ---------------------------------------------------------------------------
47 AC_DEFUN([WX_PATH_FIND_LIBRARIES],
48 [
49 ac_find_libraries=
50 for ac_dir in $1;
51 do
52 for ac_extension in a so sl dylib; do
53 if test -f "$ac_dir/lib$2.$ac_extension"; then
54 ac_find_libraries=$ac_dir
55 break 2
56 fi
57 done
58 done
59 ])
60
61 dnl ---------------------------------------------------------------------------
62 dnl Path to include, already defined
63 dnl ---------------------------------------------------------------------------
64 AC_DEFUN([WX_INCLUDE_PATH_EXIST],
65 [
66 ac_path_to_include=$1
67 echo "$2" | grep "\-I$1" > /dev/null
68 result=$?
69 if test $result = 0; then
70 ac_path_to_include=""
71 else
72 ac_path_to_include=" -I$1"
73 fi
74 ])
75
76 dnl ---------------------------------------------------------------------------
77 dnl Path to link, already defined
78 dnl ---------------------------------------------------------------------------
79 AC_DEFUN([WX_LINK_PATH_EXIST],
80 [
81 echo "$2" | grep "\-L$1" > /dev/null
82 result=$?
83 if test $result = 0; then
84 ac_path_to_link=""
85 else
86 ac_path_to_link=" -L$1"
87 fi
88 ])
89
90 dnl ===========================================================================
91 dnl C++ features test
92 dnl ===========================================================================
93
94 dnl ---------------------------------------------------------------------------
95 dnl WX_CPP_NEW_HEADERS checks whether the compiler has "new" <iostream> header
96 dnl or only the old <iostream.h> one - it may be generally assumed that if
97 dnl <iostream> exists, the other "new" headers (without .h) exist too.
98 dnl
99 dnl call WX_CPP_NEW_HEADERS(actiof-if-true, action-if-false-or-cross-compiling)
100 dnl ---------------------------------------------------------------------------
101
102 AC_DEFUN([WX_CPP_NEW_HEADERS],
103 [
104 if test "$cross_compiling" = "yes"; then
105 ifelse([$2], , :, [$2])
106 else
107 AC_LANG_SAVE
108 AC_LANG_CPLUSPLUS
109
110 AC_CHECK_HEADERS(iostream)
111
112 if test "$ac_cv_header_iostream" = "yes" ; then
113 ifelse([$1], , :, [$1])
114 else
115 ifelse([$2], , :, [$2])
116 fi
117
118 AC_LANG_RESTORE
119 fi
120 ])
121
122 dnl ---------------------------------------------------------------------------
123 dnl WX_CPP_BOOL checks whether the C++ compiler has a built in bool type
124 dnl
125 dnl call WX_CPP_BOOL - will define HAVE_BOOL if the compiler supports bool
126 dnl ---------------------------------------------------------------------------
127
128 AC_DEFUN([WX_CPP_BOOL],
129 [
130 AC_CACHE_CHECK([if C++ compiler supports bool], wx_cv_cpp_bool,
131 [
132 AC_LANG_SAVE
133 AC_LANG_CPLUSPLUS
134
135 AC_TRY_COMPILE(
136 [
137 ],
138 [
139 bool b = true;
140
141 return 0;
142 ],
143 [
144 wx_cv_cpp_bool=yes
145 ],
146 [
147 wx_cv_cpp_bool=no
148 ]
149 )
150
151 AC_LANG_RESTORE
152 ])
153
154 if test "$wx_cv_cpp_bool" = "yes"; then
155 AC_DEFINE(HAVE_BOOL)
156 fi
157 ])
158
159 dnl ---------------------------------------------------------------------------
160 dnl WX_CPP_EXPLICIT checks whether the C++ compiler support the explicit
161 dnl keyword and defines HAVE_EXPLICIT if this is the case
162 dnl ---------------------------------------------------------------------------
163
164 AC_DEFUN([WX_CPP_EXPLICIT],
165 [
166 AC_CACHE_CHECK([if C++ compiler supports the explicit keyword],
167 wx_cv_explicit,
168 [
169 AC_LANG_SAVE
170 AC_LANG_CPLUSPLUS
171
172 dnl do the test in 2 steps: first check that the compiler knows about the
173 dnl explicit keyword at all and then verify that it really honours it
174 AC_TRY_COMPILE(
175 [
176 class Foo { public: explicit Foo(int) {} };
177 ],
178 [
179 return 0;
180 ],
181 [
182 AC_TRY_COMPILE(
183 [
184 class Foo { public: explicit Foo(int) {} };
185 static void TakeFoo(const Foo& foo) { }
186 ],
187 [
188 TakeFoo(17);
189 return 0;
190 ],
191 wx_cv_explicit=no,
192 wx_cv_explicit=yes
193 )
194 ],
195 wx_cv_explicit=no
196 )
197
198 AC_LANG_RESTORE
199 ])
200
201 if test "$wx_cv_explicit" = "yes"; then
202 AC_DEFINE(HAVE_EXPLICIT)
203 fi
204 ])
205
206 dnl ---------------------------------------------------------------------------
207 dnl a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
208 dnl ---------------------------------------------------------------------------
209
210 AC_DEFUN([WX_C_BIGENDIAN],
211 [AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian,
212 [ac_cv_c_bigendian=unknown
213 # See if sys/param.h defines the BYTE_ORDER macro.
214 AC_TRY_COMPILE([#include <sys/types.h>
215 #include <sys/param.h>], [
216 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
217 bogus endian macros
218 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
219 AC_TRY_COMPILE([#include <sys/types.h>
220 #include <sys/param.h>], [
221 #if BYTE_ORDER != BIG_ENDIAN
222 not big endian
223 #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
224 if test $ac_cv_c_bigendian = unknown; then
225 AC_TRY_RUN([main () {
226 /* Are we little or big endian? From Harbison&Steele. */
227 union
228 {
229 long l;
230 char c[sizeof (long)];
231 } u;
232 u.l = 1;
233 exit (u.c[sizeof (long) - 1] == 1);
234 }], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown])
235 fi])
236 if test $ac_cv_c_bigendian = unknown; then
237 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])
238 fi
239 if test $ac_cv_c_bigendian = yes; then
240 AC_DEFINE(WORDS_BIGENDIAN)
241 fi
242 ])
243
244 dnl ---------------------------------------------------------------------------
245 dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
246 dnl ---------------------------------------------------------------------------
247
248 AC_DEFUN([WX_ARG_CACHE_INIT],
249 [
250 wx_arg_cache_file="configarg.cache"
251 echo "loading argument cache $wx_arg_cache_file"
252 rm -f ${wx_arg_cache_file}.tmp
253 touch ${wx_arg_cache_file}.tmp
254 touch ${wx_arg_cache_file}
255 ])
256
257 AC_DEFUN([WX_ARG_CACHE_FLUSH],
258 [
259 echo "saving argument cache $wx_arg_cache_file"
260 mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
261 ])
262
263 dnl this macro checks for a three-valued command line --with argument:
264 dnl possible arguments are 'yes', 'no', 'sys', or 'builtin'
265 dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
266 AC_DEFUN([WX_ARG_SYS_WITH],
267 [
268 AC_MSG_CHECKING([for --with-$1])
269 no_cache=0
270 AC_ARG_WITH($1, [$2],
271 [
272 if test "$withval" = yes; then
273 ac_cv_use_$1='$3=yes'
274 elif test "$withval" = no; then
275 ac_cv_use_$1='$3=no'
276 elif test "$withval" = sys; then
277 ac_cv_use_$1='$3=sys'
278 elif test "$withval" = builtin; then
279 ac_cv_use_$1='$3=builtin'
280 else
281 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
282 fi
283 ],
284 [
285 LINE=`grep "$3" ${wx_arg_cache_file}`
286 if test "x$LINE" != x ; then
287 eval "DEFAULT_$LINE"
288 else
289 no_cache=1
290 fi
291
292 ac_cv_use_$1='$3='$DEFAULT_$3
293 ])
294
295 eval "$ac_cv_use_$1"
296 if test "$no_cache" != 1; then
297 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
298 fi
299
300 if test "$$3" = yes; then
301 AC_MSG_RESULT(yes)
302 elif test "$$3" = no; then
303 AC_MSG_RESULT(no)
304 elif test "$$3" = sys; then
305 AC_MSG_RESULT([system version])
306 elif test "$$3" = builtin; then
307 AC_MSG_RESULT([builtin version])
308 else
309 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
310 fi
311 ])
312
313 dnl this macro checks for a command line argument and caches the result
314 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
315 AC_DEFUN([WX_ARG_WITH],
316 [
317 AC_MSG_CHECKING([for --with-$1])
318 no_cache=0
319 AC_ARG_WITH($1, [$2],
320 [
321 if test "$withval" = yes; then
322 ac_cv_use_$1='$3=yes'
323 else
324 ac_cv_use_$1='$3=no'
325 fi
326 ],
327 [
328 LINE=`grep "$3" ${wx_arg_cache_file}`
329 if test "x$LINE" != x ; then
330 eval "DEFAULT_$LINE"
331 else
332 no_cache=1
333 fi
334
335 ac_cv_use_$1='$3='$DEFAULT_$3
336 ])
337
338 eval "$ac_cv_use_$1"
339 if test "$no_cache" != 1; then
340 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
341 fi
342
343 if test "$$3" = yes; then
344 AC_MSG_RESULT(yes)
345 else
346 AC_MSG_RESULT(no)
347 fi
348 ])
349
350 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
351 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
352 AC_DEFUN([WX_ARG_ENABLE],
353 [
354 AC_MSG_CHECKING([for --enable-$1])
355 no_cache=0
356 AC_ARG_ENABLE($1, [$2],
357 [
358 if test "$enableval" = yes; then
359 ac_cv_use_$1='$3=yes'
360 else
361 ac_cv_use_$1='$3=no'
362 fi
363 ],
364 [
365 LINE=`grep "$3" ${wx_arg_cache_file}`
366 if test "x$LINE" != x ; then
367 eval "DEFAULT_$LINE"
368 else
369 no_cache=1
370 fi
371
372 ac_cv_use_$1='$3='$DEFAULT_$3
373 ])
374
375 eval "$ac_cv_use_$1"
376 if test "$no_cache" != 1; then
377 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
378 fi
379
380 if test "$$3" = yes; then
381 AC_MSG_RESULT(yes)
382 else
383 AC_MSG_RESULT(no)
384 fi
385 ])
386
387
388
389 dnl ===========================================================================
390 dnl "3rd party" macros included here because they are not widely available
391 dnl ===========================================================================
392
393 dnl ---------------------------------------------------------------------------
394 dnl test for availability of iconv()
395 dnl ---------------------------------------------------------------------------
396
397 dnl From Bruno Haible.
398
399 AC_DEFUN([AM_ICONV],
400 [
401 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
402 dnl those with the standalone portable GNU libiconv installed).
403
404 AC_ARG_WITH([libiconv-prefix],
405 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
406 for dir in `echo "$withval" | tr : ' '`; do
407 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
408 if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
409 done
410 ])
411
412 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
413 am_cv_func_iconv="no, consider installing GNU libiconv"
414 am_cv_lib_iconv=no
415 AC_TRY_LINK([#include <stdlib.h>
416 #include <iconv.h>],
417 [iconv_t cd = iconv_open("","");
418 iconv(cd,NULL,NULL,NULL,NULL);
419 iconv_close(cd);],
420 am_cv_func_iconv=yes)
421 if test "$am_cv_func_iconv" != yes; then
422 am_save_LIBS="$LIBS"
423 LIBS="$LIBS -liconv"
424 AC_TRY_LINK([#include <stdlib.h>
425 #include <iconv.h>],
426 [iconv_t cd = iconv_open("","");
427 iconv(cd,NULL,NULL,NULL,NULL);
428 iconv_close(cd);],
429 am_cv_lib_iconv=yes
430 am_cv_func_iconv=yes)
431 LIBS="$am_save_LIBS"
432 fi
433 ])
434 if test "$am_cv_func_iconv" = yes; then
435 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
436 AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
437 AC_TRY_COMPILE([
438 #include <stdlib.h>
439 #include <iconv.h>
440 extern
441 #ifdef __cplusplus
442 "C"
443 #endif
444 #if defined(__STDC__) || defined(__cplusplus)
445 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
446 #else
447 size_t iconv();
448 #endif
449 ],
450 [],
451 wx_cv_func_iconv_const="no",
452 wx_cv_func_iconv_const="yes"
453 )
454 )
455
456 iconv_const=
457 if test "x$wx_cv_func_iconv_const" = "xyes"; then
458 iconv_const="const"
459 fi
460
461 AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
462 [Define as const if the declaration of iconv() needs const.])
463 fi
464 LIBICONV=
465 if test "$am_cv_lib_iconv" = yes; then
466 LIBICONV="-liconv"
467 fi
468 AC_SUBST(LIBICONV)
469 ])
470
471 dnl ---------------------------------------------------------------------------
472 dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
473 dnl ---------------------------------------------------------------------------
474
475 dnl WX_SYS_LARGEFILE_TEST
476 dnl
477 dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
478 dnl arithmetic properly but this failed miserably with gcc under Linux
479 dnl whereas the system still supports 64 bit files, so now simply check
480 dnl that off_t is big enough
481 define(WX_SYS_LARGEFILE_TEST,
482 [typedef struct {
483 unsigned int field: sizeof(off_t) == 8;
484 } wxlf;
485 ])
486
487
488 dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
489 define(WX_SYS_LARGEFILE_MACRO_VALUE,
490 [
491 AC_CACHE_CHECK([for $1 value needed for large files], [$3],
492 [
493 AC_TRY_COMPILE([#define $1 $2
494 #include <sys/types.h>],
495 WX_SYS_LARGEFILE_TEST,
496 [$3=$2],
497 [$3=no])
498 ]
499 )
500
501 if test "$$3" != no; then
502 wx_largefile=yes
503 AC_DEFINE_UNQUOTED([$1], [$$3])
504 fi
505 ])
506
507
508 dnl AC_SYS_LARGEFILE
509 dnl ----------------
510 dnl By default, many hosts won't let programs access large files;
511 dnl one must use special compiler options to get large-file access to work.
512 dnl For more details about this brain damage please see:
513 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
514 AC_DEFUN([AC_SYS_LARGEFILE],
515 [AC_ARG_ENABLE(largefile,
516 [ --disable-largefile omit support for large files])
517 if test "$enable_largefile" != no; then
518 dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
519 dnl _LARGE_FILES -- for AIX
520 wx_largefile=no
521 WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
522 if test "x$wx_largefile" != "xyes"; then
523 WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
524 fi
525
526 AC_MSG_CHECKING(if large file support is available)
527 if test "x$wx_largefile" = "xyes"; then
528 AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
529 fi
530 AC_MSG_RESULT($wx_largefile)
531 fi
532 ])
533
534 # Configure paths for GTK+
535 # Owen Taylor 1997-2001
536
537 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
538 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
539 dnl pass to pkg-config
540 dnl
541 AC_DEFUN(AM_PATH_GTK_2_0,
542 [dnl
543 dnl Get the cflags and libraries from pkg-config
544 dnl
545 AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
546 , enable_gtktest=yes)
547
548 pkg_config_args=gtk+-2.0
549 for module in . $4
550 do
551 case "$module" in
552 gthread)
553 pkg_config_args="$pkg_config_args gthread-2.0"
554 ;;
555 esac
556 done
557
558 no_gtk=""
559
560 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
561
562 if test x$PKG_CONFIG != xno ; then
563 if pkg-config --atleast-pkgconfig-version 0.7 ; then
564 :
565 else
566 echo *** pkg-config too old; version 0.7 or better required.
567 no_gtk=yes
568 PKG_CONFIG=no
569 fi
570 else
571 no_gtk=yes
572 fi
573
574 min_gtk_version=ifelse([$1], ,2.0.0,$1)
575 AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
576
577 if test x$PKG_CONFIG != xno ; then
578 ## don't try to run the test against uninstalled libtool libs
579 if $PKG_CONFIG --uninstalled $pkg_config_args; then
580 echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
581 enable_gtktest=no
582 fi
583
584 if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
585 :
586 else
587 no_gtk=yes
588 fi
589 fi
590
591 if test x"$no_gtk" = x ; then
592 GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
593 GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
594 gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
595 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
596 gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
597 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
598 gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
599 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
600 if test "x$enable_gtktest" = "xyes" ; then
601 ac_save_CFLAGS="$CFLAGS"
602 ac_save_LIBS="$LIBS"
603 CFLAGS="$CFLAGS $GTK_CFLAGS"
604 LIBS="$GTK_LIBS $LIBS"
605 dnl
606 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
607 dnl checks the results of pkg-config to some extent)
608 dnl
609 rm -f conf.gtktest
610 AC_TRY_RUN([
611 #include <gtk/gtk.h>
612 #include <stdio.h>
613 #include <stdlib.h>
614
615 int
616 main ()
617 {
618 int major, minor, micro;
619 char *tmp_version;
620
621 system ("touch conf.gtktest");
622
623 /* HP/UX 9 (%@#!) writes to sscanf strings */
624 tmp_version = g_strdup("$min_gtk_version");
625 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
626 printf("%s, bad version string\n", "$min_gtk_version");
627 exit(1);
628 }
629
630 if ((gtk_major_version != $gtk_config_major_version) ||
631 (gtk_minor_version != $gtk_config_minor_version) ||
632 (gtk_micro_version != $gtk_config_micro_version))
633 {
634 printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
635 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
636 gtk_major_version, gtk_minor_version, gtk_micro_version);
637 printf ("*** was found! If pkg-config was correct, then it is best\n");
638 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
639 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
640 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
641 printf("*** required on your system.\n");
642 printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
643 printf("*** to point to the correct configuration files\n");
644 }
645 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
646 (gtk_minor_version != GTK_MINOR_VERSION) ||
647 (gtk_micro_version != GTK_MICRO_VERSION))
648 {
649 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
650 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
651 printf("*** library (version %d.%d.%d)\n",
652 gtk_major_version, gtk_minor_version, gtk_micro_version);
653 }
654 else
655 {
656 if ((gtk_major_version > major) ||
657 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
658 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
659 {
660 return 0;
661 }
662 else
663 {
664 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
665 gtk_major_version, gtk_minor_version, gtk_micro_version);
666 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
667 major, minor, micro);
668 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
669 printf("***\n");
670 printf("*** If you have already installed a sufficiently new version, this error\n");
671 printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
672 printf("*** being found. The easiest way to fix this is to remove the old version\n");
673 printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
674 printf("*** correct copy of pkg-config. (In this case, you will have to\n");
675 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
676 printf("*** so that the correct libraries are found at run-time))\n");
677 }
678 }
679 return 1;
680 }
681 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
682 CFLAGS="$ac_save_CFLAGS"
683 LIBS="$ac_save_LIBS"
684 fi
685 fi
686 if test "x$no_gtk" = x ; then
687 AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
688 ifelse([$2], , :, [$2])
689 else
690 AC_MSG_RESULT(no)
691 if test "$PKG_CONFIG" = "no" ; then
692 echo "*** A new enough version of pkg-config was not found."
693 echo "*** See http://pkgconfig.sourceforge.net"
694 else
695 if test -f conf.gtktest ; then
696 :
697 else
698 echo "*** Could not run GTK+ test program, checking why..."
699 ac_save_CFLAGS="$CFLAGS"
700 ac_save_LIBS="$LIBS"
701 CFLAGS="$CFLAGS $GTK_CFLAGS"
702 LIBS="$LIBS $GTK_LIBS"
703 AC_TRY_LINK([
704 #include <gtk/gtk.h>
705 #include <stdio.h>
706 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
707 [ echo "*** The test program compiled, but did not run. This usually means"
708 echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
709 echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
710 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
711 echo "*** to the installed location Also, make sure you have run ldconfig if that"
712 echo "*** is required on your system"
713 echo "***"
714 echo "*** If you have an old version installed, it is best to remove it, although"
715 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
716 [ echo "*** The test program failed to compile or link. See the file config.log for the"
717 echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
718 CFLAGS="$ac_save_CFLAGS"
719 LIBS="$ac_save_LIBS"
720 fi
721 fi
722 GTK_CFLAGS=""
723 GTK_LIBS=""
724 ifelse([$3], , :, [$3])
725 fi
726 AC_SUBST(GTK_CFLAGS)
727 AC_SUBST(GTK_LIBS)
728 rm -f conf.gtktest
729 ])
730
731
732 dnl PKG_CHECK_MODULES(GSTUFF, gtk+-2.0 >= 1.3 glib = 1.3.4, action-if, action-not)
733 dnl defines GSTUFF_LIBS, GSTUFF_CFLAGS, see pkg-config man page
734 dnl also defines GSTUFF_PKG_ERRORS on error
735 AC_DEFUN(PKG_CHECK_MODULES, [
736 succeeded=no
737
738 if test -z "$PKG_CONFIG"; then
739 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
740 fi
741
742 if test "$PKG_CONFIG" = "no" ; then
743 echo "*** The pkg-config script could not be found. Make sure it is"
744 echo "*** in your path, or set the PKG_CONFIG environment variable"
745 echo "*** to the full path to pkg-config."
746 echo "*** Or see http://www.freedesktop.org/software/pkgconfig to get pkg-config."
747 else
748 PKG_CONFIG_MIN_VERSION=0.9.0
749 if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
750 AC_MSG_CHECKING(for $2)
751
752 if $PKG_CONFIG --exists "$2" ; then
753 AC_MSG_RESULT(yes)
754 succeeded=yes
755
756 AC_MSG_CHECKING($1_CFLAGS)
757 $1_CFLAGS=`$PKG_CONFIG --cflags "$2"`
758 AC_MSG_RESULT($$1_CFLAGS)
759
760 AC_MSG_CHECKING($1_LIBS)
761 $1_LIBS=`$PKG_CONFIG --libs "$2"`
762 AC_MSG_RESULT($$1_LIBS)
763 else
764 $1_CFLAGS=""
765 $1_LIBS=""
766 ## If we have a custom action on failure, don't print errors, but
767 ## do set a variable so people can do so.
768 $1_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"`
769 ifelse([$4], ,echo $$1_PKG_ERRORS,)
770 fi
771
772 AC_SUBST($1_CFLAGS)
773 AC_SUBST($1_LIBS)
774 else
775 echo "*** Your version of pkg-config is too old. You need version $PKG_CONFIG_MIN_VERSION or newer."
776 echo "*** See http://www.freedesktop.org/software/pkgconfig"
777 fi
778 fi
779
780 if test $succeeded = yes; then
781 ifelse([$3], , :, [$3])
782 else
783 ifelse([$4], , AC_MSG_ERROR([Library requirements ($2) not met; consider adjusting the PKG_CONFIG_PATH environment variable if your libraries are in a nonstandard prefix so pkg-config can find them.]), [$4])
784 fi
785 ])
786
787
788
789 # Configure paths for GTK+
790 # Owen Taylor 97-11-3
791
792 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
793 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
794 dnl
795 AC_DEFUN(AM_PATH_GTK,
796 [dnl
797 dnl Get the cflags and libraries from the gtk-config script
798 dnl
799 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
800 gtk_config_prefix="$withval", gtk_config_prefix="")
801 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
802 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
803 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
804 , enable_gtktest=yes)
805
806 for module in . $4
807 do
808 case "$module" in
809 gthread)
810 gtk_config_args="$gtk_config_args gthread"
811 ;;
812 esac
813 done
814
815 if test x$gtk_config_exec_prefix != x ; then
816 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
817 if test x${GTK_CONFIG+set} != xset ; then
818 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
819 fi
820 fi
821 if test x$gtk_config_prefix != x ; then
822 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
823 if test x${GTK_CONFIG+set} != xset ; then
824 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
825 fi
826 fi
827
828 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
829 min_gtk_version=ifelse([$1], ,0.99.7,$1)
830 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
831 no_gtk=""
832 if test "$GTK_CONFIG" = "no" ; then
833 no_gtk=yes
834 else
835 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
836 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
837 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
838 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
839 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
840 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
841 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
842 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
843 if test "x$enable_gtktest" = "xyes" ; then
844 ac_save_CFLAGS="$CFLAGS"
845 ac_save_LIBS="$LIBS"
846 CFLAGS="$CFLAGS $GTK_CFLAGS"
847 LIBS="$GTK_LIBS $LIBS"
848 dnl
849 dnl Now check if the installed GTK is sufficiently new. (Also sanity
850 dnl checks the results of gtk-config to some extent
851 dnl
852 rm -f conf.gtktest
853 AC_TRY_RUN([
854 #include <gtk/gtk.h>
855 #include <stdio.h>
856 #include <stdlib.h>
857
858 int
859 main ()
860 {
861 int major, minor, micro;
862 char *tmp_version;
863
864 system ("touch conf.gtktest");
865
866 /* HP/UX 9 (%@#!) writes to sscanf strings */
867 tmp_version = g_strdup("$min_gtk_version");
868 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
869 printf("%s, bad version string\n", "$min_gtk_version");
870 exit(1);
871 }
872
873 if ((gtk_major_version != $gtk_config_major_version) ||
874 (gtk_minor_version != $gtk_config_minor_version) ||
875 (gtk_micro_version != $gtk_config_micro_version))
876 {
877 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
878 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
879 gtk_major_version, gtk_minor_version, gtk_micro_version);
880 printf ("*** was found! If gtk-config was correct, then it is best\n");
881 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
882 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
883 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
884 printf("*** required on your system.\n");
885 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
886 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
887 printf("*** before re-running configure\n");
888 }
889 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
890 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
891 (gtk_minor_version != GTK_MINOR_VERSION) ||
892 (gtk_micro_version != GTK_MICRO_VERSION))
893 {
894 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
895 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
896 printf("*** library (version %d.%d.%d)\n",
897 gtk_major_version, gtk_minor_version, gtk_micro_version);
898 }
899 #endif /* defined (GTK_MAJOR_VERSION) ... */
900 else
901 {
902 if ((gtk_major_version > major) ||
903 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
904 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
905 {
906 return 0;
907 }
908 else
909 {
910 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
911 gtk_major_version, gtk_minor_version, gtk_micro_version);
912 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
913 major, minor, micro);
914 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
915 printf("***\n");
916 printf("*** If you have already installed a sufficiently new version, this error\n");
917 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
918 printf("*** being found. The easiest way to fix this is to remove the old version\n");
919 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
920 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
921 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
922 printf("*** so that the correct libraries are found at run-time))\n");
923 }
924 }
925 return 1;
926 }
927 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
928 CFLAGS="$ac_save_CFLAGS"
929 LIBS="$ac_save_LIBS"
930 fi
931 fi
932 if test "x$no_gtk" = x ; then
933 AC_MSG_RESULT(yes)
934 ifelse([$2], , :, [$2])
935 else
936 AC_MSG_RESULT(no)
937 if test "$GTK_CONFIG" = "no" ; then
938 echo "*** The gtk-config script installed by GTK could not be found"
939 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
940 echo "*** your path, or set the GTK_CONFIG environment variable to the"
941 echo "*** full path to gtk-config."
942 else
943 if test -f conf.gtktest ; then
944 :
945 else
946 echo "*** Could not run GTK test program, checking why..."
947 CFLAGS="$CFLAGS $GTK_CFLAGS"
948 LIBS="$LIBS $GTK_LIBS"
949 AC_TRY_LINK([
950 #include <gtk/gtk.h>
951 #include <stdio.h>
952 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
953 [ echo "*** The test program compiled, but did not run. This usually means"
954 echo "*** that the run-time linker is not finding GTK or finding the wrong"
955 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
956 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
957 echo "*** to the installed location Also, make sure you have run ldconfig if that"
958 echo "*** is required on your system"
959 echo "***"
960 echo "*** If you have an old version installed, it is best to remove it, although"
961 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
962 echo "***"
963 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
964 echo "*** came with the system with the command"
965 echo "***"
966 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
967 [ echo "*** The test program failed to compile or link. See the file config.log for the"
968 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
969 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
970 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
971 CFLAGS="$ac_save_CFLAGS"
972 LIBS="$ac_save_LIBS"
973 fi
974 fi
975 GTK_CFLAGS=""
976 GTK_LIBS=""
977 ifelse([$3], , :, [$3])
978 fi
979 AC_SUBST(GTK_CFLAGS)
980 AC_SUBST(GTK_LIBS)
981 rm -f conf.gtktest
982 ])
983