early-access version 2847

This commit is contained in:
pineappleEA
2022-07-19 05:48:31 +02:00
parent ba74a2373c
commit 05e3c38e7f
498 changed files with 16027 additions and 27028 deletions

View File

@@ -10,21 +10,23 @@ dnl Save the CFLAGS to see whether they were passed in or generated
orig_CFLAGS="$CFLAGS"
dnl Set various version strings - taken gratefully from the GTk sources
# See docs/release_checklist.md
#
# Making releases:
# Edit include/SDL_version.h and change the version, then:
# SDL_MICRO_VERSION += 1;
# SDL_INTERFACE_AGE += 1;
# SDL_BINARY_AGE += 1;
# if any functions have been added, set SDL_INTERFACE_AGE to 0.
# if backwards compatibility has been broken,
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
#
SDL_MAJOR_VERSION=2
SDL_MINOR_VERSION=23
SDL_MICRO_VERSION=1
SDL_MINOR_VERSION=0
SDL_MICRO_VERSION=20
SDL_INTERFACE_AGE=2
SDL_BINARY_AGE=20
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
SDL_BINARY_AGE=`expr $SDL_MINOR_VERSION \* 100 + $SDL_MICRO_VERSION`
AS_CASE(["$SDL_MINOR_VERSION"],
[*@<:@02468@:>@],
dnl Stable branch, 2.24.1 -> libSDL2-2.0.so.0.2400.1
[SDL_INTERFACE_AGE="$SDL_MICRO_VERSION"],
[*],
dnl Development branch, 2.23.1 -> libSDL2-2.0.so.0.2301.0
[SDL_INTERFACE_AGE=0])
AC_SUBST(SDL_MAJOR_VERSION)
AC_SUBST(SDL_MINOR_VERSION)
AC_SUBST(SDL_MICRO_VERSION)
@@ -36,17 +38,10 @@ AC_SUBST(SDL_VERSION)
LT_INIT([win32-dll])
LT_LANG([Windows Resource])
# For historical reasons, the library name redundantly includes the major
# version twice: libSDL2-2.0.so.0.
# TODO: in SDL 3, stop using -release, which will simplify it to libSDL3.so.0
LT_RELEASE=2.0
# Increment this if there is an incompatible change - but if that happens,
# we should rename the library from SDL2 to SDL3, at which point this would
# reset to 0 anyway.
LT_MAJOR=0
LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
LT_CURRENT=`expr $LT_MAJOR + $LT_AGE`
LT_RELEASE=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION
LT_CURRENT=`expr $SDL_MICRO_VERSION - $SDL_INTERFACE_AGE`
LT_REVISION=$SDL_INTERFACE_AGE
LT_AGE=`expr $SDL_BINARY_AGE - $SDL_INTERFACE_AGE`
m4_pattern_allow([^LT_])
AC_SUBST(LT_RELEASE)
@@ -60,14 +55,10 @@ dnl AC_CANONICAL_HOST
dnl Check for tools
AC_PROG_CC
AC_PROG_CXX
AC_PROG_EGREP
AC_PROG_INSTALL
AC_PROG_MAKE_SET
PKG_PROG_PKG_CONFIG
dnl 64-bit file offsets if possible unless --disable-largefile is specified
AC_SYS_LARGEFILE
dnl Make sure that srcdir is a full pathname
case "$host" in
*-*-mingw*)
@@ -227,10 +218,6 @@ case "$enable_assertions" in
;;
esac
AC_DEFINE_UNQUOTED([SDL_BUILD_MAJOR_VERSION], $SDL_MAJOR_VERSION, [ ])
AC_DEFINE_UNQUOTED([SDL_BUILD_MINOR_VERSION], $SDL_MINOR_VERSION, [ ])
AC_DEFINE_UNQUOTED([SDL_BUILD_MICRO_VERSION], $SDL_MICRO_VERSION, [ ])
dnl See whether we can use gcc style dependency tracking
AC_ARG_ENABLE(dependency-tracking,
[AS_HELP_STRING([--enable-dependency-tracking],
@@ -254,9 +241,10 @@ fi
AC_MSG_CHECKING(for linker option --no-undefined)
have_no_undefined=no
case "$host" in
dnl Skip this on platforms where it is just simply busted.
dnl Skip this on platforms where it is just simply busted.
*-*-openbsd*)
;;
*)
save_LDFLAGS="$LDFLAGS"
LDFLAGS="$LDFLAGS -Wl,--no-undefined"
@@ -321,20 +309,25 @@ AC_ARG_ENABLE(libc,
if test x$enable_libc = xyes; then
AC_DEFINE(HAVE_LIBC, 1, [ ])
dnl Check for C library headers
dnl AC_CHECK_INCLUDES_DEFAULT is an autoconf-2.7x thing where AC_HEADER_STDC is deprecated.
m4_ifdef([AC_CHECK_INCLUDES_DEFAULT], [AC_CHECK_INCLUDES_DEFAULT], [AC_HEADER_STDC])
dnl Check for C library headers
AC_HEADER_STDC
AC_CHECK_HEADERS(sys/types.h stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h strings.h wchar.h inttypes.h stdint.h limits.h ctype.h math.h float.h iconv.h signal.h)
dnl Check for typedefs, structures, etc.
dnl Check for typedefs, structures, etc.
AC_TYPE_SIZE_T
dnl Check for defines
dnl Check for defines
AC_CHECK_DEFINE(M_PI, math.h)
AC_FUNC_ALLOCA
dnl Checks for library functions.
case "$host" in
*-*-cygwin* | *-*-mingw*)
;;
*)
AC_FUNC_ALLOCA
;;
esac
dnl Checks for library functions.
AC_FUNC_MEMCMP
if test x$ac_cv_func_memcmp_working = xyes; then
AC_DEFINE(HAVE_MEMCMP, 1, [ ])
@@ -351,7 +344,7 @@ dnl Checks for library functions.
AC_DEFINE(HAVE_MPROTECT, 1, [ ])
],[]),
)
AC_CHECK_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv bsearch qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex 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_FUNCS(malloc calloc realloc free getenv setenv putenv unsetenv qsort abs bcopy memset memcpy memmove wcslen wcslcpy wcslcat _wcsdup wcsdup wcsstr wcscmp wcsncmp wcscasecmp _wcsicmp wcsncasecmp _wcsnicmp strlen strlcpy strlcat _strrev _strupr _strlwr index rindex 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 trunc truncf fmod fmodf log logf log10 log10f lround lroundf pow powf round roundf scalbn scalbnf sin sinf sqrt sqrtf tan tanf)
@@ -361,7 +354,7 @@ dnl Checks for library functions.
AC_CHECK_MEMBER(struct sigaction.sa_sigaction,[AC_DEFINE([HAVE_SA_SIGACTION], 1, [ ])], ,[#include <signal.h>])
dnl Check for additional non-standard headers
dnl Check for additional non-standard headers
AC_CHECK_HEADERS(libunwind.h)
fi
@@ -429,18 +422,9 @@ SOURCES="$SOURCES $srcdir/src/locale/*.c"
dnl Enable/disable various subsystems of the SDL library
case "$host" in
*-*-emscripten*)
default_atomic=no
;;
*)
default_atomic=yes
;;
esac
AC_ARG_ENABLE(atomic,
[AS_HELP_STRING([--enable-atomic], [Enable the atomic operations subsystem [default=yes]])],
, enable_atomic=$default_atomic)
, enable_atomic=yes)
if test x$enable_atomic != xyes; then
AC_DEFINE(SDL_ATOMIC_DISABLED, 1, [ ])
else
@@ -550,22 +534,6 @@ if test x$enable_file != xyes; then
else
SUMMARY_modules="${SUMMARY_modules} file"
fi
AC_ARG_ENABLE(misc,
[AS_HELP_STRING([--enable-misc], [Enable the misc subsystem [default=yes]])],
, enable_misc=yes)
if test x$enable_misc != xyes; then
AC_DEFINE(SDL_MISC_DISABLED, 1, [ ])
else
SUMMARY_modules="${SUMMARY_modules} misc"
fi
AC_ARG_ENABLE(locale,
[AS_HELP_STRING([--enable-locale], [Enable the locale subsystem [default=yes]])],
, enable_locale=yes)
if test x$enable_locale != xyes; then
AC_DEFINE(SDL_LOCALE_DISABLED, 1, [ ])
else
SUMMARY_modules="${SUMMARY_modules} locale"
fi
AC_ARG_ENABLE(loadso,
[AS_HELP_STRING([--enable-loadso], [Enable the shared object loading subsystem [default=yes]])],
, enable_loadso=yes)
@@ -588,6 +556,8 @@ AC_ARG_ENABLE(assembly,
if test x$enable_assembly = xyes; then
SUMMARY_modules="${SUMMARY_modules} assembly"
AC_DEFINE(SDL_ASSEMBLY_ROUTINES, 1, [ ])
# Make sure that we don't generate floating point code that would
# cause illegal instruction exceptions on older processors
case "$host" in
@@ -612,7 +582,7 @@ if test x$enable_assembly = xyes; then
fi
fi
dnl Check for various instruction support
dnl Check for various instruction support
AC_ARG_ENABLE(mmx,
[AS_HELP_STRING([--enable-mmx], [use MMX assembly routines [default=yes]])],
, enable_mmx=yes)
@@ -856,70 +826,6 @@ dnl Check for various instruction support
fi
fi
AC_ARG_ENABLE(lsx,
[AS_HELP_STRING([--enable-lsx], [use LSX assembly routines [default=yes]])],
, enable_lsx=yes)
if test x$enable_lsx = xyes; then
save_CFLAGS="$CFLAGS"
have_gcc_lsx=no
AC_MSG_CHECKING(for GCC -mlsx option)
lsx_CFLAGS="-mlsx"
CFLAGS="$save_CFLAGS $lsx_CFLAGS"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifndef __loongarch_sx
#error Assembler CPP flag not enabled
#endif
]], [])], [have_gcc_lsx=yes], [])
AC_MSG_RESULT($have_gcc_lsx)
CFLAGS="$save_CFLAGS"
if test x$have_gcc_lsx = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS $lsx_CFLAGS"
SUMMARY_math="${SUMMARY_math} lsx"
fi
fi
AC_MSG_CHECKING(for lsxintrin.h)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lsxintrin.h>]])],
[have_lsxintrin_h_hdr=yes],[have_lsxintrin_h_hdr=no])
AC_MSG_RESULT($have_lsxintrin_h_hdr)
if test x$have_lsxintrin_h_hdr = xyes; then
AC_DEFINE(HAVE_LSXINTRIN_H, 1, [ ])
fi
AC_ARG_ENABLE(lasx,
[AS_HELP_STRING([--enable-lasx], [use LASX assembly routines [default=yes]])],
, enable_LASX=yes)
if test x$enable_LASX = xyes; then
save_CFLAGS="$CFLAGS"
have_gcc_lasx=no
AC_MSG_CHECKING(for GCC -mlasx option)
lasx_CFLAGS="-mlasx"
CFLAGS="$save_CFLAGS $lasx_CFLAGS"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#ifndef __loongarch_asx
#error Assembler CPP flag not enabled
#endif
]], [])], [have_gcc_lasx=yes], [])
AC_MSG_RESULT($have_gcc_lasx)
CFLAGS="$save_CFLAGS"
if test x$have_gcc_lasx = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS $lasx_CFLAGS"
SUMMARY_math="${SUMMARY_math} lasx"
fi
fi
AC_MSG_CHECKING(for lasxintrin.h)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <lasxintrin.h>]])],
[have_lasxintrin_h_hdr=yes],[have_lasxintrin_h_hdr=no])
AC_MSG_RESULT($have_lasxintrin_h_hdr)
if test x$have_lasxintrin_h_hdr = xyes; then
AC_DEFINE(HAVE_LASXINTRIN_H, 1, [ ])
fi
dnl See if the OSS audio interface is supported
CheckOSS()
{
@@ -1374,7 +1280,6 @@ CheckDiskAudio()
AC_DEFINE(SDL_AUDIO_DRIVER_DISK, 1, [ ])
SOURCES="$SOURCES $srcdir/src/audio/disk/*.c"
SUMMARY_audio="${SUMMARY_audio} disk"
have_audio=yes
fi
}
@@ -1388,7 +1293,6 @@ CheckDummyAudio()
AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
SUMMARY_audio="${SUMMARY_audio} dummy"
have_audio=yes
fi
}
@@ -1499,26 +1403,6 @@ CheckNEON()
fi
}
dnl See if clang's -fobjc-arc supported.
dnl Reference: https://github.com/libsdl-org/SDL/pull/5632
CheckObjectiveCARC()
{
AC_MSG_CHECKING(for clang -fobjc-arc option)
have_clang_objc_arc=no
save_CFLAGS="$CFLAGS"
CFLAGS="$save_CFLAGS -fobjc-arc"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
int x = 0;
]],[])], [have_clang_objc_arc=yes],[])
AC_MSG_RESULT($have_clang_objc_arc)
CFLAGS="$save_CFLAGS"
if test x$have_clang_objc_arc = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS -fobjc-arc"
fi
}
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
dnl Details of this flag are here: http://gcc.gnu.org/wiki/Visibility
CheckVisibilityHidden()
@@ -1620,7 +1504,7 @@ CheckWarnAll()
if test x$have_gcc_Wall = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS -Wall"
dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
dnl Haiku headers use multicharacter constants all over the place. Ignore these warnings when using -Wall.
AC_MSG_CHECKING(for necessary GCC -Wno-multichar option)
need_gcc_Wno_multichar=no
case "$host" in
@@ -1651,7 +1535,7 @@ CheckWayland()
video_wayland=no
if test x$video_opengl_egl = xyes && \
test x$video_opengles_v2 = xyes; then
if $PKG_CONFIG --exists 'wayland-client >= 1.18' wayland-scanner wayland-egl wayland-cursor egl 'xkbcommon >= 0.5.0'; then
if $PKG_CONFIG --exists wayland-client wayland-scanner wayland-egl wayland-cursor egl 'xkbcommon >= 0.5.0'; 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`
@@ -1682,7 +1566,7 @@ dnl FIXME: Do BSD and OS X need special cases?
wayland_client_lib=[`find_lib "libwayland-client.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
wayland_egl_lib=[`find_lib "libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
if test x$wayland_egl_lib = x; then
# This works in Ubuntu 13.10, maybe others
dnl This works in Ubuntu 13.10, maybe others
wayland_egl_lib=[`find_lib "mesa-egl/libwayland-egl.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
fi
wayland_cursor_lib=[`find_lib "libwayland-cursor.so.*" "$WAYLAND_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
@@ -1722,31 +1606,39 @@ dnl FIXME: Do BSD and OS X need special cases?
dnl See if libdecor is available
AC_ARG_ENABLE(libdecor,
[AS_HELP_STRING([--enable-libdecor], [use libdecor for Wayland client-side decorations [default=yes]])],, enable_libdecor=yes)
[AS_HELP_STRING([--enable-libdecor], [use libdecor for Wayland client-side decorations [default=yes]])],
, enable_libdecor=yes)
if test x$enable_libdecor = xyes; then
PKG_CHECK_MODULES([DECOR], [libdecor-0], video_libdecor=yes, video_libdecor=no)
AC_MSG_CHECKING(for libdecor support)
AS_IF([$PKG_CONFIG --exists libdecor-0],
[video_libdecor=yes],
[video_libdecor=no])
AC_MSG_RESULT($video_libdecor)
if test x$video_libdecor = xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS $DECOR_CFLAGS"
EXTRA_CFLAGS="$EXTRA_CFLAGS `$PKG_CONFIG --cflags libdecor-0`"
AC_DEFINE(HAVE_LIBDECOR_H, 1, [ ])
AC_ARG_ENABLE(libdecor-shared,
[AS_HELP_STRING([--enable-libdecor-shared], [dynamically load libdecor [default=yes]])],, enable_libdecor_shared=yes)
decor_lib=[`find_lib "libdecor-0.so.*" "$DECOR_LIBS" | sed 's/.*\/\(.*\)/\1/; q'`]
[AS_HELP_STRING([--enable-libdecor-shared], [dynamically load libdecor [default=yes]])],
, enable_libdecor_shared=yes)
if test x$enable_wayland_shared != xyes; then
enable_libdecor_shared=no
fi
decor_lib=[`find_lib "libdecor-0.so.*" "" | sed 's/.*\/\(.*\)/\1/; q'`]
if test x$have_loadso != xyes && \
test x$enable_libdecor_shared = xyes; then
AC_MSG_WARN([You must have SDL_LoadObject() support for dynamic libdecor loading])
fi
if test x$have_loadso = xyes && \
test x$enable_libdecor_shared = xyes && test x$decor_lib != x; then
echo "-- dynamic libdecor -> $decor_lib"
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_WAYLAND_DYNAMIC_LIBDECOR, "$decor_lib", [ ])
else
EXTRA_LDFLAGS="$EXTRA_LDFLAGS $DECOR_LIBS"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS `$PKG_CONFIG --libs libdecor-0`"
fi
fi
fi
@@ -1774,10 +1666,8 @@ CheckNativeClient()
SDLMAIN_SOURCES="$srcdir/src/main/nacl/*.c"
SOURCES="$SOURCES $srcdir/src/audio/nacl/*.c"
SUMMARY_audio="${SUMMARY_audio} nacl"
have_audio=yes
SOURCES="$SOURCES $srcdir/src/video/nacl/*.c"
SUMMARY_video="${SUMMARY_video} nacl opengles2"
have_video=yes
],[])
}
@@ -1827,7 +1717,6 @@ CheckRPI()
SOURCES="$SOURCES $srcdir/src/video/raspberry/*.c"
AC_DEFINE(SDL_VIDEO_DRIVER_RPI, 1, [ ])
SUMMARY_video="${SUMMARY_video} rpi"
have_video=yes
fi
fi
}
@@ -1864,31 +1753,37 @@ CheckX11()
x11_lib='/opt/X11/lib/libX11.6.dylib'
x11ext_lib='/opt/X11/lib/libXext.6.dylib'
xcursor_lib='/opt/X11/lib/libXcursor.1.dylib'
xinerama_lib='/opt/X11/lib/libXinerama.1.dylib'
xinput_lib='/opt/X11/lib/libXi.6.dylib'
xfixes_lib='/opt/X11/lib/libXfixes.3.dylib'
xrandr_lib='/opt/X11/lib/libXrandr.2.dylib'
xrender_lib='/opt/X11/lib/libXrender.1.dylib'
xss_lib='/opt/X11/lib/libXss.1.dylib'
xvidmode_lib='/opt/X11/lib/libXxf86vm.1.dylib'
;;
*-*-openbsd*)
x11_lib='libX11.so'
x11ext_lib='libXext.so'
xcursor_lib='libXcursor.so'
xinerama_lib='libXinerama.so'
xinput_lib='libXi.so'
xfixes_lib='libXfixes.so'
xrandr_lib='libXrandr.so'
xrender_lib='libXrender.so'
xss_lib='libXss.so'
xvidmode_lib='libXxf86vm.so'
;;
*)
x11_lib=[`find_lib "libX11.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
x11ext_lib=[`find_lib "libXext.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xcursor_lib=[`find_lib "libXcursor.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xinerama_lib=[`find_lib "libXinerama.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xinput_lib=[`find_lib "libXi.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xfixes_lib=[`find_lib "libXfixes.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xrandr_lib=[`find_lib "libXrandr.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xrender_lib=[`find_lib "libXrender.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xss_lib=[`find_lib "libXss.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
xvidmode_lib=[`find_lib "libXxf86vm.so.*" "$X_LIBS -L/usr/X11/$base_libdir -L/usr/X11R6/$base_libdir" | sed 's/.*\/\(.*\)/\1/; q'`]
;;
esac
@@ -1939,6 +1834,7 @@ CheckX11()
fi
have_video=yes
dnl AC_CHECK_LIB(X11, XGetEventData, AC_DEFINE(SDL_VIDEO_DRIVER_X11_SUPPORTS_GENERIC_EVENTS, 1, [Have XGenericEvent]))
AC_MSG_CHECKING([for XGenericEvent])
have_XGenericEvent=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -2000,6 +1896,34 @@ XFreeEventData(display, cookie);
SUMMARY_video_x11="${SUMMARY_video_x11} xdbe"
fi
fi
AC_ARG_ENABLE(video-x11-xinerama,
[AS_HELP_STRING([--enable-video-x11-xinerama], [enable X11 Xinerama support [default=yes]])],
, enable_video_x11_xinerama=yes)
if test x$enable_video_x11_xinerama = xyes; then
definitely_enable_video_x11_xinerama=no
AC_CHECK_HEADER(X11/extensions/Xinerama.h,
have_xinerama_h_hdr=yes,
have_xinerama_h_hdr=no,
[#include <X11/Xlib.h>
])
if test x$have_xinerama_h_hdr = xyes; then
if test x$enable_x11_shared = xyes && test x$xinerama_lib != x ; then
echo "-- dynamic libXinerama -> $xinerama_lib"
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XINERAMA, "$xinerama_lib", [ ])
definitely_enable_video_x11_xinerama=yes
else
AC_CHECK_LIB(Xinerama, XineramaQueryExtension, have_xinerama_lib=yes)
if test x$have_xinerama_lib = xyes ; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXinerama"
definitely_enable_video_x11_xinerama=yes
fi
fi
fi
fi
if test x$definitely_enable_video_x11_xinerama = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XINERAMA, 1, [ ])
SUMMARY_video_x11="${SUMMARY_video_x11} xinerama"
fi
AC_ARG_ENABLE(video-x11-xinput,
[AS_HELP_STRING([--enable-video-x11-xinput], [enable X11 XInput extension for manymouse, tablets, etc [default=yes]])],
, enable_video_x11_xinput=yes)
@@ -2081,7 +2005,7 @@ XITouchClassInfo *t;
[AS_HELP_STRING([--enable-video-x11-xrandr], [enable X11 Xrandr extension for fullscreen [default=yes]])],
, enable_video_x11_xrandr=yes)
if test x$enable_video_x11_xrandr = xyes; then
dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test.
dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that as a test.
definitely_enable_video_x11_xrandr=no
have_xrandr_h_hdr=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -2149,6 +2073,34 @@ dnl XRRScreenResources is only present in Xrandr >= 1.2, we use that
SUMMARY_video_x11="${SUMMARY_video_x11} xshape"
fi
fi
AC_ARG_ENABLE(video-x11-vm,
[AS_HELP_STRING([--enable-video-x11-vm], [use X11 VM extension for fullscreen [default=yes]])],
, enable_video_x11_vm=yes)
if test x$enable_video_x11_vm = xyes; then
definitely_enable_video_x11_vm=no
AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
have_vm_h_hdr=yes,
have_vm_h_hdr=no,
[#include <X11/Xlib.h>
])
if test x$have_vm_h_hdr = xyes; then
if test x$enable_x11_shared = xyes && test x$xvidmode_lib != x ; then
echo "-- dynamic libXxf86vm -> $xvidmode_lib"
AC_DEFINE_UNQUOTED(SDL_VIDEO_DRIVER_X11_DYNAMIC_XVIDMODE, "$xvidmode_lib", [ ])
definitely_enable_video_x11_vm=yes
else
AC_CHECK_LIB(Xxf86vm, XF86VidModeQueryVersion, have_vm_lib=yes)
if test x$have_vm_lib = xyes ; then
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lXxf86vm"
definitely_enable_video_x11_vm=yes
fi
fi
fi
fi
if test x$definitely_enable_video_x11_vm = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_X11_XVIDMODE, 1, [ ])
SUMMARY_video_x11="${SUMMARY_video_x11} xvidmode"
fi
fi
fi
if test x$have_x != xyes; then
@@ -2215,7 +2167,7 @@ CheckCOCOA()
, enable_video_cocoa=yes)
if test x$enable_video = xyes -a x$enable_video_cocoa = xyes; then
save_CFLAGS="$CFLAGS"
dnl Work around that we don't have Objective-C support in autoconf
dnl Work around that we don't have Objective-C support in autoconf
CFLAGS="$CFLAGS -x objective-c"
AC_MSG_CHECKING(for Cocoa framework)
have_cocoa=no
@@ -2243,7 +2195,7 @@ CheckMETAL()
, enable_render_metal=yes)
if test x$enable_video = xyes -a x$enable_video_metal = xyes; then
save_CFLAGS="$CFLAGS"
dnl Work around that we don't have Objective-C support in autoconf
dnl Work around that we don't have Objective-C support in autoconf
CFLAGS="$CFLAGS -x objective-c"
AC_MSG_CHECKING(for Metal framework)
have_metal=no
@@ -2667,7 +2619,7 @@ CheckVulkan()
;;
*-*-darwin*)
save_CFLAGS="$CFLAGS"
dnl Work around that we don't have Objective-C support in autoconf
dnl Work around that we don't have Objective-C support in autoconf
CFLAGS="$CFLAGS -x objective-c"
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <Cocoa/Cocoa.h>
@@ -2702,7 +2654,7 @@ dnl Work around that we don't have Objective-C support in autoconf
dnl See if we can use the new unified event interface in Linux 2.4
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)
use_input_events=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -2722,6 +2674,7 @@ dnl Check for Linux 2.4 unified input event interface support
dnl See if we can use the kernel kd.h header
CheckInputKD()
{
AC_MSG_CHECKING(for Linux kd.h)
use_input_kd=no
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
@@ -2923,7 +2876,7 @@ CheckJoystickMFI()
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
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)
@@ -2955,15 +2908,15 @@ dnl Work around that we don't have Objective-C support in autoconf
dnl See what type of thread model to use on Linux and Solaris
CheckPTHREAD()
{
dnl Check for pthread support
dnl Check for pthread support
dnl Emscripten pthreads work, but you need to have a non-pthread fallback build
dnl for systems without support. It's not currently enough to not use
dnl pthread functions in a pthread-build; it won't start up on unsupported
dnl browsers. As such, you have to explicitly enable it on Emscripten builds
dnl for the time being. This default with change to ON once this becomes
dnl commonly supported in browsers or the Emscripten teams makes a single
dnl binary work everywhere.
dnl Emscripten pthreads work, but you need to have a non-pthread fallback build
dnl for systems without support. It's not currently enough to not use
dnl pthread functions in a pthread-build; it won't start up on unsupported
dnl browsers. As such, you have to explicitly enable it on Emscripten builds
dnl for the time being. This default with change to ON once this becomes
dnl commonly supported in browsers or the Emscripten teams makes a single
dnl binary work everywhere.
case "$host" in
*-*-emscripten*)
@@ -2977,7 +2930,7 @@ dnl binary work everywhere.
AC_ARG_ENABLE(pthreads,
[AS_HELP_STRING([--enable-pthreads], [use POSIX threads for multi-threading [default=maybe]])],
, enable_pthreads=maybe)
dnl This is used on Linux for glibc binary compatibility (Doh!)
dnl This is used on Linux for glibc binary compatibility (Doh!)
AC_ARG_ENABLE(pthread-sem,
[AS_HELP_STRING([--enable-pthread-sem], [use pthread semaphores [default=maybe]])],
, enable_pthread_sem=maybe)
@@ -3232,16 +3185,6 @@ CheckWINDOWS()
# This fixes Windows stack alignment with newer GCC
CheckStackBoundary
# headers needed elsewhere
AC_CHECK_HEADER(tpcshrd.h,have_tpcshrd_h=yes)
if test x$have_tpcshrd_h = xyes; then
AC_DEFINE(HAVE_TPCSHRD_H, 1, [ ])
fi
AC_CHECK_HEADER(roapi.h,have_roapi_h=yes)
if test x$have_roapi_h = xyes; then
AC_DEFINE(HAVE_ROAPI_H, 1, [ ])
fi
}
dnl Determine whether the compiler can produce OS/2 executables
@@ -3268,17 +3211,6 @@ CheckDIRECTX()
if test x$enable_directx = xyes; then
AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
AC_CHECK_HEADER(d3d11_1.h, have_d3d11=yes)
AC_MSG_CHECKING(for d3d12 Windows SDK version)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
#include <winsdkver.h>
#include <sdkddkver.h>
#include <d3d12.h>
ID3D12Device1 *device;
#if WDK_NTDDI_VERSION <= 0x0A000008
asdf
#endif
]])], [have_d3d12=yes],[have_d3d12=no])
AC_MSG_RESULT($have_d3d12)
AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
AC_CHECK_HEADER(dinput.h, have_dinput=yes)
@@ -3711,7 +3643,6 @@ case "$host" in
SOURCES="$SOURCES $srcdir/src/core/android/*.c $srcdir/src/video/android/*.c"
AC_DEFINE(SDL_VIDEO_DRIVER_ANDROID, 1, [ ])
SUMMARY_video="${SUMMARY_video} android"
have_video=yes
fi
;;
*-*-linux*) ARCH=linux ;;
@@ -3793,16 +3724,12 @@ case "$host" in
CheckRPATH
CheckVivanteVideo
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/unix/*.c"
have_misc=yes
fi
# Set up files for the locale library
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/unix/*.c"
have_locale=yes
fi
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
case $ARCH in
@@ -3980,16 +3907,12 @@ case "$host" in
# Set up the core platform files
SOURCES="$SOURCES $srcdir/src/core/windows/*.c"
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/windows/*.c"
have_misc=yes
fi
SOURCES="$SOURCES $srcdir/src/misc/windows/*.c"
have_misc=yes
# Use the Windows locale APIs.
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/windows/*.c"
have_locale=yes
fi
SOURCES="$SOURCES $srcdir/src/locale/windows/*.c"
have_locale=yes
# Set up files for the video library
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_WINDOWS, 1, [ ])
@@ -4006,10 +3929,6 @@ case "$host" in
AC_DEFINE(SDL_VIDEO_RENDER_D3D11, 1, [ ])
SUMMARY_video="${SUMMARY_video} d3d11"
fi
if test x$enable_render_d3d = xyes -a x$have_d3d12 = xyes; then
AC_DEFINE(SDL_VIDEO_RENDER_D3D12, 1, [ ])
SUMMARY_video="${SUMMARY_video} d3d12"
fi
fi
# Set up files for the audio library
if test x$enable_audio = xyes; then
@@ -4058,6 +3977,10 @@ case "$host" in
have_haptic=yes
fi
fi
AC_CHECK_HEADER(tpcshrd.h,have_tpcshrd_h=yes)
if test x$have_tpcshrd_h = xyes; then
AC_DEFINE(HAVE_TPCSHRD_H, 1, [ ])
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
@@ -4122,12 +4045,14 @@ case "$host" in
SDL_LIBS="-lcygwin $SDL_LIBS"
fi
;;
dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
*-*-beos*)
AC_MSG_ERROR([
*** BeOS support has been removed as of SDL 2.0.2.
])
;;
*-*-haiku*)
ARCH=haiku
ac_default_prefix=/boot/system
@@ -4172,16 +4097,14 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
SOURCES="$SOURCES $srcdir/src/filesystem/haiku/*.cc"
have_filesystem=yes
fi
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/haiku/*.cc"
have_misc=yes
fi
SOURCES="$SOURCES $srcdir/src/misc/haiku/*.cc"
have_misc=yes
# Set up files for the locale library
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/haiku/*.cc"
have_locale=yes
fi
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"
@@ -4201,16 +4124,13 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
CheckVulkan
CheckPTHREAD
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/ios/*.m"
have_misc=yes
fi
SOURCES="$SOURCES $srcdir/src/misc/ios/*.m"
have_misc=yes
# Set up files for the locale library
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/macosx/*.m"
have_locale=yes
fi
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, [ ])
@@ -4271,8 +4191,6 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES, 1, [ ])
AC_DEFINE(SDL_VIDEO_RENDER_OGL_ES2, 1, [ ])
SOURCES="$SOURCES $srcdir/src/video/uikit/*.m"
SUMMARY_video="${SUMMARY_video} uikit"
have_video=yes
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -lm -liconv -lobjc"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AVFoundation"
EXTRA_LDFLAGS="$EXTRA_LDFLAGS -Wl,-framework,AudioToolbox"
@@ -4299,7 +4217,6 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_CARBON"
EXTRA_CFLAGS="$EXTRA_CFLAGS -DTARGET_API_MAC_OSX"
CheckObjectiveCARC
CheckVisibilityHidden
CheckDeclarationAfterStatement
CheckDummyVideo
@@ -4319,16 +4236,13 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
CheckPTHREAD
CheckHIDAPI
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/macosx/*.m"
have_misc=yes
fi
SOURCES="$SOURCES $srcdir/src/misc/macosx/*.m"
have_misc=yes
# Set up files for the locale library
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/macosx/*.m"
have_locale=yes
fi
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, [ ])
@@ -4436,12 +4350,6 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
CheckClockGettime
CheckEmscriptenGLES
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/emscripten/*.c"
have_misc=yes
fi
# Set up files for the power library
if test x$enable_power = xyes; then
AC_DEFINE(SDL_POWER_EMSCRIPTEN, 1, [ ])
@@ -4449,7 +4357,7 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
have_power=yes
fi
# Set up files for the joystick library
# Set up files for the power library
if test x$enable_joystick = xyes; then
AC_DEFINE(SDL_JOYSTICK_EMSCRIPTEN, 1, [ ])
SOURCES="$SOURCES $srcdir/src/joystick/emscripten/*.c"
@@ -4469,10 +4377,8 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
have_timers=yes
fi
# Set up files for the locale library
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/emscripten/*.c"
have_locale=yes
fi
SOURCES="$SOURCES $srcdir/src/locale/emscripten/*.c"
have_locale=yes
;;
*-*-riscos*)
ARCH=riscos
@@ -4488,11 +4394,9 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
CheckPTHREAD
CheckClockGettime
# Set up files for the misc library
if test x$enable_misc = xyes; then
SOURCES="$SOURCES $srcdir/src/misc/riscos/*.c"
have_misc=yes
fi
SOURCES="$SOURCES $srcdir/src/misc/riscos/*.c"
have_misc=yes
# Set up files for the video library
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_RISCOS, 1, [ ])
@@ -4539,10 +4443,8 @@ dnl BeOS support removed after SDL 2.0.1. Haiku still works. --ryan.
SOURCES="$SOURCES $srcdir/src/core/os2/geniconv/*.c"
fi
# Use the Unix locale APIs.
if test x$enable_locale = xyes; then
SOURCES="$SOURCES $srcdir/src/locale/unix/*.c"
have_locale=yes
fi
SOURCES="$SOURCES $srcdir/src/locale/unix/*.c"
have_locale=yes
# Set up files for the video library
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_OS2, 1, [ ])
@@ -4618,28 +4520,10 @@ AC_SUBST([INSTALL_SDL2_CONFIG], [$enable_sdl2_config])
# Verify that we have all the platform specific files we need
if test x$have_audio != xyes; then
if test x$enable_audio = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_DUMMY, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/audio/dummy/*.c"
fi
if test x$have_video != xyes; then
if test x$enable_video = xyes; then
AC_DEFINE(SDL_VIDEO_DRIVER_DUMMY, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/video/dummy/*.c"
fi
if test x$have_misc != xyes; then
if test x$enable_misc = xyes; then
AC_DEFINE(SDL_MISC_DUMMY, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/misc/dummy/*.c"
fi
if test x$have_locale != xyes; then
if test x$enable_locale = xyes; then
AC_DEFINE(SDL_LOCALE_DUMMY, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/locale/dummy/*.c"
fi
if test x$have_joystick != xyes; then
@@ -4668,19 +4552,19 @@ if test x$have_threads != xyes; then
fi
if test x$have_timers != xyes; then
if test x$enable_timers = xyes; then
AC_DEFINE(SDL_TIMER_DUMMY, 1, [ ])
AC_DEFINE(SDL_TIMERS_DISABLED, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/timer/dummy/*.c"
fi
if test x$have_filesystem != xyes; then
if test x$enable_filesystem = xyes; then
AC_DEFINE(SDL_FILESYSTEM_DUMMY, 1, [ ])
AC_DEFINE(SDL_FILESYSTEM_DISABLED, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/filesystem/dummy/*.c"
fi
if test x$have_loadso != xyes; then
if test x$enable_loadso = xyes; then
AC_DEFINE(SDL_LOADSO_DUMMY, 1, [ ])
AC_DEFINE(SDL_LOADSO_DISABLED, 1, [ ])
fi
SOURCES="$SOURCES $srcdir/src/loadso/dummy/*.c"
fi
@@ -4772,17 +4656,6 @@ fi
SDL_STATIC_LIBS="$EXTRA_LDFLAGS"
dnl Calculate the location of the prefix, relative to the cmake folder
eval pkg_prefix=$prefix
eval pkg_cmakedir=$libdir/cmake/SDL2
cmake_prefix_relpath="$(echo -n "$pkg_cmakedir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
AC_SUBST([cmake_prefix_relpath])
dnl Calculate the location of the prefix, relative to bindir
eval pkg_bindir=$bindir
bin_prefix_relpath="$(echo -n "pkg_bindir" | sed -E "s#^$pkg_prefix##" | sed -E "s#[A-Za-z0-9_ .-]+#..#g" )"
AC_SUBST([bin_prefix_relpath])
dnl Expand the cflags and libraries needed by apps using SDL
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)