dnl GNOME_X_CHECKS
dnl
dnl Basic X11 related checks for X11. At the end, the following will be
dnl defined/changed:
dnl GTK_{CFLAGS,LIBS} From AM_PATH_GTK
dnl CPPFLAGS Will include $X_CFLAGS
dnl GNOME_HAVE_SM `true' or `false' depending on whether session
dnl management is available. It is available if
dnl both -lSM and X11/SM/SMlib.h exist. (Some
dnl Solaris boxes have the library but not the header)
dnl XPM_LIBS -lXpm if Xpm library is present, otherwise ""
dnl
dnl The following configure cache variables are defined (but not used):
dnl gnome_cv_passdown_{x_libs,X_LIBS,X_CFLAGS}
dnl
AC_DEFUN([GNOME_X_CHECKS],
[
AM_PATH_GTK(1.2.0,,AC_MSG_ERROR(GTK not installed, or gtk-config not in path))
dnl Hope that GTK_CFLAGS have only -I and -D. Otherwise, we could
dnl test -z "$x_includes" || CPPFLAGS="$CPPFLAGS -I$x_includes"
dnl
dnl Use CPPFLAGS instead of CFLAGS because AC_CHECK_HEADERS uses
dnl CPPFLAGS, not CFLAGS
CPPFLAGS="$CPPFLAGS $GTK_CFLAGS"
saved_ldflags="$LDFLAGS"
LDFLAGS="$LDFLAGS $GTK_LIBS"
gnome_cv_passdown_x_libs="$GTK_LIBS"
gnome_cv_passdown_X_LIBS="$GTK_LIBS"
gnome_cv_passdown_X_CFLAGS="$GTK_CFLAGS"
gnome_cv_passdown_GTK_LIBS="$GTK_LIBS"
LDFLAGS="$saved_ldflags $GTK_LIBS"
dnl Check that we *don't* get GTK 1.3.* yet
AC_MSG_CHECKING([whether we have GTK > 1.2])
AC_EGREP_CPP(answer_affirmatively,
[#include <gtk/gtk.h>
#if GTK_MINOR_VERSION > 2
answer_affirmatively
#endif
], [AC_MSG_ERROR([Aborting, the current versions
of gnome are not yet compatible with the unstable GTK 1.3 release.
Please use GTK 1.2. To get Gtk 1.2 and Glib 1.2 from the CVS repo
sitory, use the commands cvs checkout -r gtk-1-2 gtk and
cvs checkout -r glib-1-2 glib.])])
dnl We are requiring GTK >= 1.1.1, which means this will be fine anyhow.
USE_DEVGTK=true
dnl AC_MSG_CHECKING([whether to use features from (unstable) GTK+ 1.1.x])
dnl AC_EGREP_CPP(answer_affirmatively,
dnl [#include <gtk/gtkfeatures.h>
dnl #ifdef GTK_HAVE_FEATURES_1_1_0
dnl answer_affirmatively
dnl #endif
dnl ], dev_gtk=yes, dev_gtk=no)
dnl if test "$dev_gtk" = "yes"; then
dnl USE_DEVGTK=true
dnl fi
dnl AC_MSG_RESULT("$dev_gtk")
GNOME_HAVE_SM=true
case "$GTK_LIBS" in
*-lSM*)
dnl Already found it.
;;
*)
dnl Assume that if we have -lSM then we also have -lICE.
AC_CHECK_LIB(SM, SmcSaveYourselfDone,
[GTK_LIBS="-lSM -lICE $GTK_LIBS"],GNOME_HAVE_SM=false,
$x_libs -lICE)
;;
esac
if test "$GNOME_HAVE_SM" = true; then
AC_CHECK_HEADERS(X11/SM/SMlib.h,,GNOME_HAVE_SM=false)
fi
if test "$GNOME_HAVE_SM" = true; then
AC_DEFINE(HAVE_LIBSM)
fi
XPM_LIBS=""
AC_CHECK_LIB(Xpm, XpmFreeXpmImage, [XPM_LIBS="-lXpm"], , $x_libs)
AC_SUBST(XPM_LIBS)
AC_REQUIRE([GNOME_PTHREAD_CHECK])
LDFLAGS="$saved_ldflags"
AC_PROVIDE([GNOME_X_CHECKS])
])