[gaim-migrate @ 4639]
[pidgin-git.git] / acinclude.m4
blobaba9e159653f064c32ebd84c18740a650472a0b2
1 # Configure paths for GLIB
2 # Owen Taylor     97-11-3
4 dnl AM_PATH_GLIB([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
5 dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if "gmodule" or 
6 dnl gthread is specified in MODULES, pass to glib-config
7 dnl
8 AC_DEFUN(AM_PATH_GLIB,
9 [dnl 
10 dnl Get the cflags and libraries from the glib-config script
11 dnl
12 AC_ARG_WITH(glib-prefix,[  --with-glib-prefix=PFX   Prefix where GLIB is installed (optional)],
13             glib_config_prefix="$withval", glib_config_prefix="")
14 AC_ARG_WITH(glib-exec-prefix,[  --with-glib-exec-prefix=PFX Exec prefix where GLIB is installed (optional)],
15             glib_config_exec_prefix="$withval", glib_config_exec_prefix="")
16 AC_ARG_ENABLE(glibtest, [  --disable-glibtest       Do not try to compile and run a test GLIB program],
17                     , enable_glibtest=yes)
19   if test x$glib_config_exec_prefix != x ; then
20      glib_config_args="$glib_config_args --exec-prefix=$glib_config_exec_prefix"
21      if test x${GLIB_CONFIG+set} != xset ; then
22         GLIB_CONFIG=$glib_config_exec_prefix/bin/glib-config
23      fi
24   fi
25   if test x$glib_config_prefix != x ; then
26      glib_config_args="$glib_config_args --prefix=$glib_config_prefix"
27      if test x${GLIB_CONFIG+set} != xset ; then
28         GLIB_CONFIG=$glib_config_prefix/bin/glib-config
29      fi
30   fi
32   for module in . $4
33   do
34       case "$module" in
35          gmodule) 
36              glib_config_args="$glib_config_args gmodule"
37          ;;
38          gthread) 
39              glib_config_args="$glib_config_args gthread"
40          ;;
41       esac
42   done
44   AC_PATH_PROG(GLIB_CONFIG, glib-config, no)
45   min_glib_version=ifelse([$1], ,0.99.7,$1)
46   AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
47   no_glib=""
48   if test "$GLIB_CONFIG" = "no" ; then
49     no_glib=yes
50   else
51     GLIB_CFLAGS=`$GLIB_CONFIG $glib_config_args --cflags`
52     GLIB_LIBS=`$GLIB_CONFIG $glib_config_args --libs`
53     glib_config_major_version=`$GLIB_CONFIG $glib_config_args --version | \
54            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
55     glib_config_minor_version=`$GLIB_CONFIG $glib_config_args --version | \
56            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
57     glib_config_micro_version=`$GLIB_CONFIG $glib_config_args --version | \
58            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
59     if test "x$enable_glibtest" = "xyes" ; then
60       ac_save_CFLAGS="$CFLAGS"
61       ac_save_LIBS="$LIBS"
62       CFLAGS="$CFLAGS $GLIB_CFLAGS"
63       LIBS="$GLIB_LIBS $LIBS"
64 dnl
65 dnl Now check if the installed GLIB is sufficiently new. (Also sanity
66 dnl checks the results of glib-config to some extent
67 dnl
68       rm -f conf.glibtest
69       AC_TRY_RUN([
70 #include <glib.h>
71 #include <stdio.h>
72 #include <stdlib.h>
74 int 
75 main ()
77   int major, minor, micro;
78   char *tmp_version;
80   system ("touch conf.glibtest");
82   /* HP/UX 9 (%@#!) writes to sscanf strings */
83   tmp_version = g_strdup("$min_glib_version");
84   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
85      printf("%s, bad version string\n", "$min_glib_version");
86      exit(1);
87    }
89   if ((glib_major_version != $glib_config_major_version) ||
90       (glib_minor_version != $glib_config_minor_version) ||
91       (glib_micro_version != $glib_config_micro_version))
92     {
93       printf("\n*** 'glib-config --version' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
94              $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
95              glib_major_version, glib_minor_version, glib_micro_version);
96       printf ("*** was found! If glib-config was correct, then it is best\n");
97       printf ("*** to remove the old version of GLIB. You may also be able to fix the error\n");
98       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
99       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
100       printf("*** required on your system.\n");
101       printf("*** If glib-config was wrong, set the environment variable GLIB_CONFIG\n");
102       printf("*** to point to the correct copy of glib-config, and remove the file config.cache\n");
103       printf("*** before re-running configure\n");
104     } 
105   else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
106            (glib_minor_version != GLIB_MINOR_VERSION) ||
107            (glib_micro_version != GLIB_MICRO_VERSION))
108     {
109       printf("*** GLIB header files (version %d.%d.%d) do not match\n",
110              GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
111       printf("*** library (version %d.%d.%d)\n",
112              glib_major_version, glib_minor_version, glib_micro_version);
113     }
114   else
115     {
116       if ((glib_major_version > major) ||
117         ((glib_major_version == major) && (glib_minor_version > minor)) ||
118         ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
119       {
120         return 0;
121        }
122      else
123       {
124         printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
125                glib_major_version, glib_minor_version, glib_micro_version);
126         printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
127                major, minor, micro);
128         printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
129         printf("***\n");
130         printf("*** If you have already installed a sufficiently new version, this error\n");
131         printf("*** probably means that the wrong copy of the glib-config shell script is\n");
132         printf("*** being found. The easiest way to fix this is to remove the old version\n");
133         printf("*** of GLIB, but you can also set the GLIB_CONFIG environment to point to the\n");
134         printf("*** correct copy of glib-config. (In this case, you will have to\n");
135         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
136         printf("*** so that the correct libraries are found at run-time))\n");
137       }
138     }
139   return 1;
141 ],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
142        CFLAGS="$ac_save_CFLAGS"
143        LIBS="$ac_save_LIBS"
144      fi
145   fi
146   if test "x$no_glib" = x ; then
147      AC_MSG_RESULT(yes)
148      ifelse([$2], , :, [$2])     
149   else
150      AC_MSG_RESULT(no)
151      if test "$GLIB_CONFIG" = "no" ; then
152        echo "*** The glib-config script installed by GLIB could not be found"
153        echo "*** If GLIB was installed in PREFIX, make sure PREFIX/bin is in"
154        echo "*** your path, or set the GLIB_CONFIG environment variable to the"
155        echo "*** full path to glib-config."
156      else
157        if test -f conf.glibtest ; then
158         :
159        else
160           echo "*** Could not run GLIB test program, checking why..."
161           CFLAGS="$CFLAGS $GLIB_CFLAGS"
162           LIBS="$LIBS $GLIB_LIBS"
163           AC_TRY_LINK([
164 #include <glib.h>
165 #include <stdio.h>
166 ],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
167         [ echo "*** The test program compiled, but did not run. This usually means"
168           echo "*** that the run-time linker is not finding GLIB or finding the wrong"
169           echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
170           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
171           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
172           echo "*** is required on your system"
173           echo "***"
174           echo "*** If you have an old version installed, it is best to remove it, although"
175           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
176           echo "***"
177           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
178           echo "*** came with the system with the command"
179           echo "***"
180           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
181         [ echo "*** The test program failed to compile or link. See the file config.log for the"
182           echo "*** exact error that occured. This usually means GLIB was incorrectly installed"
183           echo "*** or that you have moved GLIB since it was installed. In the latter case, you"
184           echo "*** may want to edit the glib-config script: $GLIB_CONFIG" ])
185           CFLAGS="$ac_save_CFLAGS"
186           LIBS="$ac_save_LIBS"
187        fi
188      fi
189      GLIB_CFLAGS=""
190      GLIB_LIBS=""
191      ifelse([$3], , :, [$3])
192   fi
193   AC_SUBST(GLIB_CFLAGS)
194   AC_SUBST(GLIB_LIBS)
195   rm -f conf.glibtest
197 # Configure paths for GTK+
198 # Owen Taylor     97-11-3
200 dnl AM_PATH_GTK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
201 dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS
203 AC_DEFUN(AM_PATH_GTK,
204 [dnl 
205 dnl Get the cflags and libraries from the gtk-config script
207 AC_ARG_WITH(gtk-prefix,[  --with-gtk-prefix=PFX   Prefix where GTK is installed (optional)],
208             gtk_config_prefix="$withval", gtk_config_prefix="")
209 AC_ARG_WITH(gtk-exec-prefix,[  --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)],
210             gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="")
211 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       Do not try to compile and run a test GTK program],
212                     , enable_gtktest=yes)
214   for module in . $4
215   do
216       case "$module" in
217          gthread) 
218              gtk_config_args="$gtk_config_args gthread"
219          ;;
220       esac
221   done
223   if test x$gtk_config_exec_prefix != x ; then
224      gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix"
225      if test x${GTK_CONFIG+set} != xset ; then
226         GTK_CONFIG=$gtk_config_exec_prefix/bin/gtk-config
227      fi
228   fi
229   if test x$gtk_config_prefix != x ; then
230      gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix"
231      if test x${GTK_CONFIG+set} != xset ; then
232         GTK_CONFIG=$gtk_config_prefix/bin/gtk-config
233      fi
234   fi
236   AC_PATH_PROG(GTK_CONFIG, gtk-config, no)
237   min_gtk_version=ifelse([$1], ,0.99.7,$1)
238   AC_MSG_CHECKING(for GTK - version >= $min_gtk_version)
239   no_gtk=""
240   if test "$GTK_CONFIG" = "no" ; then
241     no_gtk=yes
242   else
243     GTK_CFLAGS=`$GTK_CONFIG $gtk_config_args --cflags`
244     GTK_LIBS=`$GTK_CONFIG $gtk_config_args --libs`
245     gtk_config_major_version=`$GTK_CONFIG $gtk_config_args --version | \
246            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
247     gtk_config_minor_version=`$GTK_CONFIG $gtk_config_args --version | \
248            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
249     gtk_config_micro_version=`$GTK_CONFIG $gtk_config_args --version | \
250            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
251     if test "x$enable_gtktest" = "xyes" ; then
252       ac_save_CFLAGS="$CFLAGS"
253       ac_save_LIBS="$LIBS"
254       CFLAGS="$CFLAGS $GTK_CFLAGS"
255       LIBS="$GTK_LIBS $LIBS"
257 dnl Now check if the installed GTK is sufficiently new. (Also sanity
258 dnl checks the results of gtk-config to some extent
260       rm -f conf.gtktest
261       AC_TRY_RUN([
262 #include <gtk/gtk.h>
263 #include <stdio.h>
264 #include <stdlib.h>
266 int 
267 main ()
269   int major, minor, micro;
270   char *tmp_version;
272   system ("touch conf.gtktest");
274   /* HP/UX 9 (%@#!) writes to sscanf strings */
275   tmp_version = g_strdup("$min_gtk_version");
276   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
277      printf("%s, bad version string\n", "$min_gtk_version");
278      exit(1);
279    }
281   if ((gtk_major_version != $gtk_config_major_version) ||
282       (gtk_minor_version != $gtk_config_minor_version) ||
283       (gtk_micro_version != $gtk_config_micro_version))
284     {
285       printf("\n*** 'gtk-config --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
286              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
287              gtk_major_version, gtk_minor_version, gtk_micro_version);
288       printf ("*** was found! If gtk-config was correct, then it is best\n");
289       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
290       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
291       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
292       printf("*** required on your system.\n");
293       printf("*** If gtk-config was wrong, set the environment variable GTK_CONFIG\n");
294       printf("*** to point to the correct copy of gtk-config, and remove the file config.cache\n");
295       printf("*** before re-running configure\n");
296     } 
297 #if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION)
298   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
299            (gtk_minor_version != GTK_MINOR_VERSION) ||
300            (gtk_micro_version != GTK_MICRO_VERSION))
301     {
302       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
303              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
304       printf("*** library (version %d.%d.%d)\n",
305              gtk_major_version, gtk_minor_version, gtk_micro_version);
306     }
307 #endif /* defined (GTK_MAJOR_VERSION) ... */
308   else
309     {
310       if ((gtk_major_version > major) ||
311         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
312         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
313       {
314         return 0;
315        }
316      else
317       {
318         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
319                gtk_major_version, gtk_minor_version, gtk_micro_version);
320         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
321                major, minor, micro);
322         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
323         printf("***\n");
324         printf("*** If you have already installed a sufficiently new version, this error\n");
325         printf("*** probably means that the wrong copy of the gtk-config shell script is\n");
326         printf("*** being found. The easiest way to fix this is to remove the old version\n");
327         printf("*** of GTK+, but you can also set the GTK_CONFIG environment to point to the\n");
328         printf("*** correct copy of gtk-config. (In this case, you will have to\n");
329         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
330         printf("*** so that the correct libraries are found at run-time))\n");
331       }
332     }
333   return 1;
335 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
336        CFLAGS="$ac_save_CFLAGS"
337        LIBS="$ac_save_LIBS"
338      fi
339   fi
340   if test "x$no_gtk" = x ; then
341      AC_MSG_RESULT(yes)
342      ifelse([$2], , :, [$2])     
343   else
344      AC_MSG_RESULT(no)
345      if test "$GTK_CONFIG" = "no" ; then
346        echo "*** The gtk-config script installed by GTK could not be found"
347        echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in"
348        echo "*** your path, or set the GTK_CONFIG environment variable to the"
349        echo "*** full path to gtk-config."
350      else
351        if test -f conf.gtktest ; then
352         :
353        else
354           echo "*** Could not run GTK test program, checking why..."
355           CFLAGS="$CFLAGS $GTK_CFLAGS"
356           LIBS="$LIBS $GTK_LIBS"
357           AC_TRY_LINK([
358 #include <gtk/gtk.h>
359 #include <stdio.h>
360 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
361         [ echo "*** The test program compiled, but did not run. This usually means"
362           echo "*** that the run-time linker is not finding GTK or finding the wrong"
363           echo "*** version of GTK. If it is not finding GTK, you'll need to set your"
364           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
365           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
366           echo "*** is required on your system"
367           echo "***"
368           echo "*** If you have an old version installed, it is best to remove it, although"
369           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"
370           echo "***"
371           echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that"
372           echo "*** came with the system with the command"
373           echo "***"
374           echo "***    rpm --erase --nodeps gtk gtk-devel" ],
375         [ echo "*** The test program failed to compile or link. See the file config.log for the"
376           echo "*** exact error that occured. This usually means GTK was incorrectly installed"
377           echo "*** or that you have moved GTK since it was installed. In the latter case, you"
378           echo "*** may want to edit the gtk-config script: $GTK_CONFIG" ])
379           CFLAGS="$ac_save_CFLAGS"
380           LIBS="$ac_save_LIBS"
381        fi
382      fi
383      GTK_CFLAGS=""
384      GTK_LIBS=""
385      ifelse([$3], , :, [$3])
386   fi
387   AC_SUBST(GTK_CFLAGS)
388   AC_SUBST(GTK_LIBS)
389   rm -f conf.gtktest
392 AC_DEFUN([AM_GNU_GETTEXT_VERSION], [])
393 # Configure paths for GLIB
394 # Owen Taylor     1997-2001
396 dnl AM_PATH_GLIB_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
397 dnl Test for GLIB, and define GLIB_CFLAGS and GLIB_LIBS, if gmodule, gobject or 
398 dnl gthread is specified in MODULES, pass to pkg-config
400 AC_DEFUN(AM_PATH_GLIB_2_0,
401 [dnl 
402 dnl Get the cflags and libraries from pkg-config
404 AC_ARG_ENABLE(glibtest, [  --disable-glibtest      do not try to compile and run a test GLIB program],
405                     , enable_glibtest=yes)
407   pkg_config_args=glib-2.0
408   for module in . $4
409   do
410       case "$module" in
411          gmodule) 
412              pkg_config_args="$pkg_config_args gmodule-2.0"
413          ;;
414          gobject) 
415              pkg_config_args="$pkg_config_args gobject-2.0"
416          ;;
417          gthread) 
418              pkg_config_args="$pkg_config_args gthread-2.0"
419          ;;
420       esac
421   done
423   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
425   no_glib=""
427   if test x$PKG_CONFIG != xno ; then
428     if $PKG_CONFIG --atleast-pkgconfig-version 0.7 ; then
429       :
430     else
431       echo *** pkg-config too old; version 0.7 or better required.
432       no_glib=yes
433       PKG_CONFIG=no
434     fi
435   else
436     no_glib=yes
437   fi
439   min_glib_version=ifelse([$1], ,2.0.0,$1)
440   AC_MSG_CHECKING(for GLIB - version >= $min_glib_version)
442   if test x$PKG_CONFIG != xno ; then
443     ## don't try to run the test against uninstalled libtool libs
444     if $PKG_CONFIG --uninstalled $pkg_config_args; then
445           echo "Will use uninstalled version of GLib found in PKG_CONFIG_PATH"
446           enable_glibtest=no
447     fi
449     if $PKG_CONFIG --atleast-version $min_glib_version $pkg_config_args; then
450           :
451     else
452           no_glib=yes
453     fi
454   fi
456   if test x"$no_glib" = x ; then
457     GLIB_GENMARSHAL=`$PKG_CONFIG --variable=glib_genmarshal glib-2.0`
458     GOBJECT_QUERY=`$PKG_CONFIG --variable=gobject_query glib-2.0`
459     GLIB_MKENUMS=`$PKG_CONFIG --variable=glib_mkenums glib-2.0`
461     GLIB_CFLAGS=`$PKG_CONFIG --cflags $pkg_config_args`
462     GLIB_LIBS=`$PKG_CONFIG --libs $pkg_config_args`
463     glib_config_major_version=`$PKG_CONFIG --modversion glib-2.0 | \
464            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
465     glib_config_minor_version=`$PKG_CONFIG --modversion glib-2.0 | \
466            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
467     glib_config_micro_version=`$PKG_CONFIG --modversion glib-2.0 | \
468            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
469     if test "x$enable_glibtest" = "xyes" ; then
470       ac_save_CFLAGS="$CFLAGS"
471       ac_save_LIBS="$LIBS"
472       CFLAGS="$CFLAGS $GLIB_CFLAGS"
473       LIBS="$GLIB_LIBS $LIBS"
475 dnl Now check if the installed GLIB is sufficiently new. (Also sanity
476 dnl checks the results of pkg-config to some extent)
478       rm -f conf.glibtest
479       AC_TRY_RUN([
480 #include <glib.h>
481 #include <stdio.h>
482 #include <stdlib.h>
484 int 
485 main ()
487   int major, minor, micro;
488   char *tmp_version;
490   system ("touch conf.glibtest");
492   /* HP/UX 9 (%@#!) writes to sscanf strings */
493   tmp_version = g_strdup("$min_glib_version");
494   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
495      printf("%s, bad version string\n", "$min_glib_version");
496      exit(1);
497    }
499   if ((glib_major_version != $glib_config_major_version) ||
500       (glib_minor_version != $glib_config_minor_version) ||
501       (glib_micro_version != $glib_config_micro_version))
502     {
503       printf("\n*** 'pkg-config --modversion glib-2.0' returned %d.%d.%d, but GLIB (%d.%d.%d)\n", 
504              $glib_config_major_version, $glib_config_minor_version, $glib_config_micro_version,
505              glib_major_version, glib_minor_version, glib_micro_version);
506       printf ("*** was found! If pkg-config was correct, then it is best\n");
507       printf ("*** to remove the old version of GLib. You may also be able to fix the error\n");
508       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
509       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
510       printf("*** required on your system.\n");
511       printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
512       printf("*** to point to the correct configuration files\n");
513     } 
514   else if ((glib_major_version != GLIB_MAJOR_VERSION) ||
515            (glib_minor_version != GLIB_MINOR_VERSION) ||
516            (glib_micro_version != GLIB_MICRO_VERSION))
517     {
518       printf("*** GLIB header files (version %d.%d.%d) do not match\n",
519              GLIB_MAJOR_VERSION, GLIB_MINOR_VERSION, GLIB_MICRO_VERSION);
520       printf("*** library (version %d.%d.%d)\n",
521              glib_major_version, glib_minor_version, glib_micro_version);
522     }
523   else
524     {
525       if ((glib_major_version > major) ||
526         ((glib_major_version == major) && (glib_minor_version > minor)) ||
527         ((glib_major_version == major) && (glib_minor_version == minor) && (glib_micro_version >= micro)))
528       {
529         return 0;
530        }
531      else
532       {
533         printf("\n*** An old version of GLIB (%d.%d.%d) was found.\n",
534                glib_major_version, glib_minor_version, glib_micro_version);
535         printf("*** You need a version of GLIB newer than %d.%d.%d. The latest version of\n",
536                major, minor, micro);
537         printf("*** GLIB is always available from ftp://ftp.gtk.org.\n");
538         printf("***\n");
539         printf("*** If you have already installed a sufficiently new version, this error\n");
540         printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
541         printf("*** being found. The easiest way to fix this is to remove the old version\n");
542         printf("*** of GLIB, but you can also set the PKG_CONFIG environment to point to the\n");
543         printf("*** correct copy of pkg-config. (In this case, you will have to\n");
544         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
545         printf("*** so that the correct libraries are found at run-time))\n");
546       }
547     }
548   return 1;
550 ],, no_glib=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
551        CFLAGS="$ac_save_CFLAGS"
552        LIBS="$ac_save_LIBS"
553      fi
554   fi
555   if test "x$no_glib" = x ; then
556      AC_MSG_RESULT(yes (version $glib_config_major_version.$glib_config_minor_version.$glib_config_micro_version))
557      ifelse([$2], , :, [$2])     
558   else
559      AC_MSG_RESULT(no)
560      if test "$PKG_CONFIG" = "no" ; then
561        echo "*** A new enough version of pkg-config was not found."
562        echo "*** See http://www.freedesktop.org/software/pkgconfig/"
563      else
564        if test -f conf.glibtest ; then
565         :
566        else
567           echo "*** Could not run GLIB test program, checking why..."
568           ac_save_CFLAGS="$CFLAGS"
569           ac_save_LIBS="$LIBS"
570           CFLAGS="$CFLAGS $GLIB_CFLAGS"
571           LIBS="$LIBS $GLIB_LIBS"
572           AC_TRY_LINK([
573 #include <glib.h>
574 #include <stdio.h>
575 ],      [ return ((glib_major_version) || (glib_minor_version) || (glib_micro_version)); ],
576         [ echo "*** The test program compiled, but did not run. This usually means"
577           echo "*** that the run-time linker is not finding GLIB or finding the wrong"
578           echo "*** version of GLIB. If it is not finding GLIB, you'll need to set your"
579           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
580           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
581           echo "*** is required on your system"
582           echo "***"
583           echo "*** If you have an old version installed, it is best to remove it, although"
584           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
585         [ echo "*** The test program failed to compile or link. See the file config.log for the"
586           echo "*** exact error that occured. This usually means GLIB is incorrectly installed."])
587           CFLAGS="$ac_save_CFLAGS"
588           LIBS="$ac_save_LIBS"
589        fi
590      fi
591      GLIB_CFLAGS=""
592      GLIB_LIBS=""
593      GLIB_GENMARSHAL=""
594      GOBJECT_QUERY=""
595      GLIB_MKENUMS=""
596      ifelse([$3], , :, [$3])
597   fi
598   AC_SUBST(GLIB_CFLAGS)
599   AC_SUBST(GLIB_LIBS)
600   AC_SUBST(GLIB_GENMARSHAL)
601   AC_SUBST(GOBJECT_QUERY)
602   AC_SUBST(GLIB_MKENUMS)
603   rm -f conf.glibtest
605 # Configure paths for GTK+
606 # Owen Taylor     1997-2001
608 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]])
609 dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, 
610 dnl pass to pkg-config
612 AC_DEFUN(AM_PATH_GTK_2_0,
613 [dnl 
614 dnl Get the cflags and libraries from pkg-config
616 AC_ARG_ENABLE(gtktest, [  --disable-gtktest       do not try to compile and run a test GTK+ program],
617                     , enable_gtktest=yes)
619   pkg_config_args=gtk+-2.0
620   for module in . $4
621   do
622       case "$module" in
623          gthread) 
624              pkg_config_args="$pkg_config_args gthread-2.0"
625          ;;
626       esac
627   done
629   no_gtk=""
631   AC_PATH_PROG(PKG_CONFIG, pkg-config, no)
633   if test x$PKG_CONFIG != xno ; then
634     if pkg-config --atleast-pkgconfig-version 0.7 ; then
635       :
636     else
637       echo *** pkg-config too old; version 0.7 or better required.
638       no_gtk=yes
639       PKG_CONFIG=no
640     fi
641   else
642     no_gtk=yes
643   fi
645   min_gtk_version=ifelse([$1], ,2.0.0,$1)
646   AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version)
648   if test x$PKG_CONFIG != xno ; then
649     ## don't try to run the test against uninstalled libtool libs
650     if $PKG_CONFIG --uninstalled $pkg_config_args; then
651           echo "Will use uninstalled version of GTK+ found in PKG_CONFIG_PATH"
652           enable_gtktest=no
653     fi
655     if $PKG_CONFIG --atleast-version $min_gtk_version $pkg_config_args; then
656           :
657     else
658           no_gtk=yes
659     fi
660   fi
662   if test x"$no_gtk" = x ; then
663     GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags`
664     GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs`
665     gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
666            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'`
667     gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
668            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'`
669     gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \
670            sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'`
671     if test "x$enable_gtktest" = "xyes" ; then
672       ac_save_CFLAGS="$CFLAGS"
673       ac_save_LIBS="$LIBS"
674       CFLAGS="$CFLAGS $GTK_CFLAGS"
675       LIBS="$GTK_LIBS $LIBS"
677 dnl Now check if the installed GTK+ is sufficiently new. (Also sanity
678 dnl checks the results of pkg-config to some extent)
680       rm -f conf.gtktest
681       AC_TRY_RUN([
682 #include <gtk/gtk.h>
683 #include <stdio.h>
684 #include <stdlib.h>
686 int 
687 main ()
689   int major, minor, micro;
690   char *tmp_version;
692   system ("touch conf.gtktest");
694   /* HP/UX 9 (%@#!) writes to sscanf strings */
695   tmp_version = g_strdup("$min_gtk_version");
696   if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, &micro) != 3) {
697      printf("%s, bad version string\n", "$min_gtk_version");
698      exit(1);
699    }
701   if ((gtk_major_version != $gtk_config_major_version) ||
702       (gtk_minor_version != $gtk_config_minor_version) ||
703       (gtk_micro_version != $gtk_config_micro_version))
704     {
705       printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", 
706              $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version,
707              gtk_major_version, gtk_minor_version, gtk_micro_version);
708       printf ("*** was found! If pkg-config was correct, then it is best\n");
709       printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n");
710       printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n");
711       printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n");
712       printf("*** required on your system.\n");
713       printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n");
714       printf("*** to point to the correct configuration files\n");
715     } 
716   else if ((gtk_major_version != GTK_MAJOR_VERSION) ||
717            (gtk_minor_version != GTK_MINOR_VERSION) ||
718            (gtk_micro_version != GTK_MICRO_VERSION))
719     {
720       printf("*** GTK+ header files (version %d.%d.%d) do not match\n",
721              GTK_MAJOR_VERSION, GTK_MINOR_VERSION, GTK_MICRO_VERSION);
722       printf("*** library (version %d.%d.%d)\n",
723              gtk_major_version, gtk_minor_version, gtk_micro_version);
724     }
725   else
726     {
727       if ((gtk_major_version > major) ||
728         ((gtk_major_version == major) && (gtk_minor_version > minor)) ||
729         ((gtk_major_version == major) && (gtk_minor_version == minor) && (gtk_micro_version >= micro)))
730       {
731         return 0;
732        }
733      else
734       {
735         printf("\n*** An old version of GTK+ (%d.%d.%d) was found.\n",
736                gtk_major_version, gtk_minor_version, gtk_micro_version);
737         printf("*** You need a version of GTK+ newer than %d.%d.%d. The latest version of\n",
738                major, minor, micro);
739         printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n");
740         printf("***\n");
741         printf("*** If you have already installed a sufficiently new version, this error\n");
742         printf("*** probably means that the wrong copy of the pkg-config shell script is\n");
743         printf("*** being found. The easiest way to fix this is to remove the old version\n");
744         printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n");
745         printf("*** correct copy of pkg-config. (In this case, you will have to\n");
746         printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n");
747         printf("*** so that the correct libraries are found at run-time))\n");
748       }
749     }
750   return 1;
752 ],, no_gtk=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"])
753        CFLAGS="$ac_save_CFLAGS"
754        LIBS="$ac_save_LIBS"
755      fi
756   fi
757   if test "x$no_gtk" = x ; then
758      AC_MSG_RESULT(yes (version $gtk_config_major_version.$gtk_config_minor_version.$gtk_config_micro_version))
759      ifelse([$2], , :, [$2])     
760   else
761      AC_MSG_RESULT(no)
762      if test "$PKG_CONFIG" = "no" ; then
763        echo "*** A new enough version of pkg-config was not found."
764        echo "*** See http://pkgconfig.sourceforge.net"
765      else
766        if test -f conf.gtktest ; then
767         :
768        else
769           echo "*** Could not run GTK+ test program, checking why..."
770           ac_save_CFLAGS="$CFLAGS"
771           ac_save_LIBS="$LIBS"
772           CFLAGS="$CFLAGS $GTK_CFLAGS"
773           LIBS="$LIBS $GTK_LIBS"
774           AC_TRY_LINK([
775 #include <gtk/gtk.h>
776 #include <stdio.h>
777 ],      [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ],
778         [ echo "*** The test program compiled, but did not run. This usually means"
779           echo "*** that the run-time linker is not finding GTK+ or finding the wrong"
780           echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your"
781           echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point"
782           echo "*** to the installed location  Also, make sure you have run ldconfig if that"
783           echo "*** is required on your system"
784           echo "***"
785           echo "*** If you have an old version installed, it is best to remove it, although"
786           echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ],
787         [ echo "*** The test program failed to compile or link. See the file config.log for the"
788           echo "*** exact error that occured. This usually means GTK+ is incorrectly installed."])
789           CFLAGS="$ac_save_CFLAGS"
790           LIBS="$ac_save_LIBS"
791        fi
792      fi
793      GTK_CFLAGS=""
794      GTK_LIBS=""
795      ifelse([$3], , :, [$3])
796   fi
797   AC_SUBST(GTK_CFLAGS)
798   AC_SUBST(GTK_LIBS)
799   rm -f conf.gtktest