Commit cc37ee8a0c31bc2ebc60c8e8b5fc0ca17362087b

David Ludwig 2020-03-16T00:21:22

virtual joysticks: add autotools-build support (Bug 5028) Autotools support for virtual-joysticks turns it OFF by default. To turn it on, pass the following into configure: --enable-joystick-virtual

diff --git a/configure b/configure
index e422846..beda25d 100755
--- a/configure
+++ b/configure
@@ -899,6 +899,7 @@ enable_clock_gettime
 enable_rpath
 enable_backgrounding_signal
 enable_foregrounding_signal
+enable_joystick_virtual
 enable_render_d3d
 enable_sdl2_config
 '
@@ -1691,6 +1692,8 @@ Optional Features:
   --enable-foregrounding-signal
                           number to use for magic foregrounding signal or 'no'
                           [[default=no]]
+  --enable-joystick-virtual
+                          enable virtual joystick APIs [[default=no]]
   --enable-render-d3d     enable the Direct3D render driver [[default=yes]]
   --enable-sdl2-config    Install sdl2-config [default=yes]
 
@@ -24531,6 +24534,24 @@ fi
     fi
 }
 
+CheckVirtualJoystick()
+{
+    # Check whether --enable-joystick-virtual was given.
+if test "${enable_joystick_virtual+set}" = set; then :
+  enableval=$enable_joystick_virtual;
+else
+  enable_joystick_virtual=no
+fi
+
+    if test x$enable_joystick = xyes -a x$enable_joystick_virtual = xyes; then
+
+$as_echo "#define SDL_JOYSTICK_VIRTUAL 1" >>confdefs.h
+
+        SOURCES="$SOURCES $srcdir/src/joystick/virtual/*.c"
+        have_joystick_virtual=yes
+    fi
+}
+
 
 
 CheckWarnAll
@@ -25390,6 +25411,8 @@ $as_echo "#define SDL_TIMER_UNIX 1" >>confdefs.h
         ;;
 esac
 
+CheckVirtualJoystick
+
 # Check whether to install sdl2-config
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to install sdl2-config" >&5
 $as_echo_n "checking whether to install sdl2-config... " >&6; }
@@ -25650,6 +25673,11 @@ if test x$have_x = xyes; then
     SUMMARY="${SUMMARY}X11 libraries   :${SUMMARY_video_x11}\n"
 fi
 SUMMARY="${SUMMARY}Input drivers   :${SUMMARY_input}\n"
+if test x$have_joystick_virtual = xyes; then
+    SUMMARY="${SUMMARY}Enable virtual joystick APIs : YES\n"
+else
+    SUMMARY="${SUMMARY}Enable virtual joystick APIs : NO\n"
+fi
 if test x$have_samplerate_h_hdr = xyes; then
     SUMMARY="${SUMMARY}Using libsamplerate : YES\n"
 else
diff --git a/configure.ac b/configure.ac
index a8ceb8b..2a3654d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3410,6 +3410,19 @@ AS_HELP_STRING([--enable-foregrounding-signal], [number to use for magic foregro
     fi
 }
 
+dnl Set up the Virtual joystick driver.
+CheckVirtualJoystick()
+{
+    AC_ARG_ENABLE(joystick-virtual,
+AS_HELP_STRING([--enable-joystick-virtual], [enable virtual joystick APIs [[default=no]]]),
+                  , enable_joystick_virtual=no)
+    if test x$enable_joystick = xyes -a x$enable_joystick_virtual = xyes; then
+        AC_DEFINE(SDL_JOYSTICK_VIRTUAL, 1, [ ])
+        SOURCES="$SOURCES $srcdir/src/joystick/virtual/*.c"
+        have_joystick_virtual=yes
+    fi
+}
+
 
 
 dnl Do this on all platforms, before everything else (other things might want to override it).
@@ -4092,6 +4105,9 @@ AS_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[defau
         ;;
 esac
 
+dnl Permit use of virtual joystick APIs on any platform (subject to configure options)
+CheckVirtualJoystick
+
 # Check whether to install sdl2-config
 AC_MSG_CHECKING(whether to install sdl2-config)
 AC_ARG_ENABLE([sdl2-config],
@@ -4315,6 +4331,11 @@ if test x$have_x = xyes; then
     SUMMARY="${SUMMARY}X11 libraries   :${SUMMARY_video_x11}\n"
 fi
 SUMMARY="${SUMMARY}Input drivers   :${SUMMARY_input}\n"
+if test x$have_joystick_virtual = xyes; then
+    SUMMARY="${SUMMARY}Enable virtual joystick APIs : YES\n"
+else
+    SUMMARY="${SUMMARY}Enable virtual joystick APIs : NO\n"
+fi
 if test x$have_samplerate_h_hdr = xyes; then
     SUMMARY="${SUMMARY}Using libsamplerate : YES\n"
 else
diff --git a/include/SDL_config.h.in b/include/SDL_config.h.in
index f769e3c..b47da68 100644
--- a/include/SDL_config.h.in
+++ b/include/SDL_config.h.in
@@ -290,6 +290,7 @@
 #undef SDL_JOYSTICK_USBHID_MACHINE_JOYSTICK_H
 #undef SDL_JOYSTICK_HIDAPI
 #undef SDL_JOYSTICK_EMSCRIPTEN
+#undef SDL_JOYSTICK_VIRTUAL
 #undef SDL_HAPTIC_DUMMY
 #undef SDL_HAPTIC_ANDROID
 #undef SDL_HAPTIC_LINUX