]> git.saurik.com Git - wxWidgets.git/blob - aclocal.m4
Applied patch [ 583922 ] Make generic/wxListCtrl avail. in WIN32
[wxWidgets.git] / aclocal.m4
1 dnl aclocal.m4 generated automatically by aclocal 1.4
2
3 dnl Copyright (C) 1994, 1995-8, 1999 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 CFLAGS="$CFLAGS $GTK_CFLAGS"
700 LIBS="$LIBS $GTK_LIBS"
701 AC_TRY_LINK([
702 #include <gtk/gtk.h>
703 #include <stdio.h>
704 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
705 [ echo "*** The test program compiled, but did not run. This usually means"
706 echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
707 echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
708 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
709 echo "*** to the installed location Also, make sure you have run ldconfig if that"
710 echo "*** is required on your system"
711 echo "***"
712 echo "*** If you have an old version installed, it is best to remove it, although"
713 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
714 [ echo "*** The test program failed to compile or link. See the file config.log for the"
715 echo "*** exact error that occured. This usually means GTK+ was incorrectly installed"
716 echo "*** or that you have moved GTK+ since it was installed. In the latter case, you"
717 echo "*** may want to edit the pkg-config script: $PKG_CONFIG" ])
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 # Configure paths for GTK+
732 # Owen Taylor 97-11-3
733
734 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
735 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
736 dnl
737 AC_DEFUN(AM_PATH_GTK,
738 [dnl
739 dnl Get the cflags and libraries from the gtk-config script
740 dnl
741 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
742 gtk_config_prefix="$withval", gtk_config_prefix="")
743 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
744 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
745 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
746 , enable_gtktest=yes)
747
748 for module in . $4
749 do
750 case "$module" in
751 gthread)
752 gtk_config_args="$gtk_config_args gthread"
753 ;;
754 esac
755 done
756
757 if test x$gtk_config_exec_prefix != x ; then
758 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
759 if test x${GTK_CONFIG+set} != xset ; then
760 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
761 fi
762 fi
763 if test x$gtk_config_prefix != x ; then
764 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
765 if test x${GTK_CONFIG+set} != xset ; then
766 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
767 fi
768 fi
769
770 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
771 min_gtk_version=ifelse([$1], ,0.99.7,$1)
772 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
773 no_gtk=""
774 if test "$GTK_CONFIG" = "no" ; then
775 no_gtk=yes
776 else
777 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
778 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
779 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
780 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
781 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
782 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
783 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
784 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
785 if test "x$enable_gtktest" = "xyes" ; then
786 ac_save_CFLAGS="$CFLAGS"
787 ac_save_LIBS="$LIBS"
788 CFLAGS="$CFLAGS $GTK_CFLAGS"
789 LIBS="$GTK_LIBS $LIBS"
790 dnl
791 dnl Now check if the installed GTK is sufficiently new. (Also sanity
792 dnl checks the results of gtk-config to some extent
793 dnl
794 rm -f conf.gtktest
795 AC_TRY_RUN([
796 #include <gtk/gtk.h>
797 #include <stdio.h>
798 #include <stdlib.h>
799
800 int
801 main ()
802 {
803 int major, minor, micro;
804 char *tmp_version;
805
806 system ("touch conf.gtktest");
807
808 /* HP/UX 9 (%@#!) writes to sscanf strings */
809 tmp_version = g_strdup("$min_gtk_version");
810 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
811 printf("%s, bad version string\n", "$min_gtk_version");
812 exit(1);
813 }
814
815 if ((gtk_major_version != $gtk_config_major_version) ||
816 (gtk_minor_version != $gtk_config_minor_version) ||
817 (gtk_micro_version != $gtk_config_micro_version))
818 {
819 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
820 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
821 gtk_major_version, gtk_minor_version, gtk_micro_version);
822 printf ("*** was found! If gtk-config was correct, then it is best\n");
823 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
824 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
825 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
826 printf("*** required on your system.\n");
827 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
828 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
829 printf("*** before re-running configure\n");
830 }
831 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
832 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
833 (gtk_minor_version != GTK_MINOR_VERSION) ||
834 (gtk_micro_version != GTK_MICRO_VERSION))
835 {
836 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
837 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
838 printf("*** library (version %d.%d.%d)\n",
839 gtk_major_version, gtk_minor_version, gtk_micro_version);
840 }
841 #endif /* defined (GTK_MAJOR_VERSION) ... */
842 else
843 {
844 if ((gtk_major_version > major) ||
845 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
846 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
847 {
848 return 0;
849 }
850 else
851 {
852 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
853 gtk_major_version, gtk_minor_version, gtk_micro_version);
854 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
855 major, minor, micro);
856 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
857 printf("***\n");
858 printf("*** If you have already installed a sufficiently new version, this error\n");
859 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
860 printf("*** being found. The easiest way to fix this is to remove the old version\n");
861 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
862 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
863 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
864 printf("*** so that the correct libraries are found at run-time))\n");
865 }
866 }
867 return 1;
868 }
869 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
870 CFLAGS="$ac_save_CFLAGS"
871 LIBS="$ac_save_LIBS"
872 fi
873 fi
874 if test "x$no_gtk" = x ; then
875 AC_MSG_RESULT(yes)
876 ifelse([$2], , :, [$2])
877 else
878 AC_MSG_RESULT(no)
879 if test "$GTK_CONFIG" = "no" ; then
880 echo "*** The gtk-config script installed by GTK could not be found"
881 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
882 echo "*** your path, or set the GTK_CONFIG environment variable to the"
883 echo "*** full path to gtk-config."
884 else
885 if test -f conf.gtktest ; then
886 :
887 else
888 echo "*** Could not run GTK test program, checking why..."
889 CFLAGS="$CFLAGS $GTK_CFLAGS"
890 LIBS="$LIBS $GTK_LIBS"
891 AC_TRY_LINK([
892 #include <gtk/gtk.h>
893 #include <stdio.h>
894 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
895 [ echo "*** The test program compiled, but did not run. This usually means"
896 echo "*** that the run-time linker is not finding GTK or finding the wrong"
897 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
898 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
899 echo "*** to the installed location Also, make sure you have run ldconfig if that"
900 echo "*** is required on your system"
901 echo "***"
902 echo "*** If you have an old version installed, it is best to remove it, although"
903 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
904 echo "***"
905 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
906 echo "*** came with the system with the command"
907 echo "***"
908 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
909 [ echo "*** The test program failed to compile or link. See the file config.log for the"
910 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
911 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
912 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
913 CFLAGS="$ac_save_CFLAGS"
914 LIBS="$ac_save_LIBS"
915 fi
916 fi
917 GTK_CFLAGS=""
918 GTK_LIBS=""
919 ifelse([$3], , :, [$3])
920 fi
921 AC_SUBST(GTK_CFLAGS)
922 AC_SUBST(GTK_LIBS)
923 rm -f conf.gtktest
924 ])
925