From cc37ee8a0c31bc2ebc60c8e8b5fc0ca17362087b Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Mon, 16 Mar 2020 00:21:22 -0400 Subject: [PATCH] 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 --- configure | 28 ++++++++++++++++++++++++++++ configure.ac | 21 +++++++++++++++++++++ include/SDL_config.h.in | 1 + 3 files changed, 50 insertions(+) diff --git a/configure b/configure index e422846f0..beda25d0d 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 a8ceb8ba5..2a3654da3 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 f769e3cf4..b47da68c7 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