From dec7875a6e23212021e4d9080330a42832dfe02a Mon Sep 17 00:00:00 2001
From: Edward Rudd <urkle@outoforder.cc>
Date: Tue, 15 Jun 2021 01:40:19 +0000
Subject: [PATCH] update SDL soruce to 2.0.14
---
source/configure.ac | 420 +++++++++++++++++++++++++++++++++++++++++------------------
1 files changed, 291 insertions(+), 129 deletions(-)
diff --git a/source/configure.ac b/source/configure.ac
index 19361a4..b7e519b 100644
--- a/source/configure.ac
+++ b/source/configure.ac
@@ -1,6 +1,7 @@
dnl Process this file with autoconf to produce a configure script.
-AC_INIT(README.txt)
-AC_CONFIG_HEADER(include/SDL_config.h)
+AC_INIT
+AC_CONFIG_SRCDIR(README.txt)
+AC_CONFIG_HEADERS(include/SDL_config.h)
AC_CONFIG_AUX_DIR(build-scripts)
AC_CONFIG_MACRO_DIR([acinclude])
@@ -20,9 +21,9 @@
#
SDL_MAJOR_VERSION=2
SDL_MINOR_VERSION=0
-SDL_MICRO_VERSION=12
+SDL_MICRO_VERSION=14
SDL_INTERFACE_AGE=0
-SDL_BINARY_AGE=12
+SDL_BINARY_AGE=14
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
AC_SUBST(SDL_MAJOR_VERSION)
@@ -34,6 +35,7 @@
# libtool versioning
LT_INIT([win32-dll])
+LT_LANG([Windows Resource])
LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
@@ -50,12 +52,10 @@
dnl AC_CANONICAL_HOST
dnl Check for tools
-AC_PROG_LIBTOOL
AC_PROG_CC
AC_PROG_CXX
AC_PROG_INSTALL
AC_PROG_MAKE_SET
-AC_CHECK_TOOL(WINDRES, [windres], [:])
PKG_PROG_PKG_CONFIG
dnl Make sure that srcdir is a full pathname
@@ -69,7 +69,17 @@
esac
dnl Set up the compiler and linker flags
-INCLUDE="-I$srcdir/include -idirafter $srcdir/src/video/khronos"
+INCLUDE="-I$srcdir/include"
+
+dnl Don't use our khronos headers on QNX.
+case "$host" in
+ *-*-nto-qnx*)
+ ;;
+ *)
+ INCLUDE="$INCLUDE -idirafter $srcdir/src/video/khronos"
+ ;;
+esac
+
if test x$srcdir != x.; then
INCLUDE="-Iinclude $INCLUDE"
elif test -d .hg; then
@@ -335,10 +345,10 @@
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
]),
)
- AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat wcsdup wcsstr wcscmp wcsncmp strlen strlcpy strlcat _strrev _strupr _strlwr strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval poll _Exit)
+ AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr strchr strrchr strstr strtok_r itoa _ltoa _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp vsscanf vsnprintf fopen64 fseeko fseeko64 sigaction setjmp nanosleep sysconf sysctlbyname getauxval elf_aux_info poll _Exit)
AC_CHECK_LIB(m, pow, [LIBS="$LIBS -lm"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm"])
- AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf fmod fmodf log logf log10 log10f pow powf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
+ AC_CHECK_FUNCS(acos acosf asin asinf atan atanf atan2 atan2f ceil ceilf copysign copysignf cos cosf exp expf fabs fabsf floor floorf trunc truncf fmod fmodf log logf log10 log10f pow powf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
AC_CHECK_LIB(iconv, iconv_open, [LIBS="$LIBS -liconv"; EXTRA_LDFLAGS="$EXTRA_LDFLAGS -liconv"])
AC_CHECK_FUNCS(iconv)
@@ -402,6 +412,7 @@
SOURCES="$SOURCES $srcdir/src/haptic/*.c"
SOURCES="$SOURCES $srcdir/src/joystick/*.c"
SOURCES="$SOURCES $srcdir/src/libm/*.c"
+SOURCES="$SOURCES $srcdir/src/misc/*.c"
SOURCES="$SOURCES $srcdir/src/power/*.c"
#SOURCES="$SOURCES $srcdir/src/filesystem/*.c"
SOURCES="$SOURCES $srcdir/src/render/*.c"
@@ -412,6 +423,7 @@
SOURCES="$SOURCES $srcdir/src/timer/*.c"
SOURCES="$SOURCES $srcdir/src/video/*.c"
SOURCES="$SOURCES $srcdir/src/video/yuv2rgb/*.c"
+SOURCES="$SOURCES $srcdir/src/locale/*.c"
dnl Enable/disable various subsystems of the SDL library
@@ -1217,7 +1229,7 @@
AC_DEFINE(SDL_AUDIO_DRIVER_FUSIONSOUND, 1, [ ])
SOURCES="$SOURCES $srcdir/src/audio/fusionsound/*.c"
EXTRA_CFLAGS="$EXTRA_CFLAGS $FUSIONSOUND_CFLAGS"
-
+
AC_ARG_ENABLE(fusionsound-shared,
AS_HELP_STRING([--enable-fusionsound-shared], [dynamically load fusionsound audio support [[default=yes]]]),
, enable_fusionsound_shared=yes)
@@ -1237,7 +1249,7 @@
SUMMARY_audio="${SUMMARY_audio} fusionsound"
fi
AC_MSG_RESULT($fusionsound_shared)
-
+
have_audio=yes
fi
fi
@@ -1307,13 +1319,13 @@
CheckARM()
{
AC_ARG_ENABLE(arm-simd,
-AC_HELP_STRING([--enable-arm-simd], [use SIMD assembly blitters on ARM [[default=yes]]]),
- enable_arm_simd=$enableval, enable_arm_simd=yes)
+AS_HELP_STRING([--enable-arm-simd], [use SIMD assembly blitters on ARM [[default=no]]]),
+ enable_arm_simd=$enableval, enable_arm_simd=no)
if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_simd = xyes; then
save_CFLAGS="$CFLAGS"
have_arm_simd=no
CFLAGS="-x assembler-with-cpp $CFLAGS"
-
+
AC_MSG_CHECKING(for ARM SIMD)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
.text
@@ -1328,12 +1340,11 @@
uqadd8 r0, r0, r0
]])], have_arm_simd=yes)
AC_MSG_RESULT($have_arm_simd)
-
+
CFLAGS="$save_CFLAGS"
-
+
if test x$have_arm_simd = xyes; then
- AC_DEFINE(SDL_ARM_SIMD_BLITTERS)
-dnl SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.c"
+ AC_DEFINE(SDL_ARM_SIMD_BLITTERS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-simd*.S"
WARN_ABOUT_ARM_SIMD_ASM_MIT="yes"
fi
@@ -1344,13 +1355,13 @@
CheckNEON()
{
AC_ARG_ENABLE(arm-neon,
-AC_HELP_STRING([--enable-arm-neon], [use NEON assembly blitters on ARM [[default=no]]]),
+AS_HELP_STRING([--enable-arm-neon], [use NEON assembly blitters on ARM [[default=no]]]),
enable_arm_neon=$enableval, enable_arm_neon=no)
if test x$enable_video = xyes -a x$enable_assembly = xyes -a x$enable_arm_neon = xyes; then
save_CFLAGS="$CFLAGS"
have_arm_neon=no
CFLAGS="-x assembler-with-cpp $CFLAGS"
-
+
AC_MSG_CHECKING(for ARM NEON)
AC_COMPILE_IFELSE([AC_LANG_SOURCE([[
.text
@@ -1367,12 +1378,10 @@
vmovn.u16 d0, q0
]])], have_arm_neon=yes)
AC_MSG_RESULT($have_arm_neon)
-
CFLAGS="$save_CFLAGS"
-
+
if test x$have_arm_neon = xyes; then
- AC_DEFINE(SDL_ARM_NEON_BLITTERS)
-dnl SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.c"
+ AC_DEFINE(SDL_ARM_NEON_BLITTERS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/arm/pixman-arm-neon*.S"
WARN_ABOUT_ARM_NEON_ASM_MIT="yes"
fi
@@ -1526,7 +1535,7 @@
video_wayland=no
if test x$video_opengl_egl = xyes && \
test x$video_opengles_v2 = xyes; then
- if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-protocols wayland-egl wayland-cursor egl xkbcommon ; then
+ if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-egl wayland-cursor egl xkbcommon ; then
WAYLAND_CFLAGS=`$PKG_CONFIG --cflags wayland-client wayland-egl wayland-cursor xkbcommon`
WAYLAND_LIBS=`$PKG_CONFIG --libs wayland-client wayland-egl wayland-cursor xkbcommon`
WAYLAND_SCANNER=`$PKG_CONFIG --variable=wayland_scanner wayland-scanner`
@@ -1595,7 +1604,6 @@
fi
}
-
dnl Check for Native Client stuff
CheckNativeClient()
{
@@ -1621,7 +1629,6 @@
SUMMARY_video="${SUMMARY_video} nacl opengles2"
])
}
-
CheckRPI()
{
@@ -1661,7 +1668,7 @@
# Restore the compiler flags and libraries
CFLAGS="$ac_save_cflags"; LIBS="$ac_save_libs"
-
+
if test x$have_video_rpi = xyes; then
CFLAGS="$CFLAGS $RPI_CFLAGS"
SDL_CFLAGS="$SDL_CFLAGS $RPI_CFLAGS"
@@ -1927,7 +1934,7 @@
XITouchClassInfo *t;
],[
have_xinput2_multitouch=yes
- AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [])
+ AC_DEFINE([SDL_VIDEO_DRIVER_X11_XINPUT2_SUPPORTS_MULTITOUCH], 1, [ ])
SUMMARY_video_x11="${SUMMARY_video_x11} xinput2_multitouch"
])
AC_MSG_RESULT($have_xinput2_multitouch)
@@ -2129,7 +2136,7 @@
CheckMETAL()
{
AC_ARG_ENABLE(video-metal,
-AC_HELP_STRING([--enable-video-metal], [include Metal support [[default=yes]]]),
+AS_HELP_STRING([--enable-video-metal], [include Metal support [[default=yes]]]),
, enable_video_metal=yes)
AC_ARG_ENABLE(render-metal,
AS_HELP_STRING([--enable-render-metal], [enable the Metal render driver [[default=yes]]]),
@@ -2145,7 +2152,7 @@
#import <Metal/Metal.h>
#import <QuartzCore/CAMetalLayer.h>
- #if !TARGET_CPU_X86_64
+ #if TARGET_CPU_X86
#error Metal doesn't work on this configuration
#endif
],[
@@ -2167,7 +2174,6 @@
fi
fi
}
-
dnl Find DirectFB
CheckDirectFB()
@@ -2233,8 +2239,8 @@
if test x$enable_video = xyes -a x$enable_video_kmsdrm = xyes; then
video_kmsdrm=no
- PKG_CHECK_MODULES([LIBDRM], [libdrm >= 2.4.46], libdrm_avail=yes, libdrm_avail=no)
- PKG_CHECK_MODULES([LIBGBM], [gbm >= 9.0.0], libgbm_avail=yes, libgbm_avail=no)
+ PKG_CHECK_MODULES([LIBDRM], [libdrm >= 1.4.82], libdrm_avail=yes, libdrm_avail=no)
+ PKG_CHECK_MODULES([LIBGBM], [gbm >= 11.1.0], libgbm_avail=yes, libgbm_avail=no)
if test x$libdrm_avail = xyes -a x$libgbm_avail = xyes; then
video_kmsdrm=yes
@@ -2247,6 +2253,7 @@
AC_DEFINE(SDL_VIDEO_DRIVER_KMSDRM, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/kmsdrm/*.c"
+ SOURCES="$SOURCES $srcdir/src/video/kmsdrm_legacy/*.c"
EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBDRM_CFLAGS $LIBGBM_CFLAGS"
AC_MSG_CHECKING(for kmsdrm dynamic loading support)
@@ -2361,6 +2368,7 @@
#define LINUX
#define EGL_API_FB
#define MESA_EGL_NO_X11_HEADERS
+ #define EGL_NO_X11
#include <EGL/egl.h>
#include <EGL/eglext.h>
],[
@@ -2371,7 +2379,7 @@
if test x$video_opengl_egl = xyes; then
AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
fi
-
+
if test x$enable_video_opengles1 = xyes; then
AC_MSG_CHECKING(for OpenGL ES v1 headers)
video_opengles_v1=no
@@ -2389,7 +2397,7 @@
SUMMARY_video="${SUMMARY_video} opengl_es1"
fi
fi
-
+
if test x$enable_video_opengles2 = xyes; then
AC_MSG_CHECKING(for OpenGL ES v2 headers)
video_opengles_v2=no
@@ -2440,7 +2448,7 @@
AC_DEFINE(SDL_VIDEO_OPENGL_EGL, 1, [ ])
SUMMARY_video="${SUMMARY_video} opengl_es1"
fi
-
+
AC_MSG_CHECKING(for OpenGL ES v2 headers)
video_opengles_v2=no
AC_TRY_COMPILE([
@@ -2560,7 +2568,7 @@
#include <Metal/Metal.h>
#include <QuartzCore/CAMetalLayer.h>
- #if !TARGET_CPU_X86_64
+ #if TARGET_CPU_X86
#error Vulkan doesn't work on this configuration
#endif
],[
@@ -2630,6 +2638,27 @@
fi
}
+dnl See if we can use the FreeBSD kernel kbio.h header
+CheckInputKBIO()
+{
+ AC_MSG_CHECKING(for FreeBSD kbio.h)
+ use_input_kbio=no
+ AC_TRY_COMPILE([
+ #include <sys/kbio.h>
+ #include <sys/ioctl.h>
+ ],[
+ accentmap_t accTable;
+ ioctl(0, KDENABIO, 1);
+ ],[
+ use_input_kbio=yes
+ ])
+ AC_MSG_RESULT($use_input_kbio)
+ if test x$use_input_kbio = xyes; then
+ AC_DEFINE(SDL_INPUT_FBSDKBIO, 1, [ ])
+ SUMMARY_input="${SUMMARY_input} fbsdkbio"
+ fi
+}
+
dnl See if the platform offers libudev for device enumeration and hotplugging.
CheckLibUDev()
{
@@ -2686,6 +2715,28 @@
fi
}
+dnl Check inotify presense
+CheckInotify()
+{
+ save_LIBS="$LIBS"
+ case "$host" in
+ *-*-freebsd*) LIBS="$LIBS -linotify"
+ ;;
+ esac
+ AC_CHECK_HEADERS(sys/inotify.h, [have_inotify_inotify_h_hdr=yes])
+ AC_CHECK_FUNCS(inotify_init, [have_inotify=yes])
+ AC_CHECK_FUNCS(inotify_init1)
+ if test x$have_inotify_inotify_h_hdr = xyes -a x$have_inotify = xyes; then
+ AC_DEFINE(HAVE_INOTIFY, 1, [ ])
+ case "$host" in
+ *-*-freebsd*)
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -linotify"
+ ;;
+ esac
+ fi
+ LIBS="$save_LIBS"
+}
+
dnl See if the platform has libibus IME support.
CheckIBus()
{
@@ -2699,9 +2750,6 @@
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
@@ -2729,48 +2777,58 @@
AS_HELP_STRING([--enable-fcitx], [enable fcitx support [[default=yes]]]),
, enable_fcitx=yes)
if test x$enable_fcitx = xyes; then
- PKG_CHECK_MODULES([FCITX], [fcitx], have_fcitx=yes, have_fcitx=no)
- CFLAGS="$CFLAGS $FCITX_CFLAGS"
- AC_CHECK_HEADER(fcitx/frontend.h,
- have_fcitx_frontend_h_hdr=yes,
- have_fcitx_frontend_h_hdr=no)
- CFLAGS="$save_CFLAGS"
- if test x$have_fcitx_frontend_h_hdr = xyes; then
- if test x$enable_ime != xyes; then
- AC_MSG_WARN([IME support is required for fcitx.])
- have_fcitx_frontend_h_hdr=no
- elif test x$enable_dbus != xyes; then
- AC_MSG_WARN([DBus support is required for fcitx.])
- have_fcitx_frontend_h_hdr=no
- else
- AC_DEFINE(HAVE_FCITX_FRONTEND_H, 1, [ ])
- EXTRA_CFLAGS="$EXTRA_CFLAGS $FCITX_CFLAGS"
- SOURCES="$SOURCES $srcdir/src/core/linux/SDL_fcitx.c"
- fi
+ AC_MSG_CHECKING(for fcitx support)
+ have_fcitx=no
+ if test x$enable_ime != xyes; then
+ AC_MSG_WARN([IME support is required for fcitx.])
+ elif test x$have_dbus_dbus_h_hdr != xyes; then
+ AC_MSG_WARN([DBus support is required for fcitx.])
+ else
+ have_fcitx=yes
+ AC_DEFINE(HAVE_FCITX, 1, [ ])
+ SOURCES="$SOURCES $srcdir/src/core/linux/SDL_fcitx.c"
fi
+ AC_MSG_RESULT($have_fcitx)
fi
}
-dnl See if we can use the Touchscreen input library
-CheckTslib()
+dnl Check to see if GameController framework support is desired
+CheckJoystickMFI()
{
- AC_ARG_ENABLE(input-tslib,
-AS_HELP_STRING([--enable-input-tslib], [use the Touchscreen library for input [[default=yes]]]),
- , enable_input_tslib=yes)
- if test x$enable_input_tslib = xyes; then
- AC_MSG_CHECKING(for Touchscreen library support)
- enable_input_tslib=no
- AC_TRY_COMPILE([
- #include "tslib.h"
+ AC_ARG_ENABLE(joystick-mfi,
+AS_HELP_STRING([--enable-joystick-mfi], [include macOS MFI joystick support [[default=yes]]]),
+ , enable_joystick_mfi=yes)
+
+ if test x$enable_joystick_mfi = xyes; then
+ save_CFLAGS="$CFLAGS"
+ save_LDFLAGS="$LDFLAGS"
+ dnl Work around that we don't have Objective-C support in autoconf
+ CFLAGS="$CFLAGS -x objective-c -fobjc-weak"
+ LDFLAGS="$LDFLAGS -Wl,-weak_framework,CoreHaptics -Wl,-weak_framework,GameController"
+ AC_MSG_CHECKING(for GameController framework)
+ enable_joystick_mfi=no
+ AC_TRY_LINK([
+ #include <AvailabilityMacros.h>
+ #include <TargetConditionals.h>
+ #import <GameController/GameController.h>
],[
+ #if MAC_OS_X_VERSION_MIN_REQUIRED < 1080
+ #error GameController framework doesn't work on this configuration
+ #endif
+ #if TARGET_CPU_X86
+ #error GameController framework doesn't work on this configuration
+ #endif
],[
- enable_input_tslib=yes
+ enable_joystick_mfi=yes
])
- AC_MSG_RESULT($enable_input_tslib)
- if test x$enable_input_tslib = xyes; then
- AC_DEFINE(SDL_INPUT_TSLIB, 1, [ ])
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lts"
- SUMMARY_input="${SUMMARY_input} ts"
+ CFLAGS="$save_CFLAGS"
+ LDFLAGS="$save_LDFLAGS"
+
+ AC_MSG_RESULT($enable_joystick_mfi)
+ if test x$enable_joystick_mfi = xyes; then
+ AC_DEFINE(SDL_JOYSTICK_MFI, 1, [ ])
+ EXTRA_CFLAGS="$EXTRA_CFLAGS -fobjc-weak -Wno-unused-command-line-argument"
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-weak_framework,CoreHaptics -Wl,-weak_framework,GameController"
fi
fi
}
@@ -3094,11 +3152,11 @@
AC_CHECK_HEADER(mmdeviceapi.h, have_wasapi=yes)
if test x$have_wasapi = xyes; then
- AC_DEFINE(HAVE_MMDEVICEAPI_H,1,[])
+ AC_DEFINE(HAVE_MMDEVICEAPI_H, 1, [ ])
fi
AC_CHECK_HEADER(audioclient.h,,have_wasapi=no)
if test x$have_wasapi = xyes; then
- AC_DEFINE(HAVE_AUDIOCLIENT_H,1,[])
+ AC_DEFINE(HAVE_AUDIOCLIENT_H, 1, [ ])
fi
AC_ARG_ENABLE(wasapi,
@@ -3140,7 +3198,7 @@
CheckUSBHID()
{
case "$host" in
- *-*-*bsd*)
+ *-*-*bsd*|*-*-dragonfly*)
if test x$enable_joystick = xyes; then
AC_CHECK_LIB(usbhid, hid_init, have_libusbhid=yes)
if test x$have_libusbhid = xyes; then
@@ -3152,7 +3210,7 @@
AC_CHECK_HEADER(libusb.h, [USB_CFLAGS="-DHAVE_LIBUSB_H"])
AC_CHECK_LIB(usb, hid_init, [USB_LIBS="$USB_LIBS -lusb"])
fi
-
+
save_CFLAGS="$CFLAGS"
CFLAGS="$CFLAGS $USB_CFLAGS"
@@ -3164,8 +3222,8 @@
#include <usb.h>
#endif
#ifdef __DragonFly__
- # include <bus/usb/usb.h>
- # include <bus/usb/usbhid.h>
+ # include <bus/u4b/usb.h>
+ # include <bus/u4b/usbhid.h>
#else
# include <dev/usb/usb.h>
# include <dev/usb/usbhid.h>
@@ -3195,8 +3253,8 @@
#include <usb.h>
#endif
#ifdef __DragonFly__
- # include <bus/usb/usb.h>
- # include <bus/usb/usbhid.h>
+ # include <bus/u4b/usb.h>
+ # include <bus/u4b/usbhid.h>
#else
# include <dev/usb/usb.h>
# include <dev/usb/usbhid.h>
@@ -3218,7 +3276,7 @@
USB_CFLAGS="$USB_CFLAGS -DUSBHID_UCR_DATA"
fi
AC_MSG_RESULT($have_usbhid_ucr_data)
-
+
AC_MSG_CHECKING(for new usbhid API)
have_usbhid_new=no
AC_TRY_COMPILE([
@@ -3227,8 +3285,8 @@
#include <usb.h>
#endif
#ifdef __DragonFly__
- #include <bus/usb/usb.h>
- #include <bus/usb/usbhid.h>
+ #include <bus/u4b/usb.h>
+ #include <bus/u4b/usbhid.h>
#else
#include <dev/usb/usb.h>
#include <dev/usb/usbhid.h>
@@ -3280,50 +3338,54 @@
dnl Check for HIDAPI joystick drivers
CheckHIDAPI()
{
- # The hidraw support doesn't catch Xbox, PS4 and Nintendo controllers,
- # so we'll just use libusb when it's available.
- case "$host" in
- # libusb does not support iOS
- arm*-apple-darwin* | *-ios-* )
- skiplibusb=yes
- ;;
- # On the other hand, *BSD specifically uses libusb only
- *-*-*bsd* )
- onlylibusb=yes
- ;;
- esac
-
AC_ARG_ENABLE(hidapi,
-AS_HELP_STRING([--enable-hidapi], [use HIDAPI for low level joystick drivers [[default=no]]]),
- , enable_hidapi=no)
+AS_HELP_STRING([--enable-hidapi], [use HIDAPI for low level joystick drivers [[default=yes]]]),
+ , enable_hidapi=yes)
+ AC_ARG_ENABLE(hidapi-libusb,
+AS_HELP_STRING([--enable-hidapi-libusb], [use libusb for low level joystick drivers [[default=maybe]]]),
+ , enable_hidapi_libusb=maybe)
+
if test x$enable_joystick = xyes -a x$enable_hidapi = xyes; then
- if test x$skiplibusb = xyes; then
- hidapi_support=yes
- else
+ case "$host" in
+ # libusb does not support iOS
+ *-ios-* )
+ enable_hidapi_libusb=no
+ ;;
+ # On the other hand, *BSD specifically uses libusb only
+ *-*-*bsd* )
+ enable_hidapi_libusb=yes
+ require_hidapi_libusb=yes
+ ;;
+ # RAWINPUT is only available on Win32, but can be enabled if HIDAPI is
+ *-*-cygwin* | *-*-mingw32*)
+ enable_joystick_rawinput=yes
+ ;;
+ esac
+
+ hidapi_support=yes
+ if test x$enable_hidapi_libusb = xyes; then
PKG_CHECK_MODULES([LIBUSB], [libusb-1.0], have_libusb=yes, have_libusb=no)
save_CFLAGS="$CFLAGS"
CFLAGS="$save_CFLAGS $LIBUSB_CFLAGS"
AC_CHECK_HEADER(libusb.h, have_libusb_h=yes)
CFLAGS="$save_CFLAGS"
- if test x$have_libusb_h = xyes; then
- hidapi_support=yes
- elif test x$onlylibusb = xyes; then
+ if test x$have_libusb_h = xno && test x$require_hidapi_libusb = xyes; then
hidapi_support=no
- else
- hidapi_support=yes
fi
fi
if test x$hidapi_support = xyes; then
AC_DEFINE(SDL_JOYSTICK_HIDAPI, 1, [ ])
+ if test x$enable_joystick_rawinput = xyes; then
+ AC_DEFINE(SDL_JOYSTICK_RAWINPUT, 1, [ ])
+ fi
EXTRA_CFLAGS="$EXTRA_CFLAGS -I$srcdir/src/hidapi/hidapi"
SOURCES="$SOURCES $srcdir/src/joystick/hidapi/*.c"
SOURCES="$SOURCES $srcdir/src/hidapi/SDL_hidapi.c"
if test x$have_libusb_h = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS $LIBUSB_CFLAGS"
- if test x$onlylibusb = xyes; then
- SOURCES="$SOURCES $srcdir/src/hidapi/libusb/hid.c"
+ if test x$require_hidapi_libusb = xyes; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $LIBUSB_LIBS"
else
if test x$have_loadso != xyes; then
@@ -3410,7 +3472,18 @@
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=yes]]]),
+ , enable_joystick_virtual=yes)
+ 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).
CheckWarnAll
@@ -3418,6 +3491,8 @@
dnl Do this for every platform, but for some it doesn't mean anything, but better to catch it here anyhow.
CheckEventSignals
+
+have_locale=no
dnl Set up the configuration based on the host platform!
case "$host" in
@@ -3432,11 +3507,9 @@
EXTRA_CFLAGS="$EXTRA_CFLAGS $ANDROID_CFLAGS"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldl -lGLESv1_CM -lGLESv2 -llog -landroid"
SDLMAIN_SOURCES="$srcdir/src/main/android/*.c"
-
if test x$enable_video = xyes; then
SOURCES="$SOURCES $srcdir/src/core/android/*.c $srcdir/src/video/android/*.c"
- # FIXME: confdefs? Not AC_DEFINE?
- $as_echo "#define SDL_VIDEO_DRIVER_ANDROID 1" >>confdefs.h
+ AC_DEFINE(SDL_VIDEO_DRIVER_ANDROID, 1, [ ])
SUMMARY_video="${SUMMARY_video} android"
fi
;;
@@ -3491,14 +3564,17 @@
CheckLibUDev
CheckDBus
CheckIME
+ CheckInotify
CheckIBus
CheckFcitx
case $ARCH in
linux)
CheckInputKD
;;
+ freebsd)
+ CheckInputKBIO
+ ;;
esac
- CheckTslib
CheckUSBHID
CheckHIDAPI
CheckPTHREAD
@@ -3506,6 +3582,12 @@
CheckLinuxVersion
CheckRPATH
CheckVivanteVideo
+
+ SOURCES="$SOURCES $srcdir/src/misc/unix/*.c"
+ have_misc=yes
+
+ SOURCES="$SOURCES $srcdir/src/locale/unix/*.c"
+ have_locale=yes
# Set up files for the audio library
if test x$enable_audio = xyes; then
@@ -3548,6 +3630,14 @@
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"
@@ -3559,7 +3649,7 @@
# Set up files for the haptic library
if test x$enable_haptic = xyes; then
case $ARCH in
- linux)
+ linux|freebsd)
if test x$use_input_events = xyes; then
AC_DEFINE(SDL_HAPTIC_LINUX, 1, [ ])
SOURCES="$SOURCES $srcdir/src/haptic/linux/*.c"
@@ -3625,9 +3715,12 @@
fi
# Set up files for evdev input
if test x$use_input_events = xyes; then
- SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev*.c"
- fi
+ SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev.c"
+ SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev_kbd.c"
+ SOURCES="$SOURCES $srcdir/src/core/freebsd/SDL_evdev_kbd_freebsd.c"
+ fi
# Set up other core UNIX files
+ SOURCES="$SOURCES $srcdir/src/core/linux/SDL_evdev_capabilities.c"
SOURCES="$SOURCES $srcdir/src/core/linux/SDL_threadprio.c"
SOURCES="$SOURCES $srcdir/src/core/unix/*.c"
;;
@@ -3655,6 +3748,13 @@
# Set up the core platform files
SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
+
+ SOURCES="$SOURCES $srcdir/src/misc/windows/*.c"
+ have_misc=yes
+
+ # Use the Windows locale APIs.
+ SOURCES="$SOURCES $srcdir/src/locale/windows/*.c"
+ have_locale=yes
# Set up files for the video library
if test x$enable_video = xyes; then
@@ -3718,11 +3818,23 @@
have_haptic=yes
fi
fi
+ # Set up files for the sensor library
+ AC_CHECK_HEADER(sensorsapi.h,have_winsensors=yes,have_winsensors=no)
+ if test x$have_winsensors = xyes; then
+ AC_DEFINE(HAVE_SENSORSAPI_H, 1, [ ])
+ fi
+ if test x$enable_sensor = xyes -a x$have_winsensors = xyes; then
+ AC_DEFINE(SDL_SENSOR_WINDOWS, 1, [ ])
+ SOURCES="$SOURCES $srcdir/src/sensor/windows/*.c"
+ have_sensor=yes
+ fi
+ # Set up files for the power library
if test x$enable_power = xyes; then
AC_DEFINE(SDL_POWER_WINDOWS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/power/windows/SDL_syspower.c"
have_power=yes
fi
+ # Set up files for the filesystem library
if test x$enable_filesystem = xyes; then
AC_DEFINE(SDL_FILESYSTEM_WINDOWS, 1, [ ])
SOURCES="$SOURCES $srcdir/src/filesystem/windows/SDL_sysfilesystem.c"
@@ -3819,6 +3931,14 @@
SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
have_filesystem=yes
fi
+
+ SOURCES="$SOURCES $srcdir/src/misc/haiku/*.cc"
+ have_misc=yes
+
+ # Set up files for the locale library
+ SOURCES="$SOURCES $srcdir/src/locale/haiku/*.cc"
+ have_locale=yes
+
# The Haiku platform requires special setup.
SOURCES="$srcdir/src/main/haiku/*.cc $SOURCES"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lroot -lbe -lmedia -lgame -ldevice -ltextencoding"
@@ -3826,7 +3946,7 @@
# other spins, like x86-64, use a more standard "libstdc++.so.*"
AC_CHECK_FILE("/boot/system/lib/libstdc++.r4.so", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++.r4", EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lstdc++")
;;
- arm*-apple-darwin*|*-ios-*)
+ *-ios-*)
ARCH=ios
CheckVisibilityHidden
@@ -3838,6 +3958,13 @@
CheckMETAL
CheckVulkan
CheckPTHREAD
+
+ SOURCES="$SOURCES $srcdir/src/misc/ios/*.m"
+ have_misc=yes
+
+ # Set up files for the locale library
+ SOURCES="$SOURCES $srcdir/src/locale/macosx/*.m"
+ have_locale=yes
# Set up files for the audio library
if test x$enable_audio = xyes; then
@@ -3852,6 +3979,9 @@
SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
SOURCES="$SOURCES $srcdir/src/joystick/steam/*.c"
have_joystick=yes
+ else
+ # Need this code for accelerometer as joystick support
+ SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
fi
# Set up files for the haptic library
#if test x$enable_haptic = xyes; then
@@ -3938,6 +4068,13 @@
CheckPTHREAD
CheckHIDAPI
+ SOURCES="$SOURCES $srcdir/src/misc/macosx/*.m"
+ have_misc=yes
+
+ # Set up files for the locale library
+ SOURCES="$SOURCES $srcdir/src/locale/macosx/*.m"
+ have_locale=yes
+
# Set up files for the audio library
if test x$enable_audio = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_COREAUDIO, 1, [ ])
@@ -3950,6 +4087,8 @@
if test x$enable_joystick = xyes; then
AC_DEFINE(SDL_JOYSTICK_IOKIT, 1, [ ])
SOURCES="$SOURCES $srcdir/src/joystick/darwin/*.c"
+ SOURCES="$SOURCES $srcdir/src/joystick/iphoneos/*.m"
+ CheckJoystickMFI
have_joystick=yes
fi
# Set up files for the haptic library
@@ -4008,7 +4147,7 @@
SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
have_timers=yes
fi
-
+
if test x$enable_filesystem = xyes; then
AC_DEFINE(SDL_FILESYSTEM_NACL, 1, [ ])
SOURCES="$SOURCES $srcdir/src/filesystem/nacl/*.c"
@@ -4045,7 +4184,7 @@
SOURCES="$SOURCES $srcdir/src/power/emscripten/*.c"
have_power=yes
fi
-
+
# Set up files for the power library
if test x$enable_joystick = xyes; then
AC_DEFINE(SDL_JOYSTICK_EMSCRIPTEN, 1, [ ])
@@ -4065,6 +4204,9 @@
SOURCES="$SOURCES $srcdir/src/timer/unix/*.c"
have_timers=yes
fi
+ # Set up files for the locale library
+ SOURCES="$SOURCES $srcdir/src/locale/emscripten/*.c"
+ have_locale=yes
;;
*-*-riscos*)
ARCH=riscos
@@ -4077,6 +4219,9 @@
CheckOSS
CheckPTHREAD
CheckClockGettime
+
+ SOURCES="$SOURCES $srcdir/src/misc/riscos/*.c"
+ have_misc=yes
# Set up files for the timer library
if test x$enable_timers = xyes; then
@@ -4091,6 +4236,9 @@
])
;;
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)
@@ -4110,6 +4258,12 @@
# Verify that we have all the platform specific files we need
+if test x$have_misc != xyes; then
+ SOURCES="$SOURCES $srcdir/src/misc/dummy/*.c"
+fi
+if test x$have_locale != xyes; then
+ SOURCES="$SOURCES $srcdir/src/locale/dummy/*.c"
+fi
if test x$have_joystick != xyes; then
if test x$enable_joystick = xyes; then
AC_DEFINE(SDL_JOYSTICK_DUMMY, 1, [ ])
@@ -4194,10 +4348,10 @@
VERSION_OBJECTS=`echo $VERSION_SOURCES`
VERSION_DEPENDS=`echo $VERSION_SOURCES`
-VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.o,g'`
+VERSION_OBJECTS=`echo "$VERSION_OBJECTS" | sed 's,[[^ ]]*/\([[^ ]]*\)\.rc,$(objects)/\1.lo,g'`
VERSION_DEPENDS=`echo "$VERSION_DEPENDS" | sed "s,\\([[^ ]]*\\)/\\([[^ ]]*\\)\\.rc,\\\\
-\\$(objects)/\\2.o: \\1/\\2.rc \\$(objects)/.created\\\\
- \\$(WINDRES) \\$< \\$@,g"`
+\\$(objects)/\\2.lo: \\1/\\2.rc \\$(objects)/.created\\\\
+ \\$(RUN_CMD_RC)\\$(LIBTOOL) --mode=compile --tag=RC \\$(RC) -i \\$< -o \\$@,g"`
SDLMAIN_OBJECTS=`echo $SDLMAIN_SOURCES`
SDLMAIN_DEPENDS=`echo $SDLMAIN_SOURCES`
@@ -4215,7 +4369,7 @@
# Set runtime shared library paths as needed
-if test "x$enable_rpath" = "xyes"; then
+if test "x$enable_rpath" = "xyes" -a "x$enable_shared" = "xyes"; then
if test $ARCH = bsdi -o $ARCH = freebsd -o $ARCH = linux -o $ARCH = netbsd; then
SDL_RLD_FLAGS="-Wl,-rpath,\${libdir}"
@@ -4239,7 +4393,7 @@
SDL_RLD_FLAGS=""
fi
-SDL_STATIC_LIBS="$SDL_LIBS $EXTRA_LDFLAGS"
+SDL_STATIC_LIBS="$EXTRA_LDFLAGS"
dnl Expand the cflags and libraries needed by apps using SDL
AC_SUBST(SDL_CFLAGS)
@@ -4247,9 +4401,12 @@
AC_SUBST(SDL_STATIC_LIBS)
AC_SUBST(SDL_RLD_FLAGS)
if test x$enable_shared = xyes; then
+ PKG_CONFIG_LIBS_PRIV="
+Libs.private:"
ENABLE_SHARED_TRUE=
ENABLE_SHARED_FALSE="#"
else
+ PKG_CONFIG_LIBS_PRIV=
ENABLE_SHARED_TRUE="#"
ENABLE_SHARED_FALSE=
fi
@@ -4260,6 +4417,7 @@
ENABLE_STATIC_TRUE="#"
ENABLE_STATIC_FALSE=
fi
+AC_SUBST(PKG_CONFIG_LIBS_PRIV)
AC_SUBST(ENABLE_SHARED_TRUE)
AC_SUBST(ENABLE_SHARED_FALSE)
AC_SUBST(ENABLE_STATIC_TRUE)
@@ -4278,7 +4436,6 @@
AC_SUBST(EXTRA_CFLAGS)
AC_SUBST(BUILD_LDFLAGS)
AC_SUBST(EXTRA_LDFLAGS)
-AC_SUBST(WINDRES)
AC_SUBST(WAYLAND_SCANNER)
cat >Makefile.rules <<__EOF__
@@ -4315,6 +4472,11 @@
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
@@ -4340,7 +4502,7 @@
else
SUMMARY="${SUMMARY}Using ibus : NO\n"
fi
-if test x$have_fcitx_frontend_h_hdr = xyes; then
+if test x$have_fcitx = xyes; then
SUMMARY="${SUMMARY}Using fcitx : YES\n"
else
SUMMARY="${SUMMARY}Using fcitx : NO\n"
--
Gitblit v1.9.3