241 lines
6.5 KiB
Plaintext
241 lines
6.5 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
dnl Set various version strings - taken gratefully from the GTk sources
|
|
# See release_checklist.md
|
|
m4_define([MAJOR_VERSION_MACRO], [2])
|
|
m4_define([MINOR_VERSION_MACRO], [2])
|
|
m4_define([MICRO_VERSION_MACRO], [0])
|
|
|
|
AC_INIT([SDL2_net],
|
|
[MAJOR_VERSION_MACRO.MINOR_VERSION_MACRO.MICRO_VERSION_MACRO],
|
|
[https://github.com/libsdl-org/SDL_net/issues],
|
|
[SDL2_net])
|
|
AC_CONFIG_MACRO_DIR([acinclude])
|
|
AC_CONFIG_SRCDIR([SDLnet.c])
|
|
|
|
AC_SUBST([MAJOR_VERSION], MAJOR_VERSION_MACRO)
|
|
AC_SUBST([MINOR_VERSION], MINOR_VERSION_MACRO)
|
|
AC_SUBST([MICRO_VERSION], MICRO_VERSION_MACRO)
|
|
|
|
BINARY_AGE=`expr $MINOR_VERSION \* 100 + $MICRO_VERSION`
|
|
AS_CASE(["$MINOR_VERSION"],
|
|
[*@<:@02468@:>@],
|
|
dnl Stable branch, 2.2.1 -> libSDL2_net-2.0.so.0.200.1
|
|
[INTERFACE_AGE="$MICRO_VERSION"],
|
|
[*],
|
|
dnl Development branch, 2.1.1 -> libSDL2_net-2.0.so.0.101.0
|
|
[INTERFACE_AGE=0])
|
|
|
|
AC_SUBST(MAJOR_VERSION)
|
|
AC_SUBST(MINOR_VERSION)
|
|
AC_SUBST(MICRO_VERSION)
|
|
AC_SUBST(INTERFACE_AGE)
|
|
AC_SUBST(BINARY_AGE)
|
|
AC_SUBST(VERSION)
|
|
|
|
dnl libtool versioning
|
|
LT_INIT([win32-dll])
|
|
|
|
# For historical reasons, the library name redundantly includes the major
|
|
# version twice: libSDL2_net-2.0.so.0.
|
|
# TODO: in SDL 3, stop using -release, which will simplify it to libSDL3_net.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_REVISION=$INTERFACE_AGE
|
|
LT_AGE=`expr $BINARY_AGE - $INTERFACE_AGE`
|
|
LT_CURRENT=`expr $LT_MAJOR + $LT_AGE`
|
|
LT_EXTRA=""
|
|
m4_pattern_allow([^LT_MAJOR$])
|
|
|
|
dnl For use in static assertions
|
|
AC_DEFINE_UNQUOTED([SDL_BUILD_MAJOR_VERSION], $MAJOR_VERSION, [ ])
|
|
AC_DEFINE_UNQUOTED([SDL_BUILD_MINOR_VERSION], $MINOR_VERSION, [ ])
|
|
AC_DEFINE_UNQUOTED([SDL_BUILD_MICRO_VERSION], $MICRO_VERSION, [ ])
|
|
|
|
AC_SUBST(LT_RELEASE)
|
|
AC_SUBST(LT_CURRENT)
|
|
AC_SUBST(LT_REVISION)
|
|
AC_SUBST(LT_AGE)
|
|
AC_SUBST(LT_EXTRA)
|
|
|
|
dnl Detect the canonical build and host environments
|
|
AC_CANONICAL_HOST
|
|
|
|
dnl Setup for automake
|
|
AM_INIT_AUTOMAKE([foreign subdir-objects tar-ustar])
|
|
|
|
dnl Check for tools
|
|
AC_PROG_CC
|
|
AC_CHECK_TOOL(RC,[windres],[:])
|
|
AC_PROG_INSTALL
|
|
AC_PROG_MAKE_SET
|
|
|
|
case "$host" in
|
|
*-*-beos*)
|
|
ac_default_prefix=/boot/develop/tools/gnupro
|
|
;;
|
|
*-*-cygwin* | *-*-mingw*)
|
|
if test "$build" != "$host"; then # cross-compiling
|
|
# Default cross-compile location
|
|
ac_default_prefix=/usr/local/cross-tools/$host
|
|
else
|
|
# Look for the location of the tools and install there
|
|
if test "$BUILD_PREFIX" != ""; then
|
|
ac_default_prefix=$BUILD_PREFIX
|
|
fi
|
|
fi
|
|
use_version_rc=true
|
|
LT_EXTRA="-Wl,version.o"
|
|
;;
|
|
*-*-os2*)
|
|
# disable static builds on os/2
|
|
enable_static=no
|
|
# -DBUILD_SDL is needed for DECLSPEC
|
|
CFLAGS="$CFLAGS -DBUILD_SDL"
|
|
# OS/2 does not support a DLL name longer than 8 characters.
|
|
LT_EXTRA="-os2dllname SDL2net"
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(USE_VERSION_RC, test x$use_version_rc = xtrue)
|
|
|
|
dnl Figure out which networking libraries to use
|
|
case "$host" in
|
|
*-*-cygwin* | *-*-mingw*)
|
|
INETLIB="-lws2_32 -liphlpapi"
|
|
;;
|
|
sparc*-*-solaris*)
|
|
INETLIB="-lsocket -lnsl"
|
|
;;
|
|
*-*-qnx*)
|
|
INETLIB="-lsocket"
|
|
;;
|
|
*-*-beos*)
|
|
INETLIB=""
|
|
;;
|
|
*-*-haiku*)
|
|
INETLIB="-lnetwork"
|
|
;;
|
|
*)
|
|
INETLIB=""
|
|
;;
|
|
esac
|
|
AC_SUBST(INETLIB)
|
|
|
|
dnl See if GCC's -Wall is supported.
|
|
CheckWarnAll()
|
|
{
|
|
AC_MSG_CHECKING(for GCC -Wall option)
|
|
have_gcc_Wall=no
|
|
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$save_CFLAGS -Wall"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int x = 0;])], [have_gcc_Wall=yes])
|
|
AC_MSG_RESULT($have_gcc_Wall)
|
|
CFLAGS="$save_CFLAGS"
|
|
|
|
if test x$have_gcc_Wall = xyes; then
|
|
CFLAGS="$CFLAGS -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
|
|
*-*-haiku*)
|
|
need_gcc_Wno_multichar=yes
|
|
;;
|
|
esac
|
|
AC_MSG_RESULT($need_gcc_Wno_multichar)
|
|
if test x$need_gcc_Wno_multichar = xyes; then
|
|
CFLAGS="$CFLAGS -Wno-multichar"
|
|
fi
|
|
fi
|
|
}
|
|
|
|
dnl See if GCC's -fvisibility=hidden is supported (gcc4 and later, usually).
|
|
CheckVisibilityHidden()
|
|
{
|
|
AC_MSG_CHECKING(for GCC -fvisibility=hidden option)
|
|
have_gcc_fvisibility=no
|
|
case "$host" in
|
|
*-*-cygwin* | *-*-mingw* | *-*-os2*)
|
|
AC_MSG_RESULT([ignored for $host_os])
|
|
return
|
|
;;
|
|
esac
|
|
|
|
visibility_CFLAGS="-fvisibility=hidden"
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="$save_CFLAGS $visibility_CFLAGS -Werror"
|
|
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
|
|
#if !defined(__GNUC__) || __GNUC__ < 4
|
|
#error SDL only uses visibility attributes in GCC 4 or newer
|
|
#endif
|
|
]],[])], [have_gcc_fvisibility=yes],[])
|
|
AC_MSG_RESULT($have_gcc_fvisibility)
|
|
CFLAGS="$save_CFLAGS"
|
|
|
|
if test x$have_gcc_fvisibility = xyes; then
|
|
CFLAGS="$CFLAGS $visibility_CFLAGS"
|
|
fi
|
|
}
|
|
|
|
AC_ARG_ENABLE([examples],
|
|
AS_HELP_STRING([--disable-examples], [Do not build example programs]),,
|
|
enable_examples=yes)
|
|
AM_CONDITIONAL(ENABLE_EXAMPLES, [test x$enable_examples = xyes])
|
|
|
|
dnl Check for SDL
|
|
SDL_VERSION=2.0.4
|
|
AC_SUBST(SDL_VERSION)
|
|
AM_PATH_SDL2($SDL_VERSION,
|
|
:,
|
|
AC_MSG_ERROR([*** SDL version $SDL_VERSION not found!])
|
|
)
|
|
CFLAGS="$CFLAGS $SDL_CFLAGS"
|
|
LIBS="$LIBS $SDL_LIBS"
|
|
|
|
dnl Calculate the location of the prefix, relative to the cmake folder
|
|
pkg_cmakedir='$libdir/cmake/SDL2_net'
|
|
AX_COMPUTE_RELATIVE_PATHS([pkg_cmakedir:prefix:cmake_prefix_relpath])
|
|
AC_SUBST([cmake_prefix_relpath])
|
|
|
|
dnl check for GCC warning options
|
|
CheckWarnAll
|
|
|
|
dnl check for GCC visibility attributes
|
|
CheckVisibilityHidden
|
|
|
|
if test x$enable_shared = xyes; then
|
|
ENABLE_SHARED_TRUE=
|
|
ENABLE_SHARED_FALSE="#"
|
|
else
|
|
ENABLE_SHARED_TRUE="#"
|
|
ENABLE_SHARED_FALSE=
|
|
fi
|
|
if test x$enable_static = xyes; then
|
|
ENABLE_STATIC_TRUE=
|
|
ENABLE_STATIC_FALSE="#"
|
|
else
|
|
ENABLE_STATIC_TRUE="#"
|
|
ENABLE_STATIC_FALSE=
|
|
fi
|
|
AC_SUBST(ENABLE_SHARED_TRUE)
|
|
AC_SUBST(ENABLE_SHARED_FALSE)
|
|
AC_SUBST(ENABLE_STATIC_TRUE)
|
|
AC_SUBST(ENABLE_STATIC_FALSE)
|
|
|
|
# Finally create all the generated files
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
sdl2_net-config.cmake
|
|
sdl2_net-config-version.cmake
|
|
SDL2_net.spec
|
|
SDL2_net.pc
|
|
])
|
|
AC_OUTPUT
|