summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Gusarov <dottedmag@dottedmag.net>2010-01-04 14:07:04 +0600
committerMikhail Gusarov <dottedmag@dottedmag.net>2010-01-06 19:47:53 +0600
commit6c2b3a4247d10a50699ffa6abb643c5e959eefa8 (patch)
tree299a4a5e967e98d7bcb946020d82ef859aa46fef
parent72ba717b1d639e94fa9ab56ca026131edc020a30 (diff)
kdrive: Add option to compile out input drivers
Add --without-kdrive-{kbd,mouse,evdev} configure options disabling Linux keyboard driver, Linux mouse drivers (ps2, bus,ms), and Linux evdev driver. Build all drivers by default as before. Acked-by: Dan Nicholson <dbn.lists@gmail.com> Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Mikhail Gusarov <dottedmag@dottedmag.net>
-rw-r--r--configure.ac18
-rw-r--r--hw/kdrive/ephyr/ephyrinit.c9
-rw-r--r--hw/kdrive/linux/Makefile.am31
-rw-r--r--hw/kdrive/linux/linux.c24
-rw-r--r--hw/kdrive/src/kdrive.h10
-rw-r--r--include/kdrive-config.h.in9
6 files changed, 74 insertions, 27 deletions
diff --git a/configure.ac b/configure.ac
index 7e2c6a51e..e0ddd48f2 100644
--- a/configure.ac
+++ b/configure.ac
@@ -640,6 +640,10 @@ AC_ARG_ENABLE(kdrive, AS_HELP_STRING([--enable-kdrive], [Build kdrive se
AC_ARG_ENABLE(xephyr, AS_HELP_STRING([--enable-xephyr], [Build the kdrive Xephyr server (default: auto)]), [XEPHYR=$enableval], [XEPHYR=auto])
AC_ARG_ENABLE(xfake, AS_HELP_STRING([--enable-xfake], [Build the kdrive 'fake' server (default: auto)]), [XFAKE=$enableval], [XFAKE=auto])
AC_ARG_ENABLE(xfbdev, AS_HELP_STRING([--enable-xfbdev], [Build the kdrive framebuffer device server (default: auto)]), [XFBDEV=$enableval], [XFBDEV=auto])
+dnl kdrive options
+AC_ARG_ENABLE(kdrive-kbd, AS_HELP_STRING([--enable-kdrive-kbd], [Build kbd driver for kdrive (default: enabled)]), [KDRIVE_KBD=$enableval], [KDRIVE_KBD=yes])
+AC_ARG_ENABLE(kdrive-mouse, AC_HELP_STRING([--enable-kdrive-mouse], [Build mouse driver for kdrive (default: enabled)]), [KDRIVE_MOUSE=$enableval], [KDRIVE_MOUSE=yes])
+AC_ARG_ENABLE(kdrive-evdev, AC_HELP_STRING([--enable-kdrive-evdev], [Build evdev driver for kdrive (default: enabled)]), [KDRIVE_EVDEV=$enableval], [KDRIVE_EVDEV=yes])
dnl chown/chmod to be setuid root as part of build
@@ -1991,6 +1995,10 @@ XEPHYR_LIBS=
XEPHYR_INCS=
AM_CONDITIONAL(KDRIVE, [test x$KDRIVE = xyes])
+AM_CONDITIONAL(KDRIVE_KBD, test "x$KDRIVE_KBD" = xyes)
+AM_CONDITIONAL(KDRIVE_EVDEV, test "x$KDRIVE_EVDEV" = xyes)
+AM_CONDITIONAL(KDRIVE_MOUSE, test "x$KDRIVE_MOUSE" = xyes)
+
if test "$KDRIVE" = yes; then
AC_DEFINE(KDRIVESERVER,1,[Build Kdrive X server])
AC_DEFINE(KDRIVEDDXACTIONS,,[Build kdrive ddx])
@@ -2023,6 +2031,16 @@ if test "$KDRIVE" = yes; then
fi
fi
+ if test "x$KDRIVE_KBD" = xyes; then
+ AC_DEFINE(KDRIVE_KBD, 1, [Enable KDrive kbd driver])
+ fi
+ if test "x$KDRIVE_EVDEV" = xyes; then
+ AC_DEFINE(KDRIVE_EVDEV, 1, [Enable KDrive evdev driver])
+ fi
+ if test "x$KDRIVE_MOUSE" = xyes; then
+ AC_DEFINE(KDRIVE_MOUSE, 1, [Enable KDrive mouse driver])
+ fi
+
XEPHYR_REQUIRED_LIBS="x11 $LIBXEXT xfont xau xdmcp"
if test "x$XV" = xyes; then
XEPHYR_REQUIRED_LIBS="$XEPHYR_REQUIRED_LIBS xv"
diff --git a/hw/kdrive/ephyr/ephyrinit.c b/hw/kdrive/ephyr/ephyrinit.c
index 2b72b4e0a..6db6e7547 100644
--- a/hw/kdrive/ephyr/ephyrinit.c
+++ b/hw/kdrive/ephyr/ephyrinit.c
@@ -40,6 +40,11 @@ extern Bool noGlxVisualInit;
#endif
extern Bool ephyrNoXV;
+#ifdef KDRIVE_EVDEV
+extern KdPointerDriver LinuxEvdevMouseDriver;
+extern KdKeyboardDriver LinuxEvdevKeyboardDriver;
+#endif
+
void processScreenArg (char *screen_size, char *parent_id) ;
void
@@ -66,11 +71,11 @@ InitInput (int argc, char **argv)
KdPointerInfo *pi;
KdAddKeyboardDriver(&EphyrKeyboardDriver);
-#ifdef linux
+#ifdef KDRIVE_EVDEV
KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
#endif
KdAddPointerDriver(&EphyrMouseDriver);
-#ifdef linux
+#ifdef KDRIVE_EVDEV
KdAddPointerDriver(&LinuxEvdevMouseDriver);
#endif
diff --git a/hw/kdrive/linux/Makefile.am b/hw/kdrive/linux/Makefile.am
index 13df142f7..2f89b8fa4 100644
--- a/hw/kdrive/linux/Makefile.am
+++ b/hw/kdrive/linux/Makefile.am
@@ -6,19 +6,22 @@ AM_CFLAGS = -DHAVE_DIX_CONFIG_H
noinst_LTLIBRARIES = liblinux.la
-if TSLIB
-TSLIB_C = tslib.c
+liblinux_la_SOURCES =
+
+liblinux_la_SOURCES += linux.c klinux.h
+
+if KDRIVE_KBD
+liblinux_la_SOURCES += keyboard.c
+endif
+
+if KDRIVE_EVDEV
+liblinux_la_SOURCES += evdev.c
endif
-KDRIVE_HW_SOURCES = \
- evdev.c \
- keyboard.c \
- linux.c
-
-liblinux_la_SOURCES = \
- bus.c \
- mouse.c \
- ms.c \
- ps2.c \
- $(KDRIVE_HW_SOURCES) \
- $(TSLIB_C)
+if KDRIVE_MOUSE
+liblinux_la_SOURCES += mouse.c bus.c ms.c ps2.c
+endif
+
+if TSLIB
+liblinux_la_SOURCES += tslib.c
+endif
diff --git a/hw/kdrive/linux/linux.c b/hw/kdrive/linux/linux.c
index e56ffb43c..9863c1424 100644
--- a/hw/kdrive/linux/linux.c
+++ b/hw/kdrive/linux/linux.c
@@ -33,6 +33,22 @@
#include <X11/keysym.h>
#include <linux/apm_bios.h>
+#ifdef KDRIVE_MOUSE
+extern KdPointerDriver LinuxMouseDriver;
+extern KdPointerDriver Ps2MouseDriver;
+extern KdPointerDriver MsMouseDriver;
+#endif
+#ifdef TSLIB
+extern KdPointerDriver TsDriver;
+#endif
+#ifdef KDRIVE_EVDEV
+extern KdPointerDriver LinuxEvdevMouseDriver;
+extern KdKeyboardDriver LinuxEvdevKeyboardDriver;
+#endif
+#ifdef KDRIVE_KBD
+extern KdKeyboardDriver LinuxKeyboardDriver;
+#endif
+
static int vtno;
int LinuxConsoleFd;
int LinuxApmFd = -1;
@@ -345,15 +361,21 @@ LinuxFini (void)
void
KdOsAddInputDrivers (void)
{
+#ifdef KDRIVE_MOUSE
KdAddPointerDriver(&LinuxMouseDriver);
KdAddPointerDriver(&MsMouseDriver);
KdAddPointerDriver(&Ps2MouseDriver);
+#endif
#ifdef TSLIB
KdAddPointerDriver(&TsDriver);
#endif
+#ifdef KDRIVE_EVDEV
KdAddPointerDriver(&LinuxEvdevMouseDriver);
- KdAddKeyboardDriver(&LinuxKeyboardDriver);
KdAddKeyboardDriver(&LinuxEvdevKeyboardDriver);
+#endif
+#ifdef KDRIVE_KBD
+ KdAddKeyboardDriver(&LinuxKeyboardDriver);
+#endif
}
static void
diff --git a/hw/kdrive/src/kdrive.h b/hw/kdrive/src/kdrive.h
index 8bd8c2521..b327aa1b2 100644
--- a/hw/kdrive/src/kdrive.h
+++ b/hw/kdrive/src/kdrive.h
@@ -623,16 +623,6 @@ KdRingBell (KdKeyboardInfo *ki,
int pitch,
int duration);
-extern KdPointerDriver LinuxMouseDriver;
-extern KdPointerDriver LinuxEvdevMouseDriver;
-extern KdPointerDriver Ps2MouseDriver;
-extern KdPointerDriver BusMouseDriver;
-extern KdPointerDriver MsMouseDriver;
-extern KdPointerDriver TsDriver;
-extern KdKeyboardDriver LinuxKeyboardDriver;
-extern KdKeyboardDriver LinuxEvdevKeyboardDriver;
-extern KdOsFuncs LinuxFuncs;
-
extern KdPointerDriver VxWorksMouseDriver;
extern KdKeyboardDriver VxWorksKeyboardDriver;
extern KdOsFuncs VxWorksFuncs;
diff --git a/include/kdrive-config.h.in b/include/kdrive-config.h.in
index 14efb56b0..0e54aa18f 100644
--- a/include/kdrive-config.h.in
+++ b/include/kdrive-config.h.in
@@ -19,6 +19,15 @@
/* Support tslib touchscreen abstraction library */
#undef TSLIB
+/* Support KDrive kbd driver */
+#undef KDRIVE_KBD
+
+/* Support KDrive mouse driver */
+#undef KDRIVE_MOUSE
+
+/* Support KDrive evdev driver */
+#undef KDRIVE_EVDEV
+
/* Verbose debugging output hilarity */
#undef DEBUG