don't output the entire iconv() declaration in configure messages, looks ugly and...
[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
347 dnl ---------------------------------------------------------------------------
348 dnl test for availability of iconv()
349 dnl ---------------------------------------------------------------------------
350
351 dnl From Bruno Haible.
352
353 AC_DEFUN([AM_ICONV],
354 [
355   dnl Some systems have iconv in libc, some have it in libiconv (OSF/1 and
356   dnl those with the standalone portable GNU libiconv installed).
357
358   AC_ARG_WITH([libiconv-prefix],
359 [  --with-libiconv-prefix=DIR  search for libiconv in DIR/include and DIR/lib], [
360     for dir in `echo "$withval" | tr : ' '`; do
361       if test -d $dir/include; then CPPFLAGS="$CPPFLAGS -I$dir/include"; fi
362       if test -d $dir/lib; then LDFLAGS="$LDFLAGS -L$dir/lib"; fi
363     done
364    ])
365
366   AC_CACHE_CHECK(for iconv, am_cv_func_iconv, [
367     am_cv_func_iconv="no, consider installing GNU libiconv"
368     am_cv_lib_iconv=no
369     AC_TRY_LINK([#include <stdlib.h>
370 #include <iconv.h>],
371       [iconv_t cd = iconv_open("","");
372        iconv(cd,NULL,NULL,NULL,NULL);
373        iconv_close(cd);],
374       am_cv_func_iconv=yes)
375     if test "$am_cv_func_iconv" != yes; then
376       am_save_LIBS="$LIBS"
377       LIBS="$LIBS -liconv"
378       AC_TRY_LINK([#include <stdlib.h>
379 #include <iconv.h>],
380         [iconv_t cd = iconv_open("","");
381          iconv(cd,NULL,NULL,NULL,NULL);
382          iconv_close(cd);],
383         am_cv_lib_iconv=yes
384         am_cv_func_iconv=yes)
385       LIBS="$am_save_LIBS"
386     fi
387   ])
388   if test "$am_cv_func_iconv" = yes; then
389     AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
390     AC_CACHE_CHECK([if iconv needs const], wx_cv_func_iconv_const,
391       AC_TRY_COMPILE([
392 #include <stdlib.h>
393 #include <iconv.h>
394 extern
395 #ifdef __cplusplus
396 "C"
397 #endif
398 #if defined(__STDC__) || defined(__cplusplus)
399 size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
400 #else
401 size_t iconv();
402 #endif
403         ],
404         [],
405         wx_cv_func_iconv_const="no",
406         wx_cv_func_iconv_const="yes"
407       )
408     )
409
410     iconv_const=
411     if test "x$wx_cv_func_iconv_const" != "xyes"; then
412         iconv_const="const"
413     fi
414
415     AC_DEFINE_UNQUOTED(ICONV_CONST, $iconv_const,
416       [Define as const if the declaration of iconv() needs const.])
417   fi
418   LIBICONV=
419   if test "$am_cv_lib_iconv" = yes; then
420     LIBICONV="-liconv"
421   fi
422   AC_SUBST(LIBICONV)
423 ])
424
425
426 dnl ---------------------------------------------------------------------------
427 dnl test for GTK+ 2.0
428 dnl ---------------------------------------------------------------------------
429
430 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
431 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
432 dnl
433 AC_DEFUN(AM_PATH_GTK_2_0,
434 [dnl
435 dnl Get the cflags and libraries from the gtk-config-2.0 script
436 dnl
437 AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
438             gtk_config_prefix="$withval", gtk_config_prefix="")
439 AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
440             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
441 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
442                     , enable_gtktest=yes)
443
444   for module in . $4
445   do
446       case "$module" in
447          gthread)
448              gtk_config_args="$gtk_config_args gthread"
449          ;;
450       esac
451   done
452
453   if test x$gtk_config_exec_prefix != x ; then
454      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
455      if test x${GTK_CONFIG_2_0+set} != xset ; then
456         GTK_CONFIG_2_0=$gtk_config_exec_prefix/bin/gtk-config-2.0
457      fi
458   fi
459   if test x$gtk_config_prefix != x ; then
460      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
461      if test x${GTK_CONFIG_2_0+set} != xset ; then
462         GTK_CONFIG_2_0=$gtk_config_prefix/bin/gtk-config-2.0
463      fi
464   fi
465
466   AC_PATH_PROG(GTK_CONFIG_2_0, gtk-config-2.0, no)
467   min_gtk_version=ifelse([$1], ,1.3.1,$1)
468   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
469   no_gtk=""
470   if test "$GTK_CONFIG_2_0" = "no" ; then
471     no_gtk=yes
472   else
473     GTK_CFLAGS=`$GTK_CONFIG_2_0 $gtk_config_args --cflags`
474     GTK_LIBS=`$GTK_CONFIG_2_0 $gtk_config_args --libs`
475     gtk_config_major_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \
476            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
477     gtk_config_minor_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \
478            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
479     gtk_config_micro_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \
480            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
481     if test "x$enable_gtktest" = "xyes" ; then
482       ac_save_CFLAGS="$CFLAGS"
483       ac_save_LIBS="$LIBS"
484       CFLAGS="$CFLAGS $GTK_CFLAGS"
485       LIBS="$GTK_LIBS $LIBS"
486 dnl
487 dnl Now check if the installed GTK is sufficiently new. (Also sanity
488 dnl checks the results of gtk-config-2.0 to some extent
489 dnl
490       rm -f conf.gtktest
491       AC_TRY_RUN([
492 #include <gtk/gtk.h>
493 #include <stdio.h>
494 #include <stdlib.h>
495
496 int
497 main ()
498 {
499   int major, minor, micro;
500   char *tmp_version;
501
502   system ("touch conf.gtktest");
503
504   /* HP/UX 9 (%@#!) writes to sscanf strings */
505   tmp_version = g_strdup("$min_gtk_version");
506   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
507      printf("%s, bad version string\n", "$min_gtk_version");
508      exit(1);
509    }
510
511   if ((gtk_major_version != $gtk_config_major_version) ||
512       (gtk_minor_version != $gtk_config_minor_version) ||
513       (gtk_micro_version != $gtk_config_micro_version))
514     {
515       printf("\n*** 'gtk-config-2.0 --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n",
516              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
517              gtk_major_version, gtk_minor_version, gtk_micro_version);
518       printf ("*** was found! If gtk-config-2.0 was correct, then it is best\n");
519       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
520       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
521       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
522       printf("*** required on your system.\n");
523       printf("*** If gtk-config-2.0 was wrong, set the environment variable GTK_CONFIG_2_0\n");
524       printf("*** to point to the correct copy of gtk-config-2.0, and remove the file config.cache\n");
525       printf("*** before re-running configure\n");
526     }
527 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
528   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
529            (gtk_minor_version != GTK_MINOR_VERSION) ||
530            (gtk_micro_version != GTK_MICRO_VERSION))
531     {
532       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
533              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
534       printf("*** library (version %d.%d.%d)\n",
535              gtk_major_version, gtk_minor_version, gtk_micro_version);
536     }
537 #endif /* defined (GTK_MAJOR_VERSION) ... */
538   else
539     {
540       if ((gtk_major_version > major) ||
541         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
542         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
543       {
544         return 0;
545        }
546      else
547       {
548         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
549                gtk_major_version, gtk_minor_version, gtk_micro_version);
550         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
551                major, minor, micro);
552         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
553         printf("***\n");
554         printf("*** If you have already installed a sufficiently new version, this error\n");
555         printf("*** probably means that the wrong copy of the gtk-config-2.0 shell script is\n");
556         printf("*** being found. The easiest way to fix this is to remove the old version\n");
557         printf("*** of GTK+, but you can also set the GTK_CONFIG_2_0 environment to point to the\n");
558         printf("*** correct copy of gtk-config-2.0. (In this case, you will have to\n");
559         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
560         printf("*** so that the correct libraries are found at run-time))\n");
561       }
562     }
563   return 1;
564 }
565 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
566        CFLAGS="$ac_save_CFLAGS"
567        LIBS="$ac_save_LIBS"
568      fi
569   fi
570   if test "x$no_gtk" = x ; then
571      AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
572      ifelse([$2], , :, [$2])
573   else
574      AC_MSG_RESULT(no)
575      if test "$GTK_CONFIG_2_0" = "no" ; then
576        echo "*** The gtk-config-2.0 script installed by GTK could not be found"
577        echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
578        echo "*** your path, or set the GTK_CONFIG_2_0 environment variable to the"
579        echo "*** full path to gtk-config-2.0."
580      else
581        if test -f conf.gtktest ; then
582         :
583        else
584           echo "*** Could not run GTK test program, checking why..."
585           CFLAGS="$CFLAGS $GTK_CFLAGS"
586           LIBS="$LIBS $GTK_LIBS"
587           AC_TRY_LINK([
588 #include <gtk/gtk.h>
589 #include <stdio.h>
590 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
591         [ echo "*** The test program compiled, but did not run. This usually means"
592           echo "*** that the run-time linker is not finding GTK or finding the wrong"
593           echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
594           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
595           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
596           echo "*** is required on your system"
597           echo "***"
598           echo "*** If you have an old version installed, it is best to remove it, although"
599           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
600           echo "***"
601           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
602           echo "*** came with the system with the command"
603           echo "***"
604           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
605         [ echo "*** The test program failed to compile or link. See the file config.log for the"
606           echo "*** exact error that occured. This usually means GTK was incorrectly installed"
607           echo "*** or that you have moved GTK since it was installed. In the latter case, you"
608           echo "*** may want to edit the gtk-config-2.0 script: $GTK_CONFIG_2_0" ])
609           CFLAGS="$ac_save_CFLAGS"
610           LIBS="$ac_save_LIBS"
611        fi
612      fi
613      GTK_CFLAGS=""
614      GTK_LIBS=""
615      ifelse([$3], , :, [$3])
616   fi
617   AC_SUBST(GTK_CFLAGS)
618   AC_SUBST(GTK_LIBS)
619   rm -f conf.gtktest
620 ])
621
622 # Configure paths for GTK+
623 # Owen Taylor     97-11-3
624
625 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
626 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
627 dnl
628 AC_DEFUN(AM_PATH_GTK,
629 [dnl 
630 dnl Get the cflags and libraries from the gtk-config script
631 dnl
632 AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
633             gtk_config_prefix="$withval", gtk_config_prefix="")
634 AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
635             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
636 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
637                     , enable_gtktest=yes)
638
639   for module in . $4
640   do
641       case "$module" in
642          gthread) 
643              gtk_config_args="$gtk_config_args gthread"
644          ;;
645       esac
646   done
647
648   if test x$gtk_config_exec_prefix != x ; then
649      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
650      if test x${GTK_CONFIG+set} != xset ; then
651         GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
652      fi
653   fi
654   if test x$gtk_config_prefix != x ; then
655      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
656      if test x${GTK_CONFIG+set} != xset ; then
657         GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
658      fi
659   fi
660
661   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
662   min_gtk_version=ifelse([$1], ,0.99.7,$1)
663   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
664   no_gtk=""
665   if test "$GTK_CONFIG" = "no" ; then
666     no_gtk=yes
667   else
668     GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
669     GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
670     gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
671            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
672     gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
673            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
674     gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
675            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
676     if test "x$enable_gtktest" = "xyes" ; then
677       ac_save_CFLAGS="$CFLAGS"
678       ac_save_LIBS="$LIBS"
679       CFLAGS="$CFLAGS $GTK_CFLAGS"
680       LIBS="$GTK_LIBS $LIBS"
681 dnl
682 dnl Now check if the installed GTK is sufficiently new. (Also sanity
683 dnl checks the results of gtk-config to some extent
684 dnl
685       rm -f conf.gtktest
686       AC_TRY_RUN([
687 #include <gtk/gtk.h>
688 #include <stdio.h>
689 #include <stdlib.h>
690
691 int 
692 main ()
693 {
694   int major, minor, micro;
695   char *tmp_version;
696
697   system ("touch conf.gtktest");
698
699   /* HP/UX 9 (%@#!) writes to sscanf strings */
700   tmp_version = g_strdup("$min_gtk_version");
701   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
702      printf("%s, bad version string\n", "$min_gtk_version");
703      exit(1);
704    }
705
706   if ((gtk_major_version != $gtk_config_major_version) ||
707       (gtk_minor_version != $gtk_config_minor_version) ||
708       (gtk_micro_version != $gtk_config_micro_version))
709     {
710       printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
711              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
712              gtk_major_version, gtk_minor_version, gtk_micro_version);
713       printf ("*** was found! If gtk-config was correct, then it is best\n");
714       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
715       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
716       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
717       printf("*** required on your system.\n");
718       printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
719       printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
720       printf("*** before re-running configure\n");
721     } 
722 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
723   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
724            (gtk_minor_version != GTK_MINOR_VERSION) ||
725            (gtk_micro_version != GTK_MICRO_VERSION))
726     {
727       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
728              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
729       printf("*** library (version %d.%d.%d)\n",
730              gtk_major_version, gtk_minor_version, gtk_micro_version);
731     }
732 #endif /* defined (GTK_MAJOR_VERSION) ... */
733   else
734     {
735       if ((gtk_major_version > major) ||
736         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
737         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
738       {
739         return 0;
740        }
741      else
742       {
743         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
744                gtk_major_version, gtk_minor_version, gtk_micro_version);
745         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
746                major, minor, micro);
747         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
748         printf("***\n");
749         printf("*** If you have already installed a sufficiently new version, this error\n");
750         printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
751         printf("*** being found. The easiest way to fix this is to remove the old version\n");
752         printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
753         printf("*** correct copy of gtk-config. (In this case, you will have to\n");
754         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
755         printf("*** so that the correct libraries are found at run-time))\n");
756       }
757     }
758   return 1;
759 }
760 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
761        CFLAGS="$ac_save_CFLAGS"
762        LIBS="$ac_save_LIBS"
763      fi
764   fi
765   if test "x$no_gtk" = x ; then
766      AC_MSG_RESULT(yes)
767      ifelse([$2], , :, [$2])     
768   else
769      AC_MSG_RESULT(no)
770      if test "$GTK_CONFIG" = "no" ; then
771        echo "*** The gtk-config script installed by GTK could not be found"
772        echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
773        echo "*** your path, or set the GTK_CONFIG environment variable to the"
774        echo "*** full path to gtk-config."
775      else
776        if test -f conf.gtktest ; then
777         :
778        else
779           echo "*** Could not run GTK test program, checking why..."
780           CFLAGS="$CFLAGS $GTK_CFLAGS"
781           LIBS="$LIBS $GTK_LIBS"
782           AC_TRY_LINK([
783 #include <gtk/gtk.h>
784 #include <stdio.h>
785 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
786         [ echo "*** The test program compiled, but did not run. This usually means"
787           echo "*** that the run-time linker is not finding GTK or finding the wrong"
788           echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
789           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
790           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
791           echo "*** is required on your system"
792           echo "***"
793           echo "*** If you have an old version installed, it is best to remove it, although"
794           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
795           echo "***"
796           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
797           echo "*** came with the system with the command"
798           echo "***"
799           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
800         [ echo "*** The test program failed to compile or link. See the file config.log for the"
801           echo "*** exact error that occured. This usually means GTK was incorrectly installed"
802           echo "*** or that you have moved GTK since it was installed. In the latter case, you"
803           echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
804           CFLAGS="$ac_save_CFLAGS"
805           LIBS="$ac_save_LIBS"
806        fi
807      fi
808      GTK_CFLAGS=""
809      GTK_LIBS=""
810      ifelse([$3], , :, [$3])
811   fi
812   AC_SUBST(GTK_CFLAGS)
813   AC_SUBST(GTK_LIBS)
814   rm -f conf.gtktest
815 ])
816