[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