[PATCH 7/9] [kdrive] Add option to compile out input drivers
Peter Hutterer
peter.hutterer at who-t.net
Sun Jan 3 17:33:26 PST 2010
On Sat, Jan 02, 2010 at 08:32:57PM +0600, Mikhail Gusarov wrote:
> 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.
>
> Signed-off-by: Mikhail Gusarov <dottedmag at dottedmag.net>
> ---
> configure.ac | 17 +++++++++++++++++
> hw/kdrive/ephyr/ephyrinit.c | 9 +++++++--
> hw/kdrive/linux/Makefile.am | 31 +++++++++++++++++--------------
> hw/kdrive/linux/linux.c | 24 +++++++++++++++++++++++-
> hw/kdrive/src/kdrive.h | 14 --------------
> include/kdrive-config.h.in | 9 +++++++++
> 6 files changed, 73 insertions(+), 31 deletions(-)
>
> diff --git a/configure.ac b/configure.ac
> index 7e2c6a5..ee9fa7c 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
> @@ -2023,6 +2027,19 @@ if test "$KDRIVE" = yes; then
> fi
> fi
>
> + AM_CONDITIONAL(KDRIVE_KBD, test x$KDRIVE_KBD = xyes)
> + if test x$KDRIVE_KBD = xyes; then
> + AC_DEFINE(KDRIVE_KBD, 1, [Enable KDrive kbd driver])
> + fi
> + AM_CONDITIONAL(KDRIVE_EVDEV, test x$KDRIVE_EVDEV = xyes)
> + if test x$KDRIVE_EVDEV = xyes; then
> + AC_DEFINE(KDRIVE_EVDEV, 1, [Enable KDrive evdev driver])
> + fi
> + AM_CONDITIONAL(KDRIVE_MOUSE, test x$KDRIVE_MOUSE = xyes)
> + 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 2f4e632..c7bfb5b 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
> @@ -62,11 +67,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 13df142..2f89b8f 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 e56ffb4..9863c14 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 9f8465f..252616a 100644
> --- a/hw/kdrive/src/kdrive.h
> +++ b/hw/kdrive/src/kdrive.h
> @@ -584,20 +584,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;
where did the last 4 lines go? They look like an unrelated cleanup that
should be in a separate commit.
Cheers,
Peter
> -
> /* kmap.c */
>
> #define KD_MAPPED_MODE_REGISTERS 0
> diff --git a/include/kdrive-config.h.in b/include/kdrive-config.h.in
> index 14efb56..0e54aa1 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
>
> --
> 1.6.3.3
More information about the xorg-devel
mailing list