X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=gtk-2.0.m4;h=ef847d714926c23c9ae7121373152066bdca2b84;hb=c626cd4233c03dc5a1ec81a2b272e59bed285c85;hp=6b8d91e1b9b37fa79a9d4042b7940da8742165b0;hpb=cc87344c1fa786707aea46a2979919d954ab517e;p=~andy%2Fgtk diff --git a/gtk-2.0.m4 b/gtk-2.0.m4 index 6b8d91e1b..ef847d714 100644 --- a/gtk-2.0.m4 +++ b/gtk-2.0.m4 @@ -1,56 +1,52 @@ # Configure paths for GTK+ -# Owen Taylor 97-11-3 +# Owen Taylor 1997-2001 dnl AM_PATH_GTK_2_0([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND [, MODULES]]]]) -dnl Test for GTK, and define GTK_CFLAGS and GTK_LIBS +dnl Test for GTK+, and define GTK_CFLAGS and GTK_LIBS, if gthread is specified in MODULES, +dnl pass to pkg-config dnl AC_DEFUN(AM_PATH_GTK_2_0, [dnl -dnl Get the cflags and libraries from the gtk-config-2.0 script +dnl Get the cflags and libraries from pkg-config dnl -AC_ARG_WITH(gtk-prefix,[ --with-gtk-prefix=PFX Prefix where GTK is installed (optional)], - gtk_config_prefix="$withval", gtk_config_prefix="") -AC_ARG_WITH(gtk-exec-prefix,[ --with-gtk-exec-prefix=PFX Exec prefix where GTK is installed (optional)], - gtk_config_exec_prefix="$withval", gtk_config_exec_prefix="") -AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK program], +AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run a test GTK+ program], , enable_gtktest=yes) + pkg_config_args=gtk+-2.0 for module in . $4 do case "$module" in gthread) - gtk_config_args="$gtk_config_args gthread" + pkg_config_args="$pkg_config_args gthread-2.0" ;; esac done - if test x$gtk_config_exec_prefix != x ; then - gtk_config_args="$gtk_config_args --exec-prefix=$gtk_config_exec_prefix" - if test x${GTK_CONFIG_2_0+set} != xset ; then - GTK_CONFIG_2_0=$gtk_config_exec_prefix/bin/gtk-config-2.0 - fi - fi - if test x$gtk_config_prefix != x ; then - gtk_config_args="$gtk_config_args --prefix=$gtk_config_prefix" - if test x${GTK_CONFIG_2_0+set} != xset ; then - GTK_CONFIG_2_0=$gtk_config_prefix/bin/gtk-config-2.0 - fi - fi + min_gtk_version=ifelse([$1], ,1.3.3,$1) + AC_MSG_CHECKING(for GTK+ - version >= $min_gtk_version) - AC_PATH_PROG(GTK_CONFIG_2_0, gtk-config-2.0, no) - min_gtk_version=ifelse([$1], ,1.3.1,$1) - AC_MSG_CHECKING(for GTK - version >= $min_gtk_version) no_gtk="" - if test "$GTK_CONFIG_2_0" = "no" ; then - no_gtk=yes - else - GTK_CFLAGS=`$GTK_CONFIG_2_0 $gtk_config_args --cflags` - GTK_LIBS=`$GTK_CONFIG_2_0 $gtk_config_args --libs` - gtk_config_major_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \ + + AC_PATH_PROG(PKG_CONFIG, pkg-config, no) + + if test x$PKG_CONFIG != xno ; then + if pkg-config --atleast-pkgconfig-version 0.5 ; then + : + else + echo *** pkg-config too old; version 0.5 or better required. + no_gtk=yes + PKG_CONFIG=no + fi + fi + + if test x"$no_gtk" = x ; then + GTK_CFLAGS=`$PKG_CONFIG $pkg_config_args --cflags` + GTK_LIBS=`$PKG_CONFIG $pkg_config_args --libs` + gtk_config_major_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\1/'` - gtk_config_minor_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \ + gtk_config_minor_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\2/'` - gtk_config_micro_version=`$GTK_CONFIG_2_0 $gtk_config_args --version | \ + gtk_config_micro_version=`$PKG_CONFIG --modversion gtk+-2.0 | \ sed 's/\([[0-9]]*\).\([[0-9]]*\).\([[0-9]]*\)/\3/'` if test "x$enable_gtktest" = "xyes" ; then ac_save_CFLAGS="$CFLAGS" @@ -58,8 +54,8 @@ AC_ARG_ENABLE(gtktest, [ --disable-gtktest Do not try to compile and run CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$GTK_LIBS $LIBS" dnl -dnl Now check if the installed GTK is sufficiently new. (Also sanity -dnl checks the results of gtk-config-2.0 to some extent +dnl Now check if the installed GTK+ is sufficiently new. (Also sanity +dnl checks the results of pkg-config to some extent) dnl rm -f conf.gtktest AC_TRY_RUN([ @@ -86,19 +82,17 @@ main () (gtk_minor_version != $gtk_config_minor_version) || (gtk_micro_version != $gtk_config_micro_version)) { - printf("\n*** 'gtk-config-2.0 --version' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", + printf("\n*** 'pkg-config --modversion gtk+-2.0' returned %d.%d.%d, but GTK+ (%d.%d.%d)\n", $gtk_config_major_version, $gtk_config_minor_version, $gtk_config_micro_version, gtk_major_version, gtk_minor_version, gtk_micro_version); - printf ("*** was found! If gtk-config-2.0 was correct, then it is best\n"); + printf ("*** was found! If pkg-config was correct, then it is best\n"); printf ("*** to remove the old version of GTK+. You may also be able to fix the error\n"); printf("*** by modifying your LD_LIBRARY_PATH enviroment variable, or by editing\n"); printf("*** /etc/ld.so.conf. Make sure you have run ldconfig if that is\n"); printf("*** required on your system.\n"); - printf("*** If gtk-config-2.0 was wrong, set the environment variable GTK_CONFIG_2_0\n"); - printf("*** to point to the correct copy of gtk-config-2.0, and remove the file config.cache\n"); - printf("*** before re-running configure\n"); + printf("*** If pkg-config was wrong, set the environment variable PKG_CONFIG_PATH\n"); + printf("*** to point to the correct configuration files\n"); } -#if defined (GTK_MAJOR_VERSION) && defined (GTK_MINOR_VERSION) && defined (GTK_MICRO_VERSION) else if ((gtk_major_version != GTK_MAJOR_VERSION) || (gtk_minor_version != GTK_MINOR_VERSION) || (gtk_micro_version != GTK_MICRO_VERSION)) @@ -108,7 +102,6 @@ main () printf("*** library (version %d.%d.%d)\n", gtk_major_version, gtk_minor_version, gtk_micro_version); } -#endif /* defined (GTK_MAJOR_VERSION) ... */ else { if ((gtk_major_version > major) || @@ -126,10 +119,10 @@ main () printf("*** GTK+ is always available from ftp://ftp.gtk.org.\n"); printf("***\n"); printf("*** If you have already installed a sufficiently new version, this error\n"); - printf("*** probably means that the wrong copy of the gtk-config-2.0 shell script is\n"); + printf("*** probably means that the wrong copy of the pkg-config shell script is\n"); printf("*** being found. The easiest way to fix this is to remove the old version\n"); - printf("*** of GTK+, but you can also set the GTK_CONFIG_2_0 environment to point to the\n"); - printf("*** correct copy of gtk-config-2.0. (In this case, you will have to\n"); + printf("*** of GTK+, but you can also set the PKG_CONFIG environment to point to the\n"); + printf("*** correct copy of pkg-config. (In this case, you will have to\n"); printf("*** modify your LD_LIBRARY_PATH enviroment variable, or edit /etc/ld.so.conf\n"); printf("*** so that the correct libraries are found at run-time))\n"); } @@ -146,16 +139,14 @@ main () ifelse([$2], , :, [$2]) else AC_MSG_RESULT(no) - if test "$GTK_CONFIG_2_0" = "no" ; then - echo "*** The gtk-config-2.0 script installed by GTK could not be found" - echo "*** If GTK was installed in PREFIX, make sure PREFIX/bin is in" - echo "*** your path, or set the GTK_CONFIG_2_0 environment variable to the" - echo "*** full path to gtk-config-2.0." + if test "$PKG_CONFIG" = "no" ; then + echo "*** A new enough version of pkg-config was not found." + echo "*** See http://pkgconfig.sourceforge.net" else if test -f conf.gtktest ; then : else - echo "*** Could not run GTK test program, checking why..." + echo "*** Could not run GTK+ test program, checking why..." CFLAGS="$CFLAGS $GTK_CFLAGS" LIBS="$LIBS $GTK_LIBS" AC_TRY_LINK([ @@ -163,23 +154,18 @@ main () #include ], [ return ((gtk_major_version) || (gtk_minor_version) || (gtk_micro_version)); ], [ echo "*** The test program compiled, but did not run. This usually means" - echo "*** that the run-time linker is not finding GTK or finding the wrong" - echo "*** version of GTK. If it is not finding GTK, you'll need to set your" + echo "*** that the run-time linker is not finding GTK+ or finding the wrong" + echo "*** version of GTK+. If it is not finding GTK+, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "***" echo "*** If you have an old version installed, it is best to remove it, although" - echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" - echo "***" - echo "*** If you have a RedHat 5.0 system, you should remove the GTK package that" - echo "*** came with the system with the command" - echo "***" - echo "*** rpm --erase --nodeps gtk gtk-devel" ], + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" ], [ echo "*** The test program failed to compile or link. See the file config.log for the" - echo "*** exact error that occured. This usually means GTK was incorrectly installed" - echo "*** or that you have moved GTK since it was installed. In the latter case, you" - echo "*** may want to edit the gtk-config-2.0 script: $GTK_CONFIG_2_0" ]) + echo "*** exact error that occured. This usually means GTK+ was incorrectly installed" + echo "*** or that you have moved GTK+ since it was installed. In the latter case, you" + echo "*** may want to edit the pkg-config script: $PKG_CONFIG" ]) CFLAGS="$ac_save_CFLAGS" LIBS="$ac_save_LIBS" fi