joystick: Fix up Linux joystick code to (mostly) compile on FreeBSD.

This commit is contained in:
Ryan C. Gordon 2020-11-23 22:14:22 -05:00
parent 179bd66581
commit 5c9577476f
3 changed files with 62 additions and 26 deletions

54
configure vendored
View File

@ -768,7 +768,6 @@ infodir
docdir docdir
oldincludedir oldincludedir
includedir includedir
runstatedir
localstatedir localstatedir
sharedstatedir sharedstatedir
sysconfdir sysconfdir
@ -978,7 +977,6 @@ datadir='${datarootdir}'
sysconfdir='${prefix}/etc' sysconfdir='${prefix}/etc'
sharedstatedir='${prefix}/com' sharedstatedir='${prefix}/com'
localstatedir='${prefix}/var' localstatedir='${prefix}/var'
runstatedir='${localstatedir}/run'
includedir='${prefix}/include' includedir='${prefix}/include'
oldincludedir='/usr/include' oldincludedir='/usr/include'
docdir='${datarootdir}/doc/${PACKAGE}' docdir='${datarootdir}/doc/${PACKAGE}'
@ -1231,15 +1229,6 @@ do
| -silent | --silent | --silen | --sile | --sil) | -silent | --silent | --silen | --sile | --sil)
silent=yes ;; silent=yes ;;
-runstatedir | --runstatedir | --runstatedi | --runstated \
| --runstate | --runstat | --runsta | --runst | --runs \
| --run | --ru | --r)
ac_prev=runstatedir ;;
-runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \
| --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \
| --run=* | --ru=* | --r=*)
runstatedir=$ac_optarg ;;
-sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)
ac_prev=sbindir ;; ac_prev=sbindir ;;
-sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \
@ -1377,7 +1366,7 @@ fi
for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \
datadir sysconfdir sharedstatedir localstatedir includedir \ datadir sysconfdir sharedstatedir localstatedir includedir \
oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \
libdir localedir mandir runstatedir libdir localedir mandir
do do
eval ac_val=\$$ac_var eval ac_val=\$$ac_var
# Remove trailing slashes. # Remove trailing slashes.
@ -1530,7 +1519,6 @@ Fine tuning of the installation directories:
--sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var] --localstatedir=DIR modifiable single-machine data [PREFIX/var]
--runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run]
--libdir=DIR object code libraries [EPREFIX/lib] --libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include] --includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include] --oldincludedir=DIR C header files for non-gcc [/usr/include]
@ -22724,9 +22712,35 @@ $as_echo "#define SDL_VIDEO_VULKAN 1" >>confdefs.h
CheckInputEvents() CheckInputEvents()
{ {
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux 2.4 unified input interface" >&5 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for Linux 2.4 unified input interface" >&5
$as_echo_n "checking for Linux 2.4 unified input interface... " >&6; } $as_echo_n "checking for Linux 2.4 unified input interface... " >&6; }
use_input_events=no use_input_events=no
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */
#include <dev/evdev/input.h>
int
main ()
{
#ifndef EVIOCGNAME
#error EVIOCGNAME() ioctl not available
#endif
;
return 0;
}
_ACEOF
if ac_fn_c_try_compile "$LINENO"; then :
use_input_events=yes
fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
if test x$use_input_events = xno; then
cat confdefs.h - <<_ACEOF >conftest.$ac_ext cat confdefs.h - <<_ACEOF >conftest.$ac_ext
/* end confdefs.h. */ /* end confdefs.h. */
@ -22750,14 +22764,16 @@ if ac_fn_c_try_compile "$LINENO"; then :
fi fi
rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_input_events" >&5 fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $use_input_events" >&5
$as_echo "$use_input_events" >&6; } $as_echo "$use_input_events" >&6; }
if test x$use_input_events = xyes; then if test x$use_input_events = xyes; then
$as_echo "#define SDL_INPUT_LINUXEV 1" >>confdefs.h $as_echo "#define SDL_INPUT_LINUXEV 1" >>confdefs.h
SUMMARY_input="${SUMMARY_input} linuxev" SUMMARY_input="${SUMMARY_input} linuxev"
fi fi
} }
CheckInputKD() CheckInputKD()

View File

@ -2603,8 +2603,22 @@ dnl See if we can use the new unified event interface in Linux 2.4
CheckInputEvents() CheckInputEvents()
{ {
dnl Check for Linux 2.4 unified input event interface support dnl Check for Linux 2.4 unified input event interface support
AC_MSG_CHECKING(for Linux 2.4 unified input interface) AC_MSG_CHECKING(for Linux 2.4 unified input interface)
use_input_events=no use_input_events=no
dnl FreeBSD puts this in /usr/include/dev/evdev/input.h ...
AC_TRY_COMPILE([
#include <dev/evdev/input.h>
],[
#ifndef EVIOCGNAME
#error EVIOCGNAME() ioctl not available
#endif
],[
use_input_events=yes
])
dnl And Linux of course puts it in linux/input.h ...
if test x$use_input_events = xno; then
AC_TRY_COMPILE([ AC_TRY_COMPILE([
#include <linux/input.h> #include <linux/input.h>
],[ ],[
@ -2614,11 +2628,13 @@ CheckInputEvents()
],[ ],[
use_input_events=yes use_input_events=yes
]) ])
AC_MSG_RESULT($use_input_events) fi
if test x$use_input_events = xyes; then
AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ]) AC_MSG_RESULT($use_input_events)
SUMMARY_input="${SUMMARY_input} linuxev" if test x$use_input_events = xyes; then
fi AC_DEFINE(SDL_INPUT_LINUXEV, 1, [ ])
SUMMARY_input="${SUMMARY_input} linuxev"
fi
} }
dnl See if we can use the kernel kd.h header dnl See if we can use the kernel kd.h header

View File

@ -22,7 +22,11 @@
#ifndef SDL_sysjoystick_c_h_ #ifndef SDL_sysjoystick_c_h_
#define SDL_sysjoystick_c_h_ #define SDL_sysjoystick_c_h_
#ifdef __linux__
#include <linux/input.h> #include <linux/input.h>
#else /* FreeBSD (and maybe others) */
#include <dev/evdev/input.h>
#endif
struct SDL_joylist_item; struct SDL_joylist_item;