quakeforge-old/configure.in
Loring Holden 6b9563b880 Until we use libtool, we need to specify in configure.in how to create and
use shared libraries (-rdynamic and -shared does not work everywhere)

We also have to use this information in */Makefile.in
2000-02-17 16:21:23 +00:00

845 lines
22 KiB
Text

dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.13)
AC_INIT(common/crc.h)
dnl Version of this release
QF_VERSION=0.2-devel
VERSION=2.40
AC_DEFINE_UNQUOTED(QF_VERSION,"$QF_VERSION")
AC_DEFINE_UNQUOTED(VERSION,"$VERSION")
dnl Set to yes for releases
RELEASE=no
dnl Set this to no for Id defaults
NEWSTYLE=yes
AC_CANONICAL_SYSTEM
AC_LANG_C
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_MAKE_SET
AC_PROG_RANLIB
dnl Checks for header files.
AC_CHECK_HEADERS(unistd.h fcntl.h dlfcn.h windows.h sys/ioctl.h sys/mman.h \
sys/io.h asm/io.h \
sys/stat.h sys/time.h sys/timeb.h \
sys/socket.h netinet/in.h netdb.h arpa/inet.h sys/filio.h \
sys/soundcard.h linux/soundcard.h machine/soundcard.h sys/audioio.h \
dsound.h mmsystem.h initguid.h mme/mmsystem.h mme/mme_public.h \
sys/asoundlib.h string.h strings.h memory.h)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_PROG_GCC_TRADITIONAL
AC_C_CONST
AC_C_INLINE
AC_HEADER_TIME
AC_STRUCT_TM
AC_C_BIGENDIAN
AC_MSG_CHECKING(for socklen_t in sys/socket.h)
AC_TRY_COMPILE([#include <sys/socket.h>],
[ socklen_t x = 0;],
AC_DEFINE(HAVE_SOCKLEN_T) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for size_t in sys/types.h)
AC_TRY_COMPILE([#include <sys/types.h>],
[ size_t x = 0;],
AC_DEFINE(HAVE_SIZE_T) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
dnl Check for symbol underscore prefix
dnl !!! FIXME !!! Do some real check here...
AC_MSG_CHECKING(whether C symbols are prefixed by '_')
case "${target}" in
*-*-msdos* | *-*-djgpp* | *-*-mingw* | *-*-cygwin* | *-*-openbsd*)
AC_DEFINE(HAVE_SYM_PREFIX_UNDERSCORE)
AC_MSG_RESULT(yes)
;;
*)
AC_MSG_RESULT(no)
;;
esac
dnl Checks for library functions.
AC_FUNC_MMAP
AC_FUNC_VPRINTF
AC_CHECK_FUNCS(gethostname gethostbyname connect gettimeofday getwd mkdir \
ftime _ftime fcntl stat putenv select socket strerror strstr \
snprintf _snprintf vsnprintf _vsnprintf strsep dlopen getaddrinfo getnameinfo)
AC_ARG_ENABLE(experimental,
[ --enable-experimental compile with experimental code. Use at your
own risk]
)
if test "x$enable_experimental" = xyes; then
AC_DEFINE(_EXPERIMENTAL_)
fi
AC_ARG_ENABLE(newstyle,
[ --enable-newstyle compile with defaults a bit different than those
used by Id Software (does not affect gameplay)],
NEWSTYLE=$enable_newstyle
)
if test "x$NEWSTYLE" = xyes; then
AC_DEFINE(NEWSTYLE)
AC_DEFINE(GAMENAME, "base")
else
AC_DEFINE(GAMENAME, "id1")
fi
AC_ARG_ENABLE(release,
[ --enable-release compile release (with optimization)],
RELEASE=$enable_release
)
AC_ARG_ENABLE(ipv6,
[ --enable-ipv6 enable IPv6 support],
AC_DEFINE(HAVE_IPV6)
NET_SOURCE=net_udp6.c
,
NET_SOURCE=net_udp.c
)
AC_ARG_ENABLE(alsa,
[ --diable-alsa disable alsa support],
)
AC_ARG_ENABLE(zlib,
[ --disable-zlib disable zlib support],
)
dnl Checks for stricmp/strcasecmp
AC_CHECK_FUNC(stricmp,,
AC_CHECK_FUNC(strcasecmp, AC_DEFINE(stricmp,strcasecmp)))
dnl Check for vsnprintf
if test "x$ac_cv_func_vsnprintf" = "xno" -a \
"x$ac_cv_func__vsnprintf" = "xno"; then
dnl libdb may have this
AC_CHECK_LIB(db,vsnprintf)
fi
dnl Check for dlopen
if test "x$ac_cv_func_dlopen" = "xno"; then
AC_CHECK_LIB(dl, dlopen, LIBS="$LIBS -ldl"
have_dynload=yes
AC_DEFINE(HAVE_DLOPEN))
else
have_dynload=yes
fi
dnl Checks for working -lm
AC_CHECK_LIB(m, pow,, AC_MSG_ERROR([math library (-lm) appears broken]))
if test "x$enable_zlib" != "xno"; then
dnl Check for working -lz
dnl Note - must have gztell *and* gzgets in -lz *and* zlib.h
AC_CHECK_LIB(z, gztell, HAS_ZLIB=yes, HAS_ZLIB=no, [$LIBS])
if test "x$HAS_ZLIB" = "xyes"; then
AC_CHECK_LIB(z, gzgets, HAS_ZLIB=yes, HAS_ZLIB=no, [$LIBS])
if test "x$HAS_ZLIB" = "xyes"; then
AC_CHECK_HEADER(zlib.h, HAS_ZLIB=yes, HAS_ZLIB=no)
if test "x$HAS_ZLIB" = "xyes"; then
LIBS="-lz $LIBS"
AC_DEFINE(HAS_ZLIB)
fi
fi
fi
fi
dnl Checks for X11 support
dnl (XoXus: Since vid_x11.c relies on XShm being there, this now disables
dnl the X11 video driver if -lXext can not be found)
AC_PATH_XTRA
if test "x$no_x" = x; then
HAS_X11=yes
AC_CHECK_LIB(Xext, XShmQueryExtension, [X11_SHM_LIB=-lXext],
[HAS_X11="no"], [ $X_LIBS -lX11 $X_EXTRA_LIBS ])
fi
dnl Check for DGA support
AC_ARG_ENABLE(DGA,
[ --enable-DGA use XFree86 DGA extension, if available],
HAS_DGA=$enableval, HAS_DGA=auto)
if test "x$HAS_DGA" != xno; then
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(X11/extensions/xf86dga.h, HAS_DGA=yes, HAS_DGA=no)
AC_CHECK_HEADER(X11/extensions/xf86vmode.h, qwfoo=qwfoo, HAS_DGA=no)
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for VGA support
case "${target}" in
i?86-*-*djgpp* | i?86-*-*msdos*)
HAS_VGA=yes
;;
*)
HAS_VGA=no
;;
esac
dnl Checks for MGL support
AC_ARG_WITH(mgl,
[ --with-mgl=DIR use MGL found in DIR],
HAS_MGL=$withval, HAS_MGL=auto)
if test "x$HAS_MGL" != xno; then
if test "x$ac_cv_header_windows_h" != "xyes"; then
HAS_MGL=no
else
if test "x$HAS_MGL" != xauto; then
MGL_CFLAGS="$MGL_CFLAGS -I$withval/include"
MGL_LIBS="$MGL_LIBS -L$withval/lib"
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $MGL_CFLAGS"
AC_CHECK_HEADER(mgraph.h, HAS_MGL=yes, HAS_MGL=no)
CPPFLAGS="$save_CPPFLAGS"
fi
fi
dnl Checks for GGI support
AC_ARG_WITH(ggi,
[ --with-ggi=DIR use LibGGI found in DIR],
HAS_GGI=$withval, HAS_GGI=auto)
if test "x$HAS_GGI" != xno; then
if test "x$HAS_GGI" != xauto; then
GGI_CFLAGS="$GGI_CFLAGS -I$withval/include"
GGI_LIBS="$GGI_LIBS -L$withval/lib"
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $GGI_CFLAGS"
AC_CHECK_HEADER(ggi/ggi.h, HAS_GGI=yes, HAS_GGI=no)
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for SVGALib support
AC_ARG_WITH(svga,
[ --with-svga=DIR use SVGALib found in DIR],
HAS_SVGA=$withval, HAS_SVGA=auto)
if test "x$HAS_SVGA" != xno; then
if test "x$HAS_SVGA" != xauto; then
SVGA_CFLAGS="$SVGA_CFLAGS= -I$withval/include"
SVGA_LIBS="$SVGA_LIBS -L$withval/lib"
dnl The default system location is /usr/include or /usr/local/include
dnl and we (obviously) do not need to set CFLAGS for that
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $SVGA_CFLAGS"
AC_CHECK_HEADER(vga.h, HAS_SVGA=yes, HAS_SVGA=no)
if test "x$HAS_SVGA" != xyes; then
HAS_TDFXGL=no
fi
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for SDL support
AC_ARG_WITH(sdl,
[ --with-sdl=DIR use SDL found in DIR],
HAS_SDL=$withval, HAS_SDL=auto)
if test "x$HAS_SDL" != xno; then
if test "x$HAS_SDL" != xauto; then
SDL_CFLAGS="$SDL_CFLAGS -I$withval/include"
SDL_LIB="$SDL_LIBS -L$withbal/lib"
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $SDL_CFLAGS"
AC_CHECK_HEADER(SDL/SDL.h, HAS_SDL=yes, HAS_SDL=no)
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for GLIDE support
AC_ARG_WITH(glide,
[ --with-glide=DIR use the GLIDE 2.x SDK found in DIR],
HAS_GLIDE=$withval, HAS_GLIDE=auto)
if test "x$HAS_GLIDE" != xno; then
if test "x$HAS_GLIDE" != xauto; then
GLIDE_CFLAGS="$GLIDE_CFLAGS -I$withval/include"
GLIDE_LIBS="$GLIDE_LIBS -L$withval/lib"
else
GLIDE_CFLAGS="$GLIDE_CFLAGS -I/usr/include/glide -I/usr/local/include/glide"
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $GLIDE_CFLAGS"
AC_CHECK_HEADER(glide.h, HAS_GLIDE=yes, HAS_GLIDE=no)
if test "x$HAS_GLIDE" != xyes; then
HAS_GLIDE=no
fi
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for OGL support
dnl GL is a special case, we need seperate includes/libs entires
AC_ARG_WITH(opengl,
[ --with-opengl=DIR use OpenGL with libraries found in DIR],
HAS_OGL=$withval, HAS_OGL=auto)
AC_ARG_WITH(opengl-includes,
[ --with-opengl-includes=DIR
use OpenGL with header files found in DIR],
OGL_INCLUDES=$withval, OGL_INCLUDES=auto)
if test "x$OGL_INCLUDES" = xno; then
HAS_OGL="no"
fi
if test "x$HAS_OGL" != xno; then
if test "x$HAS_OGL" != xauto; then
OGL_LIBS="$OGL_LIBS -L$HAS_OGL"
fi
if test "x$OGL_INCLUDES" != xauto; then
OGL_CFLAGS="$OGL_CFLAGS -I$OGL_INCLUDES"
else
OGL_CFLAGS="$OGL_CFLAGS -I/usr/local/include -I${x_includes:-.}"
fi
save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CPPFLAGS $OGL_CFLAGS"
AC_CHECK_HEADER(GL/gl.h, HAS_OGL=yes, HAS_OGL=no)
if test "x$HAS_OGL" != xno; then
AC_CHECK_HEADER(GL/xmesa.h, HAS_XMESA=yes, HAS_XMESA=no)
AC_MSG_CHECKING(for GL_COLOR_INDEX8_EXT in GL/gl.h)
AC_TRY_COMPILE([#include "GL/gl.h"],
[ int x = (int) GL_COLOR_INDEX8_EXT;],
AC_DEFINE(HAVE_GL_COLOR_INDEX8_EXT) AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
AC_MSG_CHECKING(for GLAPIENTRY in GL/gl.h)
AC_TRY_COMPILE([#include "GL/gl.h"],
[ int x = GLAPIENTRY printf("");],
HAS_GLAPIENTRY=yes, HAS_GLAPIENTRY=no)
if test "x$HAS_GLAPIENTRY" != xno; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
AC_MSG_CHECKING(for APIENTRY in GL/gl.h)
AC_TRY_COMPILE([#include "GL/gl.h"],
[ int x = APIENTRY printf("");],
AC_DEFINE(GLAPIENTRY, APIENTRY) AC_MSG_RESULT(yes),
AC_DEFINE(GLAPIENTRY, ) AC_MSG_RESULT(no))
fi
if test "x$HAS_GLIDE" != xno; then
CPPFLAGS="$GLIDE_CFLAGS $CPPFLAGS"
AC_CHECK_HEADER(GL/fxmesa.h, HAS_FXMESA=yes, HAS_FXMESA=no)
fi
fi
CPPFLAGS="$save_CPPFLAGS"
fi
if test "x$HAS_OGL" = xyes; then
AC_DEFINE(HAS_OGL)
fi
dnl Make sure DGA works
if test "x$HAS_DGA" = xyes; then
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryVersion,qwfoo=qwfoo,
HAS_DGA=no, [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
AC_CHECK_LIB(Xxf86vm, XF86VidModeSwitchToMode,qwfoo=qwfoo,
HAS_DGA=no, [$X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
fi
if test "x$HAS_DGA" != xyes; then
DGA_LIBS=""
else
AC_DEFINE(HAS_DGA)
DGA_LIBS="-lXxf86dga -lXxf86vm"
fi
dnl Make sure -lmgllt works
if test "x$HAS_MGL" = xyes; then
MGL_LIBS="$MGL_LIBS -lgdi32 -lwinmm -ldinput -lddraw"
AC_CHECK_LIB(mgllt,MGL_registerDriver, MGL_LIBS="-lmgllt $MGL_LIBS"
HAS_MGL=yes, HAS_MGL=no, [$MGL_LIBS])
fi
if test "x$HAS_MGL" != xyes; then
MGL_CFLAGS="" MGL_LIBS=""
fi
dnl Make sure -lggi works
if test "x$HAS_GGI" = xyes; then
AC_CHECK_LIB(ggi, ggiEventsQueued, GGI_LIBS="$GGI_LIBS -lggi"
HAS_GGI=yes, HAS_GGI=no, [$GGI_LIBS])
fi
if test "x$HAS_GGI" != xyes; then
GGI_CFLAGS="" GGI_LIBS=""
fi
dnl Make sure -lvga works
if test "x$HAS_SVGA" = xyes; then
AC_CHECK_LIB(vga, vga_getmousetype, SVGA_LIBS="$SVGA_LIBS -lvga"
HAS_SVGA=yes, HAS_SVGA=no, [$SVGA_LIBS])
fi
if test "x$HAS_SVGA" != xyes; then
SVGA_CFLAGS="" SVGA_LIBS=""
fi
dnl Make sure -lpthread works (for SDL)
if test "x$HAS_SDL" = xyes; then
AC_CHECK_LIB(pthread, pthread_exit ,SDL_LIBS="$SDL_LIBS -lpthread"
HAS_SDL=yes, HAS_SDL=no, [$SDL_LIBS])
fi
if test "x$HAS_SDL" != xyes; then
SDL_CFLAGS="" SDL_LIBS=""
fi
dnl Make sure -lSDL works
if test "x$HAS_SDL" = xyes; then
AC_CHECK_LIB(SDL, SDL_Init, SDL_LIBS="$SDL_LIBS -lSDL"
HAS_SDL=yes, HAS_SDL=no, [$SDL_LIBS])
fi
if test "x$HAS_SDL" != xyes; then
SDL_CFLAGS="" SDL_LIBS=""
fi
dnl Make sure -lglide2x works
if test "x$HAS_GLIDE" = xyes; then
AC_CHECK_LIB(glide2x, main, GLIDE_LIBS="$GLIDE_LIBS -lglide2x"
HAS_GLIDE=yes, HAS_GLIDE=no, [$GLIDE_LIBS -lm])
fi
if test "x$HAS_GLIDE" != xyes; then
GLIDE_CFLAGS="" GLIDE_LIBS=""
fi
dnl Make sure -lGL or -lMesaGL works
if test "x$HAS_OGL" = xyes; then
AC_CHECK_LIB(GL, glColor4f, OGL_LIBS="$OGL_LIBS -lGL"
HAS_OGL=yes
if test "x$have_dynload" != "xyes"; then
AC_CHECK_LIB(GL, XMesaSetFXmode, qwfoo=qwfoo, HAS_XMESA=no,
[ $OGL_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
fi
,
HAS_OGL=no,
[$OGL_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
if test "x$HAS_OGL" != xyes; then
AC_CHECK_LIB(MesaGL, glColor4f, OGL_LIBS="$OGL_LIBS -lMesaGL"
HAS_OGL=yes
if test "x$have_dynload" != "xyes"; then
AC_CHECK_LIB(MesaGL, XMesaSetFXmode, qwfoo=qwfoo, HAS_XMESA=no,
[ $OGL_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
fi
,
HAS_OGL=no,
[$OGL_LIBS $X_LIBS -lXext -lX11 $X_EXTRA_LIBS])
fi
fi
if test "x$HAS_OGL" != xyes; then
OGL_CFLAGS="" OGL_LIBS=""
else
if test "x$HAS_XMESA" = xyes; then
AC_DEFINE(XMESA)
fi
fi
dnl Check for xil
AC_CHECK_LIB(xil,xil_import, HAS_XIL=yes, HAS_XIL=no)
TDFXGL_CFLAGS=""
TDFXGL_LIBS=""
TDFXGL_NAME=""
AC_ARG_WITH(3dfxgl,
[ --with-3dfxgl=DIR use 3Dfx MiniGL library found in DIR],
HAS_TDFXGL=$withval, HAS_TDFXGL=auto)
AC_ARG_WITH(3dfxgl-name,
[ --with-3dfxgl-name=NAME
use -lNAME instead of -l3dfxgl],
TDFXGL_NAME=$withval, TDFXGL_NAME=3dfxgl)
if test "x$HAS_TDFXGL" != xno; then
if test "x$HAS_TDFXGL" != xauto; then
TDFXGL_LIBS="-L$withval"
fi
if test "x$HAS_GLIDE" != x; then
if test "x$HAS_OGL" != x; then
if test "x$HAS_SVGA" != x; then
AC_CHECK_LIB($TDFXGL_NAME, glColor4f,
HAS_TDFXGL=yes, HAS_TDFXGL=no, [$GLIDE_LIBS $TDFXGL_LIBS])
fi
fi
fi
fi
if test "x$HAS_TDFXGL" = xyes; then
TDFXGL_CFLAGS="$GLIDE_CFLAGS"
TDFXGL_LIBS="$TDFXGL_LIBS $GLIDE_LIBS -l$TDFXGL_NAME"
else
TDFXGL_NAME=""
TDFXGL_LIBS=""
HAS_TDFXGL="no"
fi
dnl CFLAGS for release and devel versions
if test "x$RELEASE" = xyes; then
if test "x$GCC" = xyes; then
AC_MSG_CHECKING(for special release compiler settings)
BASE_RELEASE_CFLAGS="-Wall -Werror -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
case "${target}" in
changequote(,)dnl
i?86-*-*)
changequote([,])dnl
MORE_RELEASE_CFLAGS="-malign-loops=2 -malign-jumps=2 -malign-functions=2"
;;
*)
MORE_RELEASE_CFLAGS=""
;;
esac
if test "x$MORE_RELEASE_CFLAGS" = x; then
RELEASE_CFLAGS=-O
AC_MSG_RESULT([no])
RELEASE_CFLAGS=$BASE_RELEASE_CFLAGS
else
AC_MSG_RESULT(yes)
RELEASE_CFLAGS="$BASE_RELEASE_CFLAGS $MORE_RELEASE_CFALGS"
fi
else
RELEASE_CFLAGS=-O2
fi
fi
dnl Quakeforge code has lots of C++ comments, which cause
dnl problems with any compiler that is ANSI/ISO-C compliant.
dnl Make the compiler swallow its pride...
if test "x$GCC" != xyes; then
AC_MSG_CHECKING(for how to deal with C++ comments)
case "$target" in
*-aix*)
CFLAGS="$CFLAGS -qcpluscmt"
AC_MSG_RESULT([-qcpluscmt])
;;
*-irix6*)
CFLAGS="$CFLAGS -Xcpluscomm"
AC_MSG_RESULT([-Xcpluscomm])
;;
*-solaris*)
CFLAGS="$CFLAGS -xCC"
AC_MSG_RESULT([-xCC])
;;
default)
AC_MSG_RESULT(nothing needed or no switch known)
;;
esac
fi
dnl Until we use libtool, hardcode commands for creating a shared library
AC_MSG_CHECKING(for how to build shared libraries)
case "$target" in
*-aix*)
SHARED=''
USE_SHARED_LIBS=''
;;
i?86-*-*)
SHARED=-shared
USE_SHARED_LIBS=-rdynamic
;;
*-irix6*)
SHARED=-shared
USE_SHARED_LIBS=
;;
*-solaris*)
SHARED=-G
USE_SHARED_LIBS=
;;
esac
AC_MSG_RESULT(creating: $SHARED, using: $USE_SHARED_LIBS)
dnl Parameter to linker to make sure a shared library is created
AC_SUBST(SHARED)
dnl Parameter to linker to make sure a binary can use shared libraries
AC_SUBST(USE_SHARED_LIBS)
dnl We want warnings, lots of warnings...
if test "x$GCC" = xyes; then
CFLAGS="$CFLAGS -Wall -Werror"
fi
# CFLAGS="$CFLAGS -Wall -pedantic"
dnl Check for ia32
AC_MSG_CHECKING(for an ia32 machine)
case "${target}" in
i?86-*-*)
INTEL_ARCH=yes
AC_MSG_RESULT(yes)
AC_MSG_CHECKING(to see if we should disable x86 optimizations)
AC_ARG_ENABLE(asmopt,
[ --disable-asmopt Disable assembler optimization (on ia32 machines)],
NO_ASMOPT=yes, NO_ASMOPT=no
)
if test "x$NO_ASMOPT" = xyes; then
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
;;
*) AC_MSG_RESULT(no)
NO_ASMOPT=yes
esac
dnl Check for sound libraries
AC_CHECK_LIB(mme,waveOutOpen,HAVE_LIBMME=yes)
SOUND_LIBS=""
SOUND_STYLE=""
AC_MSG_CHECKING(for sound support)
if test "x$enable_alsa" != "xno"; then
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_asoundlib_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <sys/asoundlib.h>
#if defined(SND_LIB_MAJOR) && defined(SND_LIB_MINOR)
#if SND_LIB_MAJOR>0 || (SND_LIB_MAJOR==0 && SND_LIB_MINOR>=5)
QF_maGiC_VALUE
#endif
#endif
],[ SOUND_STYLE="ALSA" SOUND_LIBS="-lasound"])
fi
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_soundcard_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <sys/soundcard.h>
#ifdef SNDCTL_DSP_SETTRIGGER
QF_maGiC_VALUE
#endif
], SOUND_STYLE="OSS")
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_linux_soundcard_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <linux/soundcard.h>
#ifdef SNDCTL_DSP_SETTRIGGER
QF_maGiC_VALUE
#endif
], SOUND_STYLE="OSS")
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_machine_soundcard_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <machine/soundcard.h>
#ifdef SNDCTL_DSP_SETTRIGGER
QF_maGiC_VALUE
#endif
], SOUND_STYLE="OSS")
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_sys_audioio_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <sys/audioio.h>
#ifdef AUDIO_SETINFO
QF_maGiC_VALUE
#endif
], SOUND_STYLE="Solaris")
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_mme_mmsystem_h" = "xyes" -a \
"x$HAVE_LIBMME" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <mme/mmsystem.h>
#ifdef WAVE_OPEN_SHAREABLE
QF_maGiC_VALUE
#endif
], SOUND_STYLE="MME"
SOUND_LIBS="-lmme")
fi
if test -z "$SOUND_STYLE" -a "x$ac_cv_header_windows_h" = "xyes" -a \
"x$ac_cv_header_mmsystem_h" = "xyes"; then
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <windows.h>
#include <mmsystem.h>
#ifdef GMEM_MOVEABLE
#ifdef WAVE_FORMAT_PCM
QF_maGiC_VALUE
#endif
#endif
], SOUND_STYLE="Windows"
SOUND_LIBS="-lwinmm")
fi
if test "x$SOUND_STYLE" = "x"; then
AC_MSG_RESULT(no)
SOUND_STYLE="NULL"
else
AC_MSG_RESULT(yes ($SOUND_STYLE style))
fi
dnl ========================================================================
dnl Check for CD-ROM
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <linux/cdrom.h>
#ifdef CDROMREADTOCENTRY
QF_maGiC_VALUE
#endif
], AC_DEFINE(USE_LINUX_CD),
AC_EGREP_CPP([QF_maGiC_VALUE],[
#include <sys/cdio.h>
#ifdef CDIOREADTOCENTRY
QF_maGiC_VALUE
#endif
], AC_DEFINE(USE_BSD_CD))
)
AC_HAVE_STRUCT_FIELD(struct ioc_read_toc_single_entry, entry,[
#include <sys/cdio.h>
])
dnl ========================================================================
dnl Check for networking
NET_LIBS=""
dnl Check for network libraries
if test "x$ac_cv_func_connect" != "xyes"; then
AC_CHECK_LIB(socket,connect,
NET_LIBS="$NET_LIBS -lsocket"
ac_cv_func_connect=yes)
fi
if test "x$ac_cv_func_gethostbyname" != "xyes"; then
AC_CHECK_LIB(nsl,gethostbyname,
NET_LIBS="$NET_LIBS -lnsl"
ac_cv_func_gethostbyname=yes)
fi
AC_MSG_CHECKING([for connect in -lwsock32])
SAVELIBS="$LIBS"
LIBS="$LIBS -lwsock32"
AC_TRY_LINK([
#include <winsock.h>
],[
connect(0, NULL, 42);
],
NET_LIBS="$NET_LIBS -lwsock32 -lwinmm"
ac_cv_func_connect=yes
ac_cv_func_gethostbyname=yes
HAVE_WSOCK=yes
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
LIBS="$SAVELIBS"
AC_MSG_CHECKING(for UDP support)
if test "x$ac_cv_func_connect" = "xyes" -a \
"x$ac_cv_func_gethostbyname" = "xyes"; then
HAVE_UDP=yes
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
dnl Checks for which system driver to use
AC_MSG_CHECKING(for system driver)
case "${target}" in
*-*-linux-gnu*)
SYS_SRC="sys_linux.c"
QW_CL_SYS_SRC="sys_linux.c"
QW_SRV_SYS_SRC="sys_unix.c"
;;
i?86-*-mingw32*)
SYS_SRC="sys_win.c"
QW_CL_SYS_SRC="sys_win.c"
QW_SRV_SYS_SRC="sys_win.c"
;;
i?86-*-*djgpp* | i?86-*-*msdos*)
SYS_SRC="sys_dos.c"
QW_CL_SYS_SRC=""
QW_SRV_SYS_SRC=""
;;
*)
SYS_SRC="sys_unix.c"
QW_CL_SYS_SRC="sys_linux.c"
QW_SRV_SYS_SRC="sys_unix.c"
DEFAULT_SYS=yes
;;
# XXX - dos - conproc.c(?) sys_dos.c
# XXX - need to add dos
esac
if test "x$DEFAULT_SYS" = xyes; then
AC_MSG_RESULT([no, using default])
else
AC_MSG_RESULT(yes ($SYS_SRC $QW_CL_SYS_SRC $QW_SRV_SYS_SRC))
fi
dnl check for X11 video driver
AC_MSG_CHECKING(for X11 video driver)
case "${target}" in
*-solaris*)
X11_VID_SRC="vid_sunx.c" ;;
*)
if test "x$HAS_X11"; then
X11_VID_SRC="vid_x11.c";
else
X11_VID_SRC=
fi
;;
esac
if test "x$X11_VID_SRC" = x; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes ($X11_VID_SRC))
fi
dnl Check for system services
AC_EXEEXT
AC_OBJEXT
AC_SUBST(libdir)
AC_SUBST(RELEASE)
AC_SUBST(RELEASE_CFLAGS)
AC_SUBST(HAS_XIL)
AC_SUBST(X_LIBS)
AC_SUBST(X_CFLAGS)
AC_SUBST(X11_SHM_LIB)
AC_SUBST(HAS_X11)
AC_SUBST(HAS_DGA)
AC_SUBST(DGA_LIBS)
AC_SUBST(HAS_VGA)
AC_SUBST(VGA_CFLAGS)
AC_SUBST(VGA_LIBS)
AC_SUBST(HAS_MGL)
AC_SUBST(MGL_CFLAGS)
AC_SUBST(MGL_LIBS)
AC_SUBST(HAS_GGI)
AC_SUBST(GGI_CFLAGS)
AC_SUBST(GGI_LIBS)
AC_SUBST(HAS_SVGA)
AC_SUBST(SVGA_CFLAGS)
AC_SUBST(SVGA_LIBS)
AC_SUBST(HAS_GLIDE)
AC_SUBST(GLIDE_CFLAGS)
AC_SUBST(GLIDE_LIBS)
AC_SUBST(HAS_OGL)
AC_SUBST(OGL_CFLAGS)
AC_SUBST(OGL_LIBS)
AC_SUBST(HAS_TDFXGL)
AC_SUBST(TDFXGL_CFLAGS)
AC_SUBST(TDFXGL_LIBS)
AC_SUBST(HAS_SDL)
AC_SUBST(SDL_CFLAGS)
AC_SUBST(SDL_LIBS)
AC_SUBST(SOUND_STYLE)
AC_SUBST(SOUND_LIBS)
AC_SUBST(LIBS)
AC_SUBST(INTEL_ARCH)
AC_SUBST(NO_ASMOPT)
AC_SUBST(NET_LIBS)
AC_SUBST(SYS_SRC)
AC_SUBST(QW_CL_SYS_SRC)
AC_SUBST(QW_SRV_SYS_SRC)
AC_SUBST(X11_VID_SRC)
AC_SUBST(HAVE_WSOCK)
AC_SUBST(HAVE_UDP)
AC_SUBST(NET_SOURCE)
AC_SUBST(VERSION)
AC_SUBST(QF_VERSION)
dnl Output files
AC_CONFIG_HEADER(common/config.h)
AC_OUTPUT(
qw_client/Makefile
qw_server/Makefile
uquake/Makefile
common/Makefile
Makefile
rpm/quakeforge.spec
rpm/build_rpm
,
chmod +x rpm/build_rpm
)