# X11_DEVEL()
#
# Check for the presence of the X Window System headers and libraries.
-# Sets the CXXFLAGS and LIBS variables as appropriate.
+# Sets the CPPFLAGS and LIBS variables as appropriate.
AC_DEFUN([X11_DEVEL],
[
- AC_PATH_X
AC_PATH_XTRA
test "$no_x" = "yes" && \
AC_MSG_ERROR([The X Window System could not be found.])
+
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
- CXXFLAGS="$CXXFLAGS $X_CFLAGS"
- LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS"
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ X_LIBS="$X_PRE_LIBS $X_LIBS -lX11"
+ LIBS="$LIBS $X_LIBS"
# Check for required functions in -lX11
AC_CHECK_LIB(
,
AC_MSG_ERROR([Could not find XOpenDisplay in -lX11.])
)
+
+ # Restore the old values. Use X_CFLAGS and X_LIBS in
+ # the Makefiles
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
])
# Store these
OLDLIBS=$LIBS
- OLDCXXFLAGS=$CXXFLAGS
+ OLDCPPFLAGS=$CPPFLAGS
XFT_CFLAGS="`pkg-config --cflags xft`"
XFT_LIBS="`pkg-config --libs xft`"
# Set these for checking with the tests below. They'll be restored after
LIBS="$LIBS $XFT_LIBS"
- CXXFLAGS="$XFT_CFLAGS $CXXFLAGS"
+ CPPFLAGS="$XFT_CFLAGS $CPPFLAGS"
- AC_CHECK_LIB([Xft], [XftGetVersion],
+ AC_CHECK_LIB([Xft], [XftGetVersion], # this was not defined in < 2.0
if test "$XFT_MIN"; then
AC_MSG_CHECKING([for X11/Xft/Xft.h for Xft >= $XFT_MIN])
AC_TRY_COMPILE(
])
)
-# Restore the old values. Use XFT_CFLAGS and XFT_LIBS in the Makefile.am's
+ # Restore the old values. Use XFT_CFLAGS and XFT_LIBS in the Makefiles
LIBS=$OLDLIBS
- CXXFLAGS=$OLDCXXFLAGS
+ CPPFLAGS=$OLDCPPFLAGS
AC_SUBST([XFT_CFLAGS])
AC_SUBST([XFT_LIBS])
[
AC_REQUIRE([X11_DEVEL])
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
+
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ LIBS="$LIBS $X_LIBS"
+
AC_CHECK_LIB([X11], [XkbBell],
AC_MSG_CHECKING([for X11/XKBlib.h])
AC_TRY_LINK(
AC_MSG_RESULT([yes])
XKB="yes"
AC_DEFINE([XKB], [1], [Found the XKB extension])
+
+ XKB_CFLAGS=""
+ XKB_LIBS=""
+ AC_SUBST(XKB_CFLAGS)
+ AC_SUBST(XKB_LIBS)
],
[
AC_MSG_RESULT([no])
XKB="no"
])
)
+
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
+
AC_MSG_CHECKING([for the Xkb extension])
if test "$XKB" = "yes"; then
AC_MSG_RESULT([yes])
fi
])
+# X11_EXT_XRANDR()
+#
+# Check for the presence of the "XRandR" X Window System extension.
+# Defines "XRANDR" and sets the $(XRANDR) variable to "yes" if the extension is
+# present.
+AC_DEFUN([X11_EXT_XRANDR],
+[
+ AC_REQUIRE([X11_DEVEL])
+
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
+
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ LIBS="$LIBS $X_LIBS -lXext -lXrender -lXrandr"
+
+ AC_CHECK_LIB([Xrandr], [XRRSelectInput],
+ AC_MSG_CHECKING([for X11/extensions/Xrandr.h])
+ AC_TRY_LINK(
+ [
+ #include <X11/Xlib.h>
+ #include <X11/extensions/Xrandr.h>
+ ],
+ [
+ Display *d;
+ Drawable r;
+ int i;
+ XRRQueryExtension(d, &i, &i);
+ XRRGetScreenInfo(d, r);
+ ],
+ [
+ AC_MSG_RESULT([yes])
+ XRANDR="yes"
+ AC_DEFINE([XRANDR], [1], [Found the XRandR extension])
+
+ XRANDR_CFLAGS=""
+ XRANDR_LIBS="-lXext -lXrender -lXrandr"
+ AC_SUBST(XRANDR_CFLAGS)
+ AC_SUBST(XRANDR_LIBS)
+ ],
+ [
+ AC_MSG_RESULT([no])
+ XRANDR="no"
+ ])
+ )
+
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
+
+ AC_MSG_CHECKING([for the XRandR extension])
+ if test "$XRANDR" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+])
+
# X11_EXT_SHAPE()
#
# Check for the presence of the "Shape" X Window System extension.
[
AC_REQUIRE([X11_DEVEL])
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
+
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ LIBS="$LIBS $X_LIBS"
+
AC_CHECK_LIB([Xext], [XShapeCombineShape],
AC_MSG_CHECKING([for X11/extensions/shape.h])
AC_TRY_LINK(
AC_MSG_RESULT([yes])
SHAPE="yes"
AC_DEFINE([SHAPE], [1], [Found the XShape extension])
- LIBS="$LIBS -lXext"
+
+ XSHAPE_CFLAGS=""
+ XSHAPE_LIBS="-lXext"
+ AC_SUBST(XSHAPE_CFLAGS)
+ AC_SUBST(XSHAPE_LIBS)
],
[
AC_MSG_RESULT([no])
SHAPE="no"
])
)
+
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
+
AC_MSG_CHECKING([for the Shape extension])
if test "$SHAPE" = "yes"; then
AC_MSG_RESULT([yes])
[
AC_REQUIRE([X11_DEVEL])
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
+
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ LIBS="$LIBS $X_LIBS -lXext"
+
AC_CHECK_LIB([Xinerama], [XineramaQueryExtension],
[
AC_MSG_CHECKING([for X11/extensions/Xinerama.h])
AC_MSG_RESULT([yes])
XINERAMA="yes"
AC_DEFINE([XINERAMA], [1], [Enable support of the Xinerama extension])
- LIBS="$LIBS -lXinerama"
+ XINERAMA_LIBS="-lXext -lXinerama"
+ AC_SUBST(XINERAMA_LIBS)
],
[
AC_MSG_RESULT([no])
XINERAMA="no"
])
])
+
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
+
AC_MSG_CHECKING([for the Xinerama extension])
if test "$XINERAMA" = "yes"; then
AC_MSG_RESULT([yes])
AC_MSG_RESULT([no])
fi
])
+
+# X11_SM()
+#
+# Check for the presence of SMlib for session management.
+# Defines "USE_SM" if SMlib is present.
+AC_DEFUN([X11_SM],
+[
+ AC_REQUIRE([X11_DEVEL])
+
+ AC_ARG_ENABLE([session-management],
+ AC_HELP_STRING(
+ [--disable-session-management], [build without support for session managers [[default=enabled]]]),
+ [SM=$enableval], [SM="yes"])
+
+ if test "$SM" = "yes"; then
+ # Store these
+ OLDLIBS=$LIBS
+ OLDCPPFLAGS=$CPPFLAGS
+
+ CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+ LIBS="$LIBS $X_LIBS"
+
+ SM="no"
+
+ AC_CHECK_LIB([SM], [SmcSaveYourselfDone], [
+ AC_CHECK_HEADERS([X11/SM/SMlib.h], [
+ SM_CFLAGS="$X_CFLAGS"
+ SM_LIBS="-lSM -lICE"
+ AC_DEFINE(USE_SM, 1, [Use session management])
+ AC_SUBST(SM_CFLAGS)
+ AC_SUBST(SM_LIBS)
+ SM="yes"
+ ])
+ ])
+ fi
+
+ LIBS=$OLDLIBS
+ CPPFLAGS=$OLDCPPFLAGS
+
+ AC_MSG_CHECKING([for session management support])
+ if test "$SM" = "yes"; then
+ AC_MSG_RESULT([yes])
+ else
+ AC_MSG_RESULT([no])
+ fi
+])