X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=m4%2Fx11.m4;h=fc7b36e191b9a16727abd314c40f685cf51ab3fa;hb=435df32acc55a3bc4cc8f9ba954ae21b65c7c69d;hp=2e6d0990efb40151fd1faf08a8628a7bdf1eb1fb;hpb=7c8c9e998ffc3a9b22e15feeffe77823142ce531;p=chaz%2Fopenbox diff --git a/m4/x11.m4 b/m4/x11.m4 index 2e6d0990..fc7b36e1 100644 --- a/m4/x11.m4 +++ b/m4/x11.m4 @@ -4,13 +4,17 @@ # 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 CPPFLAGS="$CPPFLAGS $X_CFLAGS" - 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( @@ -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 ]) @@ -160,7 +169,7 @@ 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 CPPFLAGS=$OLDCPPFLAGS @@ -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,103 @@ 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_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 +])