X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=m4%2Fx11.m4;h=bff7e63177260fd27b28fdb5625282702d13641c;hb=a71c4a0f5d148b839fb0f15f5c8f12f4b188536a;hp=5a4a35ddd62d6d220212de6ccb19a8c6d50b0c68;hpb=86f1830d0ab76b07999ed35e29a32d405ee22ac4;p=chaz%2Fopenbox diff --git a/m4/x11.m4 b/m4/x11.m4 index 5a4a35dd..bff7e631 100644 --- a/m4/x11.m4 +++ b/m4/x11.m4 @@ -13,8 +13,8 @@ AC_DEFUN([X11_DEVEL], OLDCPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $X_CFLAGS" - X_LIBS="$X_LIBS -lX11" - LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS" + X_LIBS="$X_PRE_LIBS $X_LIBS -lX11" + LIBS="$LIBS $X_LIBS" # Check for required functions in -lX11 AC_CHECK_LIB( @@ -23,167 +23,74 @@ AC_DEFUN([X11_DEVEL], AC_MSG_ERROR([Could not find XOpenDisplay in -lX11.]) ) - # Restore the old values. Use X_CFLAGS and X_PRE_LIBS X_LIBS X_EXTRA_LIBS in + # Restore the old values. Use X_CFLAGS and X_LIBS in # the Makefiles LIBS=$OLDLIBS CPPFLAGS=$OLDCPPFLAGS ]) - -AC_DEFUN([XFT_ERROR], -[ - if test "$XFT_MIN"; then - AC_MSG_ERROR([$PACKAGE requires the Xft font library >= $XFT_MIN. - See http://www.fontconfig.org/ -]) - else - AC_MSG_ERROR([$PACKAGE requires the Xft font library. - See http://www.fontconfig.org/ -]) - fi -]) - -# XFT_DEVEL([required-version]) +# X11_EXT_XKB() # -# Check for the XFT development package. -# You can use the optional argument to check for a library of at least the -# given version. -# It provides the $(PYTHON_CFLAGS) $(PYTHON_LIBS) output variables. -AC_DEFUN([XFT_DEVEL], +# Check for the presence of the "Xkb" X Window System extension. +# Defines "XKB" and sets the $(XKB) variable to "yes" if the extension is +# present. +AC_DEFUN([X11_EXT_XKB], [ AC_REQUIRE([X11_DEVEL]) - - if test "$1"; then - XFT_MIN="$1" - XFT_MIN_MAJOR=${XFT_MIN%.*.*} - XFT_MIN_MINOR=${XFT_MIN%.*} - XFT_MIN_MINOR=${XFT_MIN_MINOR#*.} - XFT_MIN_REVISION=${XFT_MIN#*.*.} - XFT_MIN="$XFT_MIN_MAJOR.$XFT_MIN_MINOR.$XFT_MIN_REVISION" - else - XFT_MIN="" - fi - - if test -z "$XFT_MIN"; then - AC_MSG_CHECKING([for Xft]) - if ! pkg-config xft; then - AC_MSG_RESULT([no]) - XFT_ERROR - fi - else - AC_MSG_CHECKING([for Xft version >= $XFT_MIN]) - if ! pkg-config --atleast-version $XFT_MIN xft; then - AC_MSG_RESULT([no]) - XFT_ERROR - fi - fi - AC_MSG_RESULT([yes]) - # Store these OLDLIBS=$LIBS OLDCPPFLAGS=$CPPFLAGS + + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + LIBS="$LIBS $X_LIBS" - 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" - CPPFLAGS="$XFT_CFLAGS $CPPFLAGS" - - 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( - [ - #include - #include - ], - [ - #if !defined(XFT_MAJOR) - # error Xft.h is too old - #endif - #if XFT_MAJOR < $XFT_MIN_MAJOR - # error Xft.h is too old - #endif - #if XFT_MAJOR == $XFT_MIN_MAJOR - # if XFT_MINOR < $XFT_MIN_MINOR - # error Xft.h is too old - # endif - #endif - #if XFT_MAJOR == $XFT_MIN_MAJOR - # if XFT_MAJOR == $XFT_MIN_MINOR - # if XFT_REVISION < $XFT_MIN_REVISION - # error Xft.h is too old - # endif - # endif - #endif - - int i = XFT_MAJOR; - XftFont foo; - ], - [ - AC_MSG_RESULT([yes]) - ], - [ - AC_MSG_RESULT([no]) - XFT_ERROR - ]) - else - AC_MSG_CHECKING([for X11/Xft/Xft.h]) - AC_TRY_COMPILE( - [ - #include - #include - ], - [ - int i = XFT_MAJOR; /* make sure were using Xft 2, not 1 */ - XftFont foo; - ], - [ - AC_MSG_RESULT([yes]) - ], - [ - AC_MSG_RESULT([no]) - XFT_ERROR - ]) - fi - - AC_MSG_CHECKING([if we can compile with Xft]) + AC_CHECK_LIB([X11], [XkbBell], + AC_MSG_CHECKING([for X11/XKBlib.h]) AC_TRY_LINK( [ #include - #include + #include + #include ], [ - int i = XFT_MAJOR; - XftFont foo + Display *d; + Window w; + XkbBell(d, w, 0, 0); ], [ 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]) - AC_MSG_ERROR([Unable to compile with the Xft font library. -]) + XKB="no" ]) ) - # Restore the old values. Use XFT_CFLAGS and XFT_LIBS in the Makefiles LIBS=$OLDLIBS CPPFLAGS=$OLDCPPFLAGS - AC_SUBST([XFT_CFLAGS]) - AC_SUBST([XFT_LIBS]) + AC_MSG_CHECKING([for the Xkb extension]) + if test "$XKB" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi ]) - -# X11_EXT_XKB() +# X11_EXT_XRANDR() # -# Check for the presence of the "Xkb" X Window System extension. -# Defines "XKB" and sets the $(XKB) variable to "yes" if the extension is +# 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_XKB], +AC_DEFUN([X11_EXT_XRANDR], [ AC_REQUIRE([X11_DEVEL]) @@ -192,37 +99,43 @@ AC_DEFUN([X11_EXT_XKB], OLDCPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $X_CFLAGS" - LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS" + LIBS="$LIBS $X_LIBS -lXext -lXrender -lXrandr" - AC_CHECK_LIB([X11], [XkbBell], - AC_MSG_CHECKING([for X11/XKBlib.h]) + AC_CHECK_LIB([Xrandr], [XRRSelectInput], + AC_MSG_CHECKING([for X11/extensions/Xrandr.h]) AC_TRY_LINK( [ #include - #include - #include + #include ], [ Display *d; - Window w; - XkbBell(d, w, 0, 0); + Drawable r; + int i; + XRRQueryExtension(d, &i, &i); + XRRGetScreenInfo(d, r); ], [ AC_MSG_RESULT([yes]) - XKB="yes" - AC_DEFINE([XKB], [1], [Found the XKB extension]) + 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]) - XKB="no" + XRANDR="no" ]) ) LIBS=$OLDLIBS CPPFLAGS=$OLDCPPFLAGS - AC_MSG_CHECKING([for the Xkb extension]) - if test "$XKB" = "yes"; then + AC_MSG_CHECKING([for the XRandR extension]) + if test "$XRANDR" = "yes"; then AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) @@ -243,7 +156,7 @@ AC_DEFUN([X11_EXT_SHAPE], OLDCPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $X_CFLAGS" - LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS" + LIBS="$LIBS $X_LIBS" AC_CHECK_LIB([Xext], [XShapeCombineShape], AC_MSG_CHECKING([for X11/extensions/shape.h]) @@ -260,7 +173,11 @@ 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]) @@ -271,7 +188,7 @@ AC_DEFUN([X11_EXT_SHAPE], LIBS=$OLDLIBS CPPFLAGS=$OLDCPPFLAGS - AC_MSG_CHECKING([for the Shape extension]) + AC_MSG_CHECKING([for the Shape extension]) if test "$SHAPE" = "yes"; then AC_MSG_RESULT([yes]) else @@ -294,7 +211,7 @@ AC_DEFUN([X11_EXT_XINERAMA], OLDCPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS $X_CFLAGS" - LIBS="$LIBS $X_PRE_LIBS $X_LIBS $X_EXTRA_LIBS -lXext" + LIBS="$LIBS $X_LIBS -lXext" AC_CHECK_LIB([Xinerama], [XineramaQueryExtension], [ @@ -330,3 +247,156 @@ AC_DEFUN([X11_EXT_XINERAMA], AC_MSG_RESULT([no]) fi ]) + +# X11_EXT_SYNC() +# +# Check for the presence of the "Sync" X Window System extension. +# Defines "SYNC", sets the $(SYNC) variable to "yes", and sets the $(LIBS) +# appropriately if the extension is present. +AC_DEFUN([X11_EXT_SYNC], +[ + AC_REQUIRE([X11_DEVEL]) + + # Store these + OLDLIBS=$LIBS + OLDCPPFLAGS=$CPPFLAGS + + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + LIBS="$LIBS $X_LIBS" + + AC_CHECK_LIB([Xext], [XSyncInitialize], + AC_MSG_CHECKING([for X11/extensions/sync.h]) + AC_TRY_LINK( + [ + #include + #include + #include + ], + [ + XSyncValueType foo; + ], + [ + AC_MSG_RESULT([yes]) + SYNC="yes" + AC_DEFINE([SYNC], [1], [Found the XSync extension]) + + XSYNC_CFLAGS="" + XSYNC_LIBS="-lXext" + AC_SUBST(XSYNC_CFLAGS) + AC_SUBST(XSYNC_LIBS) + ], + [ + AC_MSG_RESULT([no]) + SYNC="no" + ]) + ) + + LIBS=$OLDLIBS + CPPFLAGS=$OLDCPPFLAGS + + AC_MSG_CHECKING([for the Sync extension]) + if test "$SYNC" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi +]) + +# X11_EXT_AUTH() +# +# Check for the presence of the "Xau" X Window System extension. +# Defines "AUTH, sets the $(AUTH) variable to "yes", and sets the $(LIBS) +# appropriately if the extension is present. +AC_DEFUN([X11_EXT_AUTH], +[ + AC_REQUIRE([X11_DEVEL]) + + # Store these + OLDLIBS=$LIBS + OLDCPPFLAGS=$CPPFLAGS + + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + LIBS="$LIBS $X_LIBS" + + AC_CHECK_LIB([Xau], [XauReadAuth], + AC_MSG_CHECKING([for X11/Xauth.h]) + AC_TRY_LINK( + [ + #include + #include + #include + ], + [ + ], + [ + AC_MSG_RESULT([yes]) + AUTH="yes" + AC_DEFINE([AUTH], [1], [Found the Xauth extension]) + + XAUTH_CFLAGS="" + XAUTH_LIBS="-lXau" + AC_SUBST(XAUTH_CFLAGS) + AC_SUBST(XAUTH_LIBS) + ], + [ + AC_MSG_RESULT([no]) + AUTH="no" + ]) + ) + + LIBS=$OLDLIBS + CPPFLAGS=$OLDCPPFLAGS + + AC_MSG_CHECKING([for the Xauth extension]) + if test "$AUTH" = "yes"; then + AC_MSG_RESULT([yes]) + else + 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 +])