mirror of https://github.com/encounter/SDL.git
Fixed bug 5335 - enable joystick/haptic/evdev support by default on FreeBSD
Alex S Evdev headers aren't actually included in the base system (well, it has a private copy), they are available through the devel/evdev-proto port instead. We also have devel/libinotify and devel/libudev-devd shims, I didn't verify whether they work with SDL.
This commit is contained in:
parent
38ab8bf74b
commit
e9869e07bf
29
configure.ac
29
configure.ac
|
@ -2738,6 +2738,20 @@ AS_HELP_STRING([--enable-ime], [enable IME support [[default=yes]]]),
|
|||
fi
|
||||
}
|
||||
|
||||
dnl Check inotify presense
|
||||
CheckInotify()
|
||||
{
|
||||
AC_CHECK_HEADER(sys/inotify.h, have_inotify_inotify_h_hdr=yes)
|
||||
if test x$have_inotify_inotify_h_hdr = xyes; then
|
||||
AC_DEFINE(HAVE_INOTIFY_H, 1, [ ])
|
||||
case "$host" in
|
||||
*-*-freebsd*)
|
||||
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -linotify"
|
||||
;;
|
||||
esac
|
||||
fi
|
||||
}
|
||||
|
||||
dnl See if the platform has libibus IME support.
|
||||
CheckIBus()
|
||||
{
|
||||
|
@ -2751,9 +2765,6 @@ AS_HELP_STRING([--enable-ibus], [enable IBus support [[default=yes]]]),
|
|||
AC_CHECK_HEADER(ibus-1.0/ibus.h,
|
||||
have_ibus_ibus_h_hdr=yes,
|
||||
have_ibus_ibus_h_hdr=no)
|
||||
AC_CHECK_HEADER(sys/inotify.h,
|
||||
have_inotify_inotify_h_hdr=yes,
|
||||
have_inotify_inotify_h_hdr=no)
|
||||
CFLAGS="$save_CFLAGS"
|
||||
if test x$have_ibus_ibus_h_hdr = xyes; then
|
||||
if test x$enable_ime != xyes; then
|
||||
|
@ -3449,7 +3460,6 @@ AS_HELP_STRING([--enable-joystick-virtual], [enable virtual joystick APIs [[defa
|
|||
fi
|
||||
}
|
||||
|
||||
|
||||
dnl Do this on all platforms, before everything else (other things might want to override it).
|
||||
CheckWarnAll
|
||||
CheckNoStrictAliasing
|
||||
|
@ -3531,6 +3541,7 @@ case "$host" in
|
|||
CheckLibUDev
|
||||
CheckDBus
|
||||
CheckIME
|
||||
CheckInotify
|
||||
CheckIBus
|
||||
CheckFcitx
|
||||
case $ARCH in
|
||||
|
@ -3590,12 +3601,20 @@ case "$host" in
|
|||
# Set up files for the joystick library
|
||||
if test x$enable_joystick = xyes; then
|
||||
case $ARCH in
|
||||
linux|freebsd)
|
||||
linux)
|
||||
AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
|
||||
SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
|
||||
SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
|
||||
have_joystick=yes
|
||||
;;
|
||||
freebsd)
|
||||
if test x$use_input_events = xyes; then
|
||||
AC_DEFINE(SDL_JOYSTICK_LINUX, 1, [ ])
|
||||
SOURCES="$SOURCES $srcdir/src/joystick/linux/*.c"
|
||||
SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
|
||||
have_joystick=yes
|
||||
fi
|
||||
;;
|
||||
android)
|
||||
AC_DEFINE(SDL_JOYSTICK_ANDROID, 1, [ ])
|
||||
SOURCES="$SOURCES $srcdir/src/joystick/android/*.c"
|
||||
|
|
|
@ -207,6 +207,7 @@
|
|||
#undef HAVE_ALTIVEC_H
|
||||
#undef HAVE_DBUS_DBUS_H
|
||||
#undef HAVE_FCITX
|
||||
#undef HAVE_INOTIFY_H
|
||||
#undef HAVE_IBUS_IBUS_H
|
||||
#undef HAVE_IMMINTRIN_H
|
||||
#undef HAVE_LIBSAMPLERATE_H
|
||||
|
|
|
@ -32,7 +32,9 @@
|
|||
#include <errno.h> /* errno, strerror */
|
||||
#include <fcntl.h>
|
||||
#include <limits.h> /* For the definition of PATH_MAX */
|
||||
#ifdef HAVE_INOTIFY_H
|
||||
#include <sys/inotify.h>
|
||||
#endif
|
||||
#include <sys/ioctl.h>
|
||||
#include <unistd.h>
|
||||
#include <dirent.h>
|
||||
|
@ -498,6 +500,7 @@ static void SteamControllerDisconnectedCallback(int device_instance)
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef HAVE_INOTIFY_H
|
||||
static int
|
||||
StrHasPrefix(const char *string, const char *prefix)
|
||||
{
|
||||
|
@ -566,6 +569,7 @@ LINUX_InotifyJoystickDetect(void)
|
|||
}
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_INOTIFY_H */
|
||||
|
||||
static void
|
||||
LINUX_FallbackJoystickDetect(void)
|
||||
|
@ -612,7 +616,9 @@ LINUX_JoystickDetect(void)
|
|||
else
|
||||
#endif
|
||||
if (inotify_fd >= 0) {
|
||||
#ifdef HAVE_INOTIFY_H
|
||||
LINUX_InotifyJoystickDetect();
|
||||
#endif
|
||||
}
|
||||
else {
|
||||
LINUX_FallbackJoystickDetect();
|
||||
|
@ -678,6 +684,7 @@ LINUX_JoystickInit(void)
|
|||
else
|
||||
#endif
|
||||
{
|
||||
#ifdef HAVE_INOTIFY_H
|
||||
inotify_fd = inotify_init1(IN_NONBLOCK | IN_CLOEXEC);
|
||||
|
||||
if (inotify_fd < 0) {
|
||||
|
@ -700,6 +707,7 @@ LINUX_JoystickInit(void)
|
|||
strerror (errno));
|
||||
}
|
||||
}
|
||||
#endif /* HAVE_INOTIFY_H */
|
||||
|
||||
/* Report all devices currently present */
|
||||
LINUX_JoystickDetect();
|
||||
|
|
Loading…
Reference in New Issue