From: Michael Karcher <karcher@physik.fu-berlin.de>
Date: Sun, 11 Jul 2010 23:50:25 +0200
Subject: Directly check for Joystick interface

---
 configure.in           |    9 +++++++++
 include/kc/config.h.in |    3 +++
 src/kc/Makefile.am     |   17 ++++++++++++-----
 src/kc/mod_list.cc     |    9 ++++++---
 4 files changed, 30 insertions(+), 8 deletions(-)

diff --git a/configure.in b/configure.in
index 54a89c2..5ad5678 100644
--- a/configure.in
+++ b/configure.in
@@ -790,6 +790,15 @@ else
 	fi
 fi
 
+dnl ----------------------------------------
+dnl  check for the Linux Joystick interface
+dnl ----------------------------------------
+
+AC_CHECK_HEADER(linux/joystick.h,
+  [AM_CONDITIONAL(HAVE_JOYSTICK, true)
+   AC_DEFINE(HAVE_JOYSTICK, 1, "Supported joystick interface present - Currently linux only")],
+  [AM_CONDITIONAL(HAVE_JOYSTICK, false)])
+
 AC_OUTPUT([
 	Makefile
 	include/Makefile
diff --git a/include/kc/config.h.in b/include/kc/config.h.in
index 7ca4885..2d187fa 100644
--- a/include/kc/config.h.in
+++ b/include/kc/config.h.in
@@ -121,6 +121,9 @@
    declares uintmax_t. */
 #undef HAVE_INTTYPES_H_WITH_UINTMAX
 
+/* "Supported joystick interface present - Currently linux only" */
+#undef HAVE_JOYSTICK
+
 /* Define if you have <langinfo.h> and nl_langinfo(CODESET). */
 #undef HAVE_LANGINFO_CODESET
 
diff --git a/src/kc/Makefile.am b/src/kc/Makefile.am
index cf8a257..0670b7b 100644
--- a/src/kc/Makefile.am
+++ b/src/kc/Makefile.am
@@ -29,23 +29,30 @@ AM_CPPFLAGS = \
 	$(GTK_CFLAGS) \
 	$(SDL_CFLAGS)
 
-LINUX_EXTRA_kcemu_SOURCES = mod_v24.cc mod_js.cc
+JOYSTICK_EXTRA_kcemu_SOURCES = mod_js.cc
+LINUX_EXTRA_kcemu_SOURCES = mod_v24.cc
 MINGW_EXTRA_kcemu_SOURCES = kcemu.rc
 FREEBSD_EXTRA_kcemu_SOURCES = mod_v24.cc
 
+EXTRA_kcemu_SOURCES = 
+
+if HAVE_JOYSTICK
+EXTRA_kcemu_SOURCES += $(JOYSTICK_EXTRA_kcemu_SOURCES)
+endif
+
 if TARGET_LINUX
-EXTRA_kcemu_SOURCES = $(LINUX_EXTRA_kcemu_SOURCES)
+EXTRA_kcemu_SOURCES += $(LINUX_EXTRA_kcemu_SOURCES)
 endif
 
 if TARGET_MINGW
-EXTRA_kcemu_SOURCES = $(MINGW_EXTRA_kcemu_SOURCES)
+EXTRA_kcemu_SOURCES += $(MINGW_EXTRA_kcemu_SOURCES)
 endif
 
 if TARGET_FREEBSD
-EXTRA_kcemu_SOURCES = $(FREEBSD_EXTRA_kcemu_SOURCES)
+EXTRA_kcemu_SOURCES += $(FREEBSD_EXTRA_kcemu_SOURCES)
 endif
 
-EXTRA_DIST = $(LINUX_EXTRA_kcemu_SOURCES) $(MINGW_EXTRA_kcemu_SOURCES) $(FREEBSD_EXTRA_kcemu_SOURCES)
+EXTRA_DIST = $(JOYSTICK_EXTRA_kcemu_SOURCES) $(LINUX_EXTRA_kcemu_SOURCES) $(MINGW_EXTRA_kcemu_SOURCES) $(FREEBSD_EXTRA_kcemu_SOURCES)
 
 kcemu_SOURCES = \
 	kc.cc		\
diff --git a/src/kc/mod_list.cc b/src/kc/mod_list.cc
index 6b85956..b21f405 100644
--- a/src/kc/mod_list.cc
+++ b/src/kc/mod_list.cc
@@ -167,9 +167,12 @@
 
 #ifdef HOST_OS_LINUX
 #include "kc/mod_v24.h"
-#include "kc/mod_js.h"
 #endif /* HOST_OS_LINUX */
 
+#ifdef HAVE_JOYSTICK
+#include "kc/mod_js.h"
+#endif
+
 #include "fileio/load.h"
 
 #include "ui/ui.h"
@@ -463,10 +466,10 @@ ModuleList::ModuleList(void)
   /*
    *  Joystick module (kc85/2-4)
    */
-#ifdef HOST_OS_LINUX
+#ifdef HAVE_JOYSTICK
   m = new ModuleJoystick("M008", 0xff);
   _mod_list.push_back(new ModuleListEntry(_("M008: Joystick"), m, KC_TYPE_85_2_CLASS));
-#endif /* HOST_OS_LINUX */
+#endif /* HAVE_JOYSTICK */
 
   /*
    *  RAM module 64k (kc85/2-4)
