From 60918e6664cd62ea3d71b48cdfda8b89ab82029c Mon Sep 17 00:00:00 2001
From: runge <runge>
Date: Thu, 12 Jan 2006 12:54:02 +0000
Subject: configure.ac: add switches for most X extensions.

---
 ChangeLog         |  3 ++
 configure.ac      | 92 ++++++++++++++++++++++++++++++++++++-------------------
 x11vnc/ChangeLog  |  3 ++
 x11vnc/README     |  2 +-
 x11vnc/tkx11vnc   |  4 +--
 x11vnc/tkx11vnc.h |  6 ++--
 x11vnc/x11vnc.h   |  8 +++++
 7 files changed, 81 insertions(+), 37 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 0fb4066..5107959 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2006-01-12  Karl Runge <runge@karlrunge.com>
+	* configure.ac: add switches for most X extensions.
+
 2006-01-10  Johannes E. Schindelin  <Johannes.Schindelin@gmx.de>
 	* libvncserver/{main.c,rfbserver.c}: fix timely closing of clients;
 	  the client iterator in rfbProcessEvents() has to iterate also
diff --git a/configure.ac b/configure.ac
index 5fe134d..0131541 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,7 +19,7 @@ AC_PATH_PROG([AR], [ar], [/usr/bin/ar],
 # Options
 AH_TEMPLATE(WITH_TIGHTVNC_FILETRANSFER, [Disable TightVNCFileTransfer protocol])
 AC_ARG_WITH(tightvnc-filetransfer,
-	[  --without-filetransfer   disable TightVNC file transfer protocol],
+	[  --without-filetransfer  disable TightVNC file transfer protocol],
 	, [ with_tightvnc_filetransfer=yes ])
 # AC_DEFINE moved to after libpthread check.
 
@@ -59,6 +59,22 @@ AH_TEMPLATE(HAVE_LIBXTRAP, [DEC-XTRAP extension build environment present])
 AH_TEMPLATE(HAVE_RECORD, [RECORD extension build environment present])
 AH_TEMPLATE(HAVE_SOLARIS_XREADSCREEN, [Solaris XReadScreen available])
 AH_TEMPLATE(HAVE_IRIX_XREADDISPLAY, [IRIX XReadDisplay available])
+
+AC_ARG_WITH(xkeyboard,
+[  --without-xkeyboard     disable xkeyboard extension support],,)
+AC_ARG_WITH(xinerama,
+[  --without-xinerama      disable xinerama extension support],,)
+AC_ARG_WITH(xrandr,
+[  --without-xrandr        disable xrandr extension support],,)
+AC_ARG_WITH(xfixes,
+[  --without-xfixes        disable xfixes extension support],,)
+AC_ARG_WITH(xdamage,
+[  --without-xdamage       disable xdamage extension support],,)
+AC_ARG_WITH(xtrap,
+[  --without-xtrap         disable xtrap extension support],,)
+AC_ARG_WITH(xrecord,
+[  --without-xrecord       disable xrecord extension support],,)
+
 if test "$X_CFLAGS" != "-DX_DISPLAY_MISSING"; then
 	AC_CHECK_LIB(X11, XGetImage, HAVE_X="true",
 		HAVE_X="false",
@@ -89,13 +105,16 @@ if test "$X_CFLAGS" != "-DX_DISPLAY_MISSING"; then
 			[AC_DEFINE(HAVE_XTEST)], ,
 			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
 
-		AC_CHECK_LIB(Xtst, XRecordEnableContextAsync, 
-			X_PRELIBS="$X_PRELIBS -lXtst"
-			[AC_DEFINE(HAVE_RECORD)], ,
-			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xrecord" != "xno"; then
+			AC_CHECK_LIB(Xtst, XRecordEnableContextAsync, 
+				X_PRELIBS="$X_PRELIBS -lXtst"
+				[AC_DEFINE(HAVE_RECORD)], ,
+				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		fi
 
 		# we use XTRAP on X11R5, or user can set X11VNC_USE_XTRAP
-		if test ! -z "$X11VNC_USE_XTRAP" -o -z "$HAVE_XTESTGRABCONTROL"; then
+		if test "x$with_xtrap" != "xno"; then
+		    if test ! -z "$X11VNC_USE_XTRAP" -o -z "$HAVE_XTESTGRABCONTROL"; then
 			AC_CHECK_LIB(XTrap, XETrapSetGrabServer, 
 				X_PRELIBS="$X_PRELIBS -lXTrap"
 				[AC_DEFINE(HAVE_LIBXTRAP)], ,
@@ -105,38 +124,49 @@ if test "$X_CFLAGS" != "-DX_DISPLAY_MISSING"; then
 				X_PRELIBS="$X_PRELIBS -lXETrap"
 				[AC_DEFINE(HAVE_LIBXTRAP)], ,
 				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		    fi
 		fi
 
-		saved_CPPFLAGS="$CPPFLAGS"
-		CPPFLAGS="$CPPFLAGS $X_CFLAGS"
-		AC_CHECK_HEADER(X11/XKBlib.h, HAVE_XKBLIB_H="true",
-			HAVE_XKBLIB_H="false", [#include <X11/Xlib.h>])
-		CPPFLAGS="$saved_CPPFLAGS"
-		if test $HAVE_XKBLIB_H = "true"; then
-			AC_CHECK_LIB(X11, XkbSelectEvents,
-				[AC_DEFINE(HAVE_XKEYBOARD)], ,
-				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xkeyboard" != "xno"; then
+			saved_CPPFLAGS="$CPPFLAGS"
+			CPPFLAGS="$CPPFLAGS $X_CFLAGS"
+			AC_CHECK_HEADER(X11/XKBlib.h, HAVE_XKBLIB_H="true",
+				HAVE_XKBLIB_H="false", [#include <X11/Xlib.h>])
+			CPPFLAGS="$saved_CPPFLAGS"
+			if test $HAVE_XKBLIB_H = "true"; then
+				AC_CHECK_LIB(X11, XkbSelectEvents,
+					[AC_DEFINE(HAVE_XKEYBOARD)], ,
+					$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+			fi
 		fi
 
-		AC_CHECK_LIB(Xinerama, XineramaQueryScreens,
-			X_PRELIBS="$X_PRELIBS -lXinerama"
-			[AC_DEFINE(HAVE_LIBXINERAMA)], ,
-			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xinerama" != "xno"; then
+			AC_CHECK_LIB(Xinerama, XineramaQueryScreens,
+				X_PRELIBS="$X_PRELIBS -lXinerama"
+				[AC_DEFINE(HAVE_LIBXINERAMA)], ,
+				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		fi
 
-		AC_CHECK_LIB(Xrandr, XRRSelectInput,
-			X_PRELIBS="$X_PRELIBS -lXrandr"
-			[AC_DEFINE(HAVE_LIBXRANDR)], ,
-			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xrandr" != "xno"; then
+			AC_CHECK_LIB(Xrandr, XRRSelectInput,
+				X_PRELIBS="$X_PRELIBS -lXrandr"
+				[AC_DEFINE(HAVE_LIBXRANDR)], ,
+				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		fi
 
-		AC_CHECK_LIB(Xfixes, XFixesGetCursorImage,
-			X_PRELIBS="$X_PRELIBS -lXfixes"
-			[AC_DEFINE(HAVE_LIBXFIXES) HAVE_LIBXFIXES="true"], ,
-			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xfixes" != "xno"; then
+			AC_CHECK_LIB(Xfixes, XFixesGetCursorImage,
+				X_PRELIBS="$X_PRELIBS -lXfixes"
+				[AC_DEFINE(HAVE_LIBXFIXES) HAVE_LIBXFIXES="true"], ,
+				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		fi
 
-		AC_CHECK_LIB(Xdamage, XDamageQueryExtension,
-			X_PRELIBS="$X_PRELIBS -lXdamage"
-			[AC_DEFINE(HAVE_LIBXDAMAGE) HAVE_LIBXDAMAGE="true"], ,
-			$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		if test "x$with_xdamage" != "xno"; then
+			AC_CHECK_LIB(Xdamage, XDamageQueryExtension,
+				X_PRELIBS="$X_PRELIBS -lXdamage"
+				[AC_DEFINE(HAVE_LIBXDAMAGE) HAVE_LIBXDAMAGE="true"], ,
+				$X_LIBS $X_PRELIBS -lX11 $X_EXTRA_LIBS)
+		fi
 
 		if test ! -z "$HAVE_LIBXFIXES" -o ! -z "$HAVE_LIBXDAMAGE"; then
 			# need /usr/sfw/lib in RPATH for Solaris 10 and later
diff --git a/x11vnc/ChangeLog b/x11vnc/ChangeLog
index 41c058e..dcab5b4 100644
--- a/x11vnc/ChangeLog
+++ b/x11vnc/ChangeLog
@@ -1,3 +1,6 @@
+2006-01-12  Karl Runge <runge@karlrunge.com>
+	* fix -DSMALL_FOOTPRINT=N builds.
+
 2006-01-11  Karl Runge <runge@karlrunge.com>
 	* x11vnc: close fd > 2 in run_user_command(), -nocmds in crash_debug,
 	  fix 64bit bug for -solid.
diff --git a/x11vnc/README b/x11vnc/README
index f36c5cc..7e7bc33 100644
--- a/x11vnc/README
+++ b/x11vnc/README
@@ -1,5 +1,5 @@
 
-x11vnc README file                         Date: Wed Jan 11 13:09:08 EST 2006
+x11vnc README file                         Date: Wed Jan 11 23:08:25 EST 2006
 
 The following information is taken from these URLs:
 
diff --git a/x11vnc/tkx11vnc b/x11vnc/tkx11vnc
index d8cc569..aabfa0a 100755
--- a/x11vnc/tkx11vnc
+++ b/x11vnc/tkx11vnc
@@ -3,7 +3,7 @@
 exec wish "$0" "$@"
 catch {rename send {}}
 #
-# Copyright (c) 2004-2005 Karl J. Runge <runge@karlrunge.com>
+# Copyright (c) 2004-2006 Karl J. Runge <runge@karlrunge.com>
 # All rights reserved.
 #
 #  This is free software; you can redistribute it and/or modify
@@ -5955,7 +5955,7 @@ if {"$argv" == "-spit"} {
 	puts "#ifndef _TKX11VNC_H"
 	puts "#define _TKX11VNC_H"
 	puts "#ifdef NOGUI"
-	puts "char gui_code[] = \"\";"
+	puts "char gui_code\[\] = \"\";"
 	puts "#else"
 	puts "/*"
 	puts " * tkx11vnc.h: generated by 'tkx11vnc -spit'"
diff --git a/x11vnc/tkx11vnc.h b/x11vnc/tkx11vnc.h
index 58c02e6..c5aedf8 100644
--- a/x11vnc/tkx11vnc.h
+++ b/x11vnc/tkx11vnc.h
@@ -1,7 +1,7 @@
 #ifndef _TKX11VNC_H
 #define _TKX11VNC_H
 #ifdef NOGUI
-char gui_code = "";
+char gui_code[] = "";
 #else
 /*
  * tkx11vnc.h: generated by 'tkx11vnc -spit'
@@ -14,7 +14,7 @@ char gui_code = "";
 "exec wish \"$0\" \"$@\"\n"
 "catch {rename send {}}\n"
 "#\n"
-"# Copyright (c) 2004-2005 Karl J. Runge <runge@karlrunge.com>\n"
+"# Copyright (c) 2004-2006 Karl J. Runge <runge@karlrunge.com>\n"
 "# All rights reserved.\n"
 "#\n"
 "#  This is free software; you can redistribute it and/or modify\n"
@@ -5966,7 +5966,7 @@ char gui_code = "";
 "	puts \"#ifndef _TKX11VNC_H\"\n"
 "	puts \"#define _TKX11VNC_H\"\n"
 "	puts \"#ifdef NOGUI\"\n"
-"	puts \"char gui_code[] = \\\"\\\";\"\n"
+"	puts \"char gui_code\\[\\] = \\\"\\\";\"\n"
 "	puts \"#else\"\n"
 "	puts \"/*\"\n"
 "	puts \" * tkx11vnc.h: generated by 'tkx11vnc -spit'\"\n"
diff --git a/x11vnc/x11vnc.h b/x11vnc/x11vnc.h
index ce20af5..9ad8325 100644
--- a/x11vnc/x11vnc.h
+++ b/x11vnc/x11vnc.h
@@ -117,6 +117,11 @@
 #endif
 
 #if (SMALL_FOOTPRINT > 1)
+#undef LIBVNCSERVER_HAVE_XKEYBOARD
+#undef LIBVNCSERVER_HAVE_LIBXINERAMA
+#undef LIBVNCSERVER_HAVE_LIBXRANDR
+#undef LIBVNCSERVER_HAVE_LIBXFIXES
+#undef LIBVNCSERVER_HAVE_LIBXDAMAGE
 #define LIBVNCSERVER_HAVE_XKEYBOARD 0
 #define LIBVNCSERVER_HAVE_LIBXINERAMA 0
 #define LIBVNCSERVER_HAVE_LIBXRANDR 0
@@ -125,6 +130,9 @@
 #endif
 
 #if (SMALL_FOOTPRINT > 2)
+#undef LIBVNCSERVER_HAVE_UTMPX_H
+#undef LIBVNCSERVER_HAVE_PWD_H
+#undef REMOTE_CONTROL
 #define LIBVNCSERVER_HAVE_UTMPX_H 0
 #define LIBVNCSERVER_HAVE_PWD_H 0
 #define REMOTE_CONTROL 0
-- 
cgit v1.2.3

