added configure support for the large files
[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_SYS_LARGEFILE_MACRO_VALUE(_FILE_OFFSET_BITS, 64, ac_cv_sys_file_offset_bits)
474     if test "x$wx_largefile" != "xyes"; then
475         WX_SYS_LARGEFILE_MACRO_VALUE(_LARGE_FILES, 1, ac_cv_sys_large_files)
476     fi
477
478     if test "x$wx_largefile" = "xyes"; then
479         AC_DEFINE(HAVE_LARGEFILE_SUPPORT)
480     fi
481 fi
482 ])
483
484 # Configure paths for GTK+
485 # Owen Taylor     1997-2001
486
487 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
488 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, 
489 dnl pass to pkg-config
490 dnl
491 AC_DEFUN(AM_PATH_GTK_2_0,
492 [dnl 
493 dnl Get the cflags and libraries from pkg-config
494 dnl
495 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       do not try to compile and run a test GTK+ program],
496                     , enable_gtktest=yes)
497
498   pkg_config_args=gtk+-2.0
499   for module in . $4
500   do
501       case "$module" in
502          gthread) 
503              pkg_config_args="$pkg_config_args gthread-2.0"
504          ;;
505       esac
506   done
507
508   no_gtk=""
509
510   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
511
512   if test x$PKG_CONFIG != xno ; then
513     if pkg-config --atleast-pkgconfig-version 0.7 ; then
514       :
515     else
516       echo *** pkg-config too old; version 0.7 or better required.
517       no_gtk=yes
518       PKG_CONFIG=no
519     fi
520   else
521     no_gtk=yes
522   fi
523
524   min_gtk_version=ifelse([$1], ,2.0.0,$1)
525   AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
526
527   if test x$PKG_CONFIG != xno ; then
528     ## don't try to run the test against uninstalled libtool libs
529     if $PKG_CONFIG --uninstalled $pkg_config_args; then
530           echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
531           enable_gtktest=no
532     fi
533
534     if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
535           :
536     else
537           no_gtk=yes
538     fi
539   fi
540
541   if test x"$no_gtk" = x ; then
542     GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
543     GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
544     gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
545            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
546     gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
547            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
548     gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
549            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
550     if test "x$enable_gtktest" = "xyes" ; then
551       ac_save_CFLAGS="$CFLAGS"
552       ac_save_LIBS="$LIBS"
553       CFLAGS="$CFLAGS $GTK_CFLAGS"
554       LIBS="$GTK_LIBS $LIBS"
555 dnl
556 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
557 dnl checks the results of pkg-config to some extent)
558 dnl
559       rm -f conf.gtktest
560       AC_TRY_RUN([
561 #include <gtk/gtk.h>
562 #include <stdio.h>
563 #include <stdlib.h>
564
565 int 
566 main ()
567 {
568   int major, minor, micro;
569   char *tmp_version;
570
571   system ("touch conf.gtktest");
572
573   /* HP/UX 9 (%@#!) writes to sscanf strings */
574   tmp_version = g_strdup("$min_gtk_version");
575   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
576      printf("%s, bad version string\n", "$min_gtk_version");
577      exit(1);
578    }
579
580   if ((gtk_major_version != $gtk_config_major_version) ||
581       (gtk_minor_version != $gtk_config_minor_version) ||
582       (gtk_micro_version != $gtk_config_micro_version))
583     {
584       printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
585              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
586              gtk_major_version, gtk_minor_version, gtk_micro_version);
587       printf ("*** was found! If pkg-config was correct, then it is best\n");
588       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
589       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
590       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
591       printf("*** required on your system.\n");
592       printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
593       printf("*** to point to the correct configuration files\n");
594     } 
595   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
596            (gtk_minor_version != GTK_MINOR_VERSION) ||
597            (gtk_micro_version != GTK_MICRO_VERSION))
598     {
599       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
600              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
601       printf("*** library (version %d.%d.%d)\n",
602              gtk_major_version, gtk_minor_version, gtk_micro_version);
603     }
604   else
605     {
606       if ((gtk_major_version > major) ||
607         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
608         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
609       {
610         return 0;
611        }
612      else
613       {
614         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
615                gtk_major_version, gtk_minor_version, gtk_micro_version);
616         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
617                major, minor, micro);
618         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
619         printf("***\n");
620         printf("*** If you have already installed a sufficiently new version, this error\n");
621         printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
622         printf("*** being found. The easiest way to fix this is to remove the old version\n");
623         printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
624         printf("*** correct copy of pkg-config. (In this case, you will have to\n");
625         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
626         printf("*** so that the correct libraries are found at run-time))\n");
627       }
628     }
629   return 1;
630 }
631 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
632        CFLAGS="$ac_save_CFLAGS"
633        LIBS="$ac_save_LIBS"
634      fi
635   fi
636   if test "x$no_gtk" = x ; then
637      AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
638      ifelse([$2], , :, [$2])     
639   else
640      AC_MSG_RESULT(no)
641      if test "$PKG_CONFIG" = "no" ; then
642        echo "*** A new enough version of pkg-config was not found."
643        echo "*** See http://pkgconfig.sourceforge.net"
644      else
645        if test -f conf.gtktest ; then
646         :
647        else
648           echo "*** Could not run GTK+ test program, checking why..."
649           CFLAGS="$CFLAGS $GTK_CFLAGS"
650           LIBS="$LIBS $GTK_LIBS"
651           AC_TRY_LINK([
652 #include <gtk/gtk.h>
653 #include <stdio.h>
654 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
655         [ echo "*** The test program compiled, but did not run. This usually means"
656           echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
657           echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
658           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
659           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
660           echo "*** is required on your system"
661           echo "***"
662           echo "*** If you have an old version installed, it is best to remove it, although"
663           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
664         [ echo "*** The test program failed to compile or link. See the file config.log for the"
665           echo "*** exact error that occured. This usually means GTK+ was incorrectly installed"
666           echo "*** or that you have moved GTK+ since it was installed. In the latter case, you"
667           echo "*** may want to edit the pkg-config script: $PKG_CONFIG" ])
668           CFLAGS="$ac_save_CFLAGS"
669           LIBS="$ac_save_LIBS"
670        fi
671      fi
672      GTK_CFLAGS=""
673      GTK_LIBS=""
674      ifelse([$3], , :, [$3])
675   fi
676   AC_SUBST(GTK_CFLAGS)
677   AC_SUBST(GTK_LIBS)
678   rm -f conf.gtktest
679 ])
680
681 # Configure paths for GTK+
682 # Owen Taylor     97-11-3
683
684 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
685 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
686 dnl
687 AC_DEFUN(AM_PATH_GTK,
688 [dnl 
689 dnl Get the cflags and libraries from the gtk-config script
690 dnl
691 AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
692             gtk_config_prefix="$withval", gtk_config_prefix="")
693 AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
694             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
695 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
696                     , enable_gtktest=yes)
697
698   for module in . $4
699   do
700       case "$module" in
701          gthread) 
702              gtk_config_args="$gtk_config_args gthread"
703          ;;
704       esac
705   done
706
707   if test x$gtk_config_exec_prefix != x ; then
708      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
709      if test x${GTK_CONFIG+set} != xset ; then
710         GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
711      fi
712   fi
713   if test x$gtk_config_prefix != x ; then
714      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
715      if test x${GTK_CONFIG+set} != xset ; then
716         GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
717      fi
718   fi
719
720   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
721   min_gtk_version=ifelse([$1], ,0.99.7,$1)
722   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
723   no_gtk=""
724   if test "$GTK_CONFIG" = "no" ; then
725     no_gtk=yes
726   else
727     GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
728     GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
729     gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
730            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
731     gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
732            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
733     gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
734            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
735     if test "x$enable_gtktest" = "xyes" ; then
736       ac_save_CFLAGS="$CFLAGS"
737       ac_save_LIBS="$LIBS"
738       CFLAGS="$CFLAGS $GTK_CFLAGS"
739       LIBS="$GTK_LIBS $LIBS"
740 dnl
741 dnl Now check if the installed GTK is sufficiently new. (Also sanity
742 dnl checks the results of gtk-config to some extent
743 dnl
744       rm -f conf.gtktest
745       AC_TRY_RUN([
746 #include <gtk/gtk.h>
747 #include <stdio.h>
748 #include <stdlib.h>
749
750 int 
751 main ()
752 {
753   int major, minor, micro;
754   char *tmp_version;
755
756   system ("touch conf.gtktest");
757
758   /* HP/UX 9 (%@#!) writes to sscanf strings */
759   tmp_version = g_strdup("$min_gtk_version");
760   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
761      printf("%s, bad version string\n", "$min_gtk_version");
762      exit(1);
763    }
764
765   if ((gtk_major_version != $gtk_config_major_version) ||
766       (gtk_minor_version != $gtk_config_minor_version) ||
767       (gtk_micro_version != $gtk_config_micro_version))
768     {
769       printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
770              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
771              gtk_major_version, gtk_minor_version, gtk_micro_version);
772       printf ("*** was found! If gtk-config was correct, then it is best\n");
773       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
774       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
775       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
776       printf("*** required on your system.\n");
777       printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
778       printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
779       printf("*** before re-running configure\n");
780     } 
781 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
782   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
783            (gtk_minor_version != GTK_MINOR_VERSION) ||
784            (gtk_micro_version != GTK_MICRO_VERSION))
785     {
786       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
787              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
788       printf("*** library (version %d.%d.%d)\n",
789              gtk_major_version, gtk_minor_version, gtk_micro_version);
790     }
791 #endif /* defined (GTK_MAJOR_VERSION) ... */
792   else
793     {
794       if ((gtk_major_version > major) ||
795         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
796         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
797       {
798         return 0;
799        }
800      else
801       {
802         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
803                gtk_major_version, gtk_minor_version, gtk_micro_version);
804         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
805                major, minor, micro);
806         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
807         printf("***\n");
808         printf("*** If you have already installed a sufficiently new version, this error\n");
809         printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
810         printf("*** being found. The easiest way to fix this is to remove the old version\n");
811         printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
812         printf("*** correct copy of gtk-config. (In this case, you will have to\n");
813         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
814         printf("*** so that the correct libraries are found at run-time))\n");
815       }
816     }
817   return 1;
818 }
819 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
820        CFLAGS="$ac_save_CFLAGS"
821        LIBS="$ac_save_LIBS"
822      fi
823   fi
824   if test "x$no_gtk" = x ; then
825      AC_MSG_RESULT(yes)
826      ifelse([$2], , :, [$2])     
827   else
828      AC_MSG_RESULT(no)
829      if test "$GTK_CONFIG" = "no" ; then
830        echo "*** The gtk-config script installed by GTK could not be found"
831        echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
832        echo "*** your path, or set the GTK_CONFIG environment variable to the"
833        echo "*** full path to gtk-config."
834      else
835        if test -f conf.gtktest ; then
836         :
837        else
838           echo "*** Could not run GTK test program, checking why..."
839           CFLAGS="$CFLAGS $GTK_CFLAGS"
840           LIBS="$LIBS $GTK_LIBS"
841           AC_TRY_LINK([
842 #include <gtk/gtk.h>
843 #include <stdio.h>
844 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
845         [ echo "*** The test program compiled, but did not run. This usually means"
846           echo "*** that the run-time linker is not finding GTK or finding the wrong"
847           echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
848           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
849           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
850           echo "*** is required on your system"
851           echo "***"
852           echo "*** If you have an old version installed, it is best to remove it, although"
853           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
854           echo "***"
855           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
856           echo "*** came with the system with the command"
857           echo "***"
858           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
859         [ echo "*** The test program failed to compile or link. See the file config.log for the"
860           echo "*** exact error that occured. This usually means GTK was incorrectly installed"
861           echo "*** or that you have moved GTK since it was installed. In the latter case, you"
862           echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
863           CFLAGS="$ac_save_CFLAGS"
864           LIBS="$ac_save_LIBS"
865        fi
866      fi
867      GTK_CFLAGS=""
868      GTK_LIBS=""
869      ifelse([$3], , :, [$3])
870   fi
871   AC_SUBST(GTK_CFLAGS)
872   AC_SUBST(GTK_LIBS)
873   rm -f conf.gtktest
874 ])
875