X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=m4%2Fx11.m4;h=2eae1db5f719dda94b7799a7bfeaa94ab22e3803;hb=c4dc6e231dab908b7765d0063f8ec4e41eff55e5;hp=619959c6a9d399572ee8736a1f970a0c6ea374be;hpb=21b5c6023159581ad2582c0070168a994b656e9c;p=chaz%2Fopenbox diff --git a/m4/x11.m4 b/m4/x11.m4 index 619959c6..2eae1db5 100644 --- a/m4/x11.m4 +++ b/m4/x11.m4 @@ -1,16 +1,20 @@ # 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( @@ -18,6 +22,11 @@ AC_DEFUN([X11_DEVEL], , 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 ]) @@ -73,16 +82,16 @@ AC_DEFUN([XFT_DEVEL], # 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( @@ -160,9 +169,9 @@ AC_DEFUN([XFT_DEVEL], ]) ) -# 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]) @@ -178,6 +187,13 @@ AC_DEFUN([X11_EXT_XKB], [ 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( @@ -195,12 +211,21 @@ AC_DEFUN([X11_EXT_XKB], 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]) @@ -209,6 +234,63 @@ AC_DEFUN([X11_EXT_XKB], 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 + #include + ], + [ + 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. @@ -218,6 +300,13 @@ AC_DEFUN([X11_EXT_SHAPE], [ 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( @@ -233,13 +322,21 @@ AC_DEFUN([X11_EXT_SHAPE], 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]) @@ -258,6 +355,13 @@ AC_DEFUN([X11_EXT_XINERAMA], [ 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]) @@ -273,13 +377,18 @@ AC_DEFUN([X11_EXT_XINERAMA], 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]) @@ -287,3 +396,49 @@ AC_DEFUN([X11_EXT_XINERAMA], 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 +])