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.0.1,,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"
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
AC_CHECK_HEADER(gtk/gtkaccelgroup.h, USE_DEVGTK=true)
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])
])