]> git.saurik.com Git - wxWidgets.git/blob - aclocal.m4
added #defines required for 64 bit off_t (a.k.a. large files) support
[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 a slightly better AC_C_BIGENDIAN macro which allows cross-compiling
161 dnl ---------------------------------------------------------------------------
162
163 AC_DEFUN([WX_C_BIGENDIAN],
164 [AC_CACHE_CHECK([whether byte ordering is bigendian], ac_cv_c_bigendian,
165 [ac_cv_c_bigendian=unknown
166 # See if sys/param.h defines the BYTE_ORDER macro.
167 AC_TRY_COMPILE([#include <sys/types.h>
168 #include <sys/param.h>], [
169 #if !BYTE_ORDER || !BIG_ENDIAN || !LITTLE_ENDIAN
170 bogus endian macros
171 #endif], [# It does; now see whether it defined to BIG_ENDIAN or not.
172 AC_TRY_COMPILE([#include <sys/types.h>
173 #include <sys/param.h>], [
174 #if BYTE_ORDER != BIG_ENDIAN
175 not big endian
176 #endif], ac_cv_c_bigendian=yes, ac_cv_c_bigendian=no)])
177 if test $ac_cv_c_bigendian = unknown; then
178 AC_TRY_RUN([main () {
179 /* Are we little or big endian? From Harbison&Steele. */
180 union
181 {
182 long l;
183 char c[sizeof (long)];
184 } u;
185 u.l = 1;
186 exit (u.c[sizeof (long) - 1] == 1);
187 }], [ac_cv_c_bigendian=no], [ac_cv_c_bigendian=yes], [ac_cv_c_bigendian=unknown])
188 fi])
189 if test $ac_cv_c_bigendian = unknown; then
190 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])
191 fi
192 if test $ac_cv_c_bigendian = yes; then
193 AC_DEFINE(WORDS_BIGENDIAN)
194 fi
195 ])
196
197 dnl ---------------------------------------------------------------------------
198 dnl override AC_ARG_ENABLE/WITH to cache the results in .cache file
199 dnl ---------------------------------------------------------------------------
200
201 AC_DEFUN([WX_ARG_CACHE_INIT],
202 [
203 wx_arg_cache_file="configarg.cache"
204 echo "loading argument cache $wx_arg_cache_file"
205 rm -f ${wx_arg_cache_file}.tmp
206 touch ${wx_arg_cache_file}.tmp
207 touch ${wx_arg_cache_file}
208 ])
209
210 AC_DEFUN([WX_ARG_CACHE_FLUSH],
211 [
212 echo "saving argument cache $wx_arg_cache_file"
213 mv ${wx_arg_cache_file}.tmp ${wx_arg_cache_file}
214 ])
215
216 dnl this macro checks for a three-valued command line --with argument:
217 dnl possible arguments are 'yes', 'no', 'sys', or 'builtin'
218 dnl usage: WX_ARG_SYS_WITH(option, helpmessage, variable-name)
219 AC_DEFUN([WX_ARG_SYS_WITH],
220 [
221 AC_MSG_CHECKING([for --with-$1])
222 no_cache=0
223 AC_ARG_WITH($1, [$2],
224 [
225 if test "$withval" = yes; then
226 ac_cv_use_$1='$3=yes'
227 elif test "$withval" = no; then
228 ac_cv_use_$1='$3=no'
229 elif test "$withval" = sys; then
230 ac_cv_use_$1='$3=sys'
231 elif test "$withval" = builtin; then
232 ac_cv_use_$1='$3=builtin'
233 else
234 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
235 fi
236 ],
237 [
238 LINE=`grep "$3" ${wx_arg_cache_file}`
239 if test "x$LINE" != x ; then
240 eval "DEFAULT_$LINE"
241 else
242 no_cache=1
243 fi
244
245 ac_cv_use_$1='$3='$DEFAULT_$3
246 ])
247
248 eval "$ac_cv_use_$1"
249 if test "$no_cache" != 1; then
250 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
251 fi
252
253 if test "$$3" = yes; then
254 AC_MSG_RESULT(yes)
255 elif test "$$3" = no; then
256 AC_MSG_RESULT(no)
257 elif test "$$3" = sys; then
258 AC_MSG_RESULT([system version])
259 elif test "$$3" = builtin; then
260 AC_MSG_RESULT([builtin version])
261 else
262 AC_MSG_ERROR([Invalid value for --with-$1: should be yes, no, sys, or builtin])
263 fi
264 ])
265
266 dnl this macro checks for a command line argument and caches the result
267 dnl usage: WX_ARG_WITH(option, helpmessage, variable-name)
268 AC_DEFUN([WX_ARG_WITH],
269 [
270 AC_MSG_CHECKING([for --with-$1])
271 no_cache=0
272 AC_ARG_WITH($1, [$2],
273 [
274 if test "$withval" = yes; then
275 ac_cv_use_$1='$3=yes'
276 else
277 ac_cv_use_$1='$3=no'
278 fi
279 ],
280 [
281 LINE=`grep "$3" ${wx_arg_cache_file}`
282 if test "x$LINE" != x ; then
283 eval "DEFAULT_$LINE"
284 else
285 no_cache=1
286 fi
287
288 ac_cv_use_$1='$3='$DEFAULT_$3
289 ])
290
291 eval "$ac_cv_use_$1"
292 if test "$no_cache" != 1; then
293 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
294 fi
295
296 if test "$$3" = yes; then
297 AC_MSG_RESULT(yes)
298 else
299 AC_MSG_RESULT(no)
300 fi
301 ])
302
303 dnl like WX_ARG_WITH but uses AC_ARG_ENABLE instead of AC_ARG_WITH
304 dnl usage: WX_ARG_ENABLE(option, helpmessage, variable-name)
305 AC_DEFUN([WX_ARG_ENABLE],
306 [
307 AC_MSG_CHECKING([for --enable-$1])
308 no_cache=0
309 AC_ARG_ENABLE($1, [$2],
310 [
311 if test "$enableval" = yes; then
312 ac_cv_use_$1='$3=yes'
313 else
314 ac_cv_use_$1='$3=no'
315 fi
316 ],
317 [
318 LINE=`grep "$3" ${wx_arg_cache_file}`
319 if test "x$LINE" != x ; then
320 eval "DEFAULT_$LINE"
321 else
322 no_cache=1
323 fi
324
325 ac_cv_use_$1='$3='$DEFAULT_$3
326 ])
327
328 eval "$ac_cv_use_$1"
329 if test "$no_cache" != 1; then
330 echo $ac_cv_use_$1 >> ${wx_arg_cache_file}.tmp
331 fi
332
333 if test "$$3" = yes; then
334 AC_MSG_RESULT(yes)
335 else
336 AC_MSG_RESULT(no)
337 fi
338 ])
339
340
341
342 dnl ===========================================================================
343 dnl "3rd party" macros included here because they are not widely available
344 dnl ===========================================================================
345
346 dnl ---------------------------------------------------------------------------
347 dnl test for availability of iconv()
348 dnl ---------------------------------------------------------------------------
349
350 dnl From Bruno Haible.
351
352 AC_DEFUN([AM_ICONV],
353 [
354 dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
355 dnl those with the standalone portable GNU libiconv installed).
356
357 AC_ARG_WITH([libiconv-prefix],
358 [ --with-libiconv-prefix=DIR search for libiconv in DIR/include and DIR/lib], [
359 for dir in `echo "$withval" | tr : ' '`; do
360 if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
361 if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
362 done
363 ])
364
365 AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
366 am_cv_func_iconv="no, consider installing GNU libiconv"
367 am_cv_lib_iconv=no
368 AC_TRY_LINK([#include <stdlib.h>
369 #include <iconv.h>],
370 [iconv_t cd = iconv_open("","");
371 iconv(cd,NULL,NULL,NULL,NULL);
372 iconv_close(cd);],
373 am_cv_func_iconv=yes)
374 if test "$am_cv_func_iconv" != yes; then
375 am_save_LIBS="$LIBS"
376 LIBS="$LIBS -liconv"
377 AC_TRY_LINK([#include <stdlib.h>
378 #include <iconv.h>],
379 [iconv_t cd = iconv_open("","");
380 iconv(cd,NULL,NULL,NULL,NULL);
381 iconv_close(cd);],
382 am_cv_lib_iconv=yes
383 am_cv_func_iconv=yes)
384 LIBS="$am_save_LIBS"
385 fi
386 ])
387 if test "$am_cv_func_iconv" = yes; then
388 AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
389 AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
390 AC_TRY_COMPILE([
391 #include <stdlib.h>
392 #include <iconv.h>
393 extern
394 #ifdef __cplusplus
395 "C"
396 #endif
397 #if defined(__STDC__) || defined(__cplusplus)
398 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
399 #else
400 size_t iconv();
401 #endif
402 ],
403 [],
404 wx_cv_func_iconv_const="no",
405 wx_cv_func_iconv_const="yes"
406 )
407 )
408
409 iconv_const=
410 if test "x$wx_cv_func_iconv_const" = "xyes"; then
411 iconv_const="const"
412 fi
413
414 AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
415 [Define as const if the declaration of iconv() needs const.])
416 fi
417 LIBICONV=
418 if test "$am_cv_lib_iconv" = yes; then
419 LIBICONV="-liconv"
420 fi
421 AC_SUBST(LIBICONV)
422 ])
423
424 dnl ---------------------------------------------------------------------------
425 dnl AC_SYS_LARGEFILE (partly based on the code from autoconf 2.5x)
426 dnl ---------------------------------------------------------------------------
427
428 dnl WX_SYS_LARGEFILE_TEST
429 dnl
430 dnl NB: original autoconf test was checking if compiler supported 6 bit off_t
431 dnl arithmetic properly but this failed miserably with gcc under Linux
432 dnl whereas the system still supports 64 bit files, so now simply check
433 dnl that off_t is big enough
434 define(WX_SYS_LARGEFILE_TEST,
435 [typedef struct {
436 unsigned int field: sizeof(off_t) == 8;
437 } wxlf;
438 ])
439
440
441 dnl WX_SYS_LARGEFILE_MACRO_VALUE(C-MACRO, VALUE, CACHE-VAR)
442 define(WX_SYS_LARGEFILE_MACRO_VALUE,
443 [
444 AC_CACHE_CHECK([for $1 value needed for large files], [$3],
445 [
446 AC_TRY_COMPILE([#define $1 $2
447 #include <sys/types.h>],
448 WX_SYS_LARGEFILE_TEST,
449 [$3=$2],
450 [$3=no])
451 ]
452 )
453
454 if test "$$3" != no; then
455 wx_largefile=yes
456 AC_DEFINE_UNQUOTED([$1], [$$3])
457 fi
458 ])
459
460
461 dnl AC_SYS_LARGEFILE
462 dnl ----------------
463 dnl By default, many hosts won't let programs access large files;
464 dnl one must use special compiler options to get large-file access to work.
465 dnl For more details about this brain damage please see:
466 dnl http://www.sas.com/standards/large.file/x_open.20Mar96.html
467 AC_DEFUN([AC_SYS_LARGEFILE],
468 [AC_ARG_ENABLE(largefile,
469 [ --disable-largefile omit support for large files])
470 if test "$enable_largefile" != no; then
471 dnl _FILE_OFFSET_BITS==64 is needed for Linux, Solaris, ...
472 dnl _LARGE_FILES -- for AIX
473 wx_largefile=no
474 WX_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
475 if test "x$wx_largefile" != "xyes"; then
476 WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
477 fi
478
479 AC_MSG_CHECKING(if large file support is available)
480 if test "x$wx_largefile" = "xyes"; then
481 AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
482 fi
483 AC_MSG_RESULT($wx_largefile)
484 fi
485 ])
486
487 # Configure paths for GTK+
488 # Owen Taylor 1997-2001
489
490 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
491 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES,
492 dnl pass to pkg-config
493 dnl
494 AC_DEFUN(AM_PATH_GTK_2_0,
495 [dnl
496 dnl Get the cflags and libraries from pkg-config
497 dnl
498 AC_ARG_ENABLE(gtktest, [ --disable-gtktest do not try to compile and run a test GTK+ program],
499 , enable_gtktest=yes)
500
501 pkg_config_args=gtk+-2.0
502 for module in . $4
503 do
504 case "$module" in
505 gthread)
506 pkg_config_args="$pkg_config_args gthread-2.0"
507 ;;
508 esac
509 done
510
511 no_gtk=""
512
513 AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
514
515 if test x$PKG_CONFIG != xno ; then
516 if pkg-config --atleast-pkgconfig-version 0.7 ; then
517 :
518 else
519 echo *** pkg-config too old; version 0.7 or better required.
520 no_gtk=yes
521 PKG_CONFIG=no
522 fi
523 else
524 no_gtk=yes
525 fi
526
527 min_gtk_version=ifelse([$1], ,2.0.0,$1)
528 AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
529
530 if test x$PKG_CONFIG != xno ; then
531 ## don't try to run the test against uninstalled libtool libs
532 if $PKG_CONFIG --uninstalled $pkg_config_args; then
533 echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
534 enable_gtktest=no
535 fi
536
537 if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
538 :
539 else
540 no_gtk=yes
541 fi
542 fi
543
544 if test x"$no_gtk" = x ; then
545 GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
546 GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
547 gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
548 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
549 gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
550 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
551 gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
552 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
553 if test "x$enable_gtktest" = "xyes" ; then
554 ac_save_CFLAGS="$CFLAGS"
555 ac_save_LIBS="$LIBS"
556 CFLAGS="$CFLAGS $GTK_CFLAGS"
557 LIBS="$GTK_LIBS $LIBS"
558 dnl
559 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
560 dnl checks the results of pkg-config to some extent)
561 dnl
562 rm -f conf.gtktest
563 AC_TRY_RUN([
564 #include <gtk/gtk.h>
565 #include <stdio.h>
566 #include <stdlib.h>
567
568 int
569 main ()
570 {
571 int major, minor, micro;
572 char *tmp_version;
573
574 system ("touch conf.gtktest");
575
576 /* HP/UX 9 (%@#!) writes to sscanf strings */
577 tmp_version = g_strdup("$min_gtk_version");
578 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
579 printf("%s, bad version string\n", "$min_gtk_version");
580 exit(1);
581 }
582
583 if ((gtk_major_version != $gtk_config_major_version) ||
584 (gtk_minor_version != $gtk_config_minor_version) ||
585 (gtk_micro_version != $gtk_config_micro_version))
586 {
587 printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
588 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
589 gtk_major_version, gtk_minor_version, gtk_micro_version);
590 printf ("*** was found! If pkg-config was correct, then it is best\n");
591 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
592 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
593 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
594 printf("*** required on your system.\n");
595 printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
596 printf("*** to point to the correct configuration files\n");
597 }
598 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
599 (gtk_minor_version != GTK_MINOR_VERSION) ||
600 (gtk_micro_version != GTK_MICRO_VERSION))
601 {
602 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
603 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
604 printf("*** library (version %d.%d.%d)\n",
605 gtk_major_version, gtk_minor_version, gtk_micro_version);
606 }
607 else
608 {
609 if ((gtk_major_version > major) ||
610 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
611 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
612 {
613 return 0;
614 }
615 else
616 {
617 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
618 gtk_major_version, gtk_minor_version, gtk_micro_version);
619 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
620 major, minor, micro);
621 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
622 printf("***\n");
623 printf("*** If you have already installed a sufficiently new version, this error\n");
624 printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
625 printf("*** being found. The easiest way to fix this is to remove the old version\n");
626 printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
627 printf("*** correct copy of pkg-config. (In this case, you will have to\n");
628 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
629 printf("*** so that the correct libraries are found at run-time))\n");
630 }
631 }
632 return 1;
633 }
634 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
635 CFLAGS="$ac_save_CFLAGS"
636 LIBS="$ac_save_LIBS"
637 fi
638 fi
639 if test "x$no_gtk" = x ; then
640 AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
641 ifelse([$2], , :, [$2])
642 else
643 AC_MSG_RESULT(no)
644 if test "$PKG_CONFIG" = "no" ; then
645 echo "*** A new enough version of pkg-config was not found."
646 echo "*** See http://pkgconfig.sourceforge.net"
647 else
648 if test -f conf.gtktest ; then
649 :
650 else
651 echo "*** Could not run GTK+ test program, checking why..."
652 CFLAGS="$CFLAGS $GTK_CFLAGS"
653 LIBS="$LIBS $GTK_LIBS"
654 AC_TRY_LINK([
655 #include <gtk/gtk.h>
656 #include <stdio.h>
657 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
658 [ echo "*** The test program compiled, but did not run. This usually means"
659 echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
660 echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
661 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
662 echo "*** to the installed location Also, make sure you have run ldconfig if that"
663 echo "*** is required on your system"
664 echo "***"
665 echo "*** If you have an old version installed, it is best to remove it, although"
666 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
667 [ echo "*** The test program failed to compile or link. See the file config.log for the"
668 echo "*** exact error that occured. This usually means GTK+ was incorrectly installed"
669 echo "*** or that you have moved GTK+ since it was installed. In the latter case, you"
670 echo "*** may want to edit the pkg-config script: $PKG_CONFIG" ])
671 CFLAGS="$ac_save_CFLAGS"
672 LIBS="$ac_save_LIBS"
673 fi
674 fi
675 GTK_CFLAGS=""
676 GTK_LIBS=""
677 ifelse([$3], , :, [$3])
678 fi
679 AC_SUBST(GTK_CFLAGS)
680 AC_SUBST(GTK_LIBS)
681 rm -f conf.gtktest
682 ])
683
684 # Configure paths for GTK+
685 # Owen Taylor 97-11-3
686
687 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
688 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
689 dnl
690 AC_DEFUN(AM_PATH_GTK,
691 [dnl
692 dnl Get the cflags and libraries from the gtk-config script
693 dnl
694 AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)],
695 gtk_config_prefix="$withval", gtk_config_prefix="")
696 AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
697 gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
698 AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program],
699 , enable_gtktest=yes)
700
701 for module in . $4
702 do
703 case "$module" in
704 gthread)
705 gtk_config_args="$gtk_config_args gthread"
706 ;;
707 esac
708 done
709
710 if test x$gtk_config_exec_prefix != x ; then
711 gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
712 if test x${GTK_CONFIG+set} != xset ; then
713 GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
714 fi
715 fi
716 if test x$gtk_config_prefix != x ; then
717 gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
718 if test x${GTK_CONFIG+set} != xset ; then
719 GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
720 fi
721 fi
722
723 AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
724 min_gtk_version=ifelse([$1], ,0.99.7,$1)
725 AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
726 no_gtk=""
727 if test "$GTK_CONFIG" = "no" ; then
728 no_gtk=yes
729 else
730 GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
731 GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
732 gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
733 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
734 gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
735 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
736 gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
737 sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
738 if test "x$enable_gtktest" = "xyes" ; then
739 ac_save_CFLAGS="$CFLAGS"
740 ac_save_LIBS="$LIBS"
741 CFLAGS="$CFLAGS $GTK_CFLAGS"
742 LIBS="$GTK_LIBS $LIBS"
743 dnl
744 dnl Now check if the installed GTK is sufficiently new. (Also sanity
745 dnl checks the results of gtk-config to some extent
746 dnl
747 rm -f conf.gtktest
748 AC_TRY_RUN([
749 #include <gtk/gtk.h>
750 #include <stdio.h>
751 #include <stdlib.h>
752
753 int
754 main ()
755 {
756 int major, minor, micro;
757 char *tmp_version;
758
759 system ("touch conf.gtktest");
760
761 /* HP/UX 9 (%@#!) writes to sscanf strings */
762 tmp_version = g_strdup("$min_gtk_version");
763 if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
764 printf("%s, bad version string\n", "$min_gtk_version");
765 exit(1);
766 }
767
768 if ((gtk_major_version != $gtk_config_major_version) ||
769 (gtk_minor_version != $gtk_config_minor_version) ||
770 (gtk_micro_version != $gtk_config_micro_version))
771 {
772 printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
773 $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
774 gtk_major_version, gtk_minor_version, gtk_micro_version);
775 printf ("*** was found! If gtk-config was correct, then it is best\n");
776 printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
777 printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
778 printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
779 printf("*** required on your system.\n");
780 printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
781 printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
782 printf("*** before re-running configure\n");
783 }
784 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
785 else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
786 (gtk_minor_version != GTK_MINOR_VERSION) ||
787 (gtk_micro_version != GTK_MICRO_VERSION))
788 {
789 printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
790 GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
791 printf("*** library (version %d.%d.%d)\n",
792 gtk_major_version, gtk_minor_version, gtk_micro_version);
793 }
794 #endif /* defined (GTK_MAJOR_VERSION) ... */
795 else
796 {
797 if ((gtk_major_version > major) ||
798 ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
799 ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
800 {
801 return 0;
802 }
803 else
804 {
805 printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
806 gtk_major_version, gtk_minor_version, gtk_micro_version);
807 printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
808 major, minor, micro);
809 printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
810 printf("***\n");
811 printf("*** If you have already installed a sufficiently new version, this error\n");
812 printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
813 printf("*** being found. The easiest way to fix this is to remove the old version\n");
814 printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
815 printf("*** correct copy of gtk-config. (In this case, you will have to\n");
816 printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
817 printf("*** so that the correct libraries are found at run-time))\n");
818 }
819 }
820 return 1;
821 }
822 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
823 CFLAGS="$ac_save_CFLAGS"
824 LIBS="$ac_save_LIBS"
825 fi
826 fi
827 if test "x$no_gtk" = x ; then
828 AC_MSG_RESULT(yes)
829 ifelse([$2], , :, [$2])
830 else
831 AC_MSG_RESULT(no)
832 if test "$GTK_CONFIG" = "no" ; then
833 echo "*** The gtk-config script installed by GTK could not be found"
834 echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
835 echo "*** your path, or set the GTK_CONFIG environment variable to the"
836 echo "*** full path to gtk-config."
837 else
838 if test -f conf.gtktest ; then
839 :
840 else
841 echo "*** Could not run GTK test program, checking why..."
842 CFLAGS="$CFLAGS $GTK_CFLAGS"
843 LIBS="$LIBS $GTK_LIBS"
844 AC_TRY_LINK([
845 #include <gtk/gtk.h>
846 #include <stdio.h>
847 ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
848 [ echo "*** The test program compiled, but did not run. This usually means"
849 echo "*** that the run-time linker is not finding GTK or finding the wrong"
850 echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
851 echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
852 echo "*** to the installed location Also, make sure you have run ldconfig if that"
853 echo "*** is required on your system"
854 echo "***"
855 echo "*** If you have an old version installed, it is best to remove it, although"
856 echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
857 echo "***"
858 echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
859 echo "*** came with the system with the command"
860 echo "***"
861 echo "*** rpm --erase --nodeps gtk gtk-devel" ],
862 [ echo "*** The test program failed to compile or link. See the file config.log for the"
863 echo "*** exact error that occured. This usually means GTK was incorrectly installed"
864 echo "*** or that you have moved GTK since it was installed. In the latter case, you"
865 echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
866 CFLAGS="$ac_save_CFLAGS"
867 LIBS="$ac_save_LIBS"
868 fi
869 fi
870 GTK_CFLAGS=""
871 GTK_LIBS=""
872 ifelse([$3], , :, [$3])
873 fi
874 AC_SUBST(GTK_CFLAGS)
875 AC_SUBST(GTK_LIBS)
876 rm -f conf.gtktest
877 ])
878