quakeforge-old/configure.in
Joseph Carter 8ee8699d16 Sound cleanups from Marcus: snd_linux.c -> snd_oss.c, the OSS API is used
on a lot more than just Linux.  Updated Autoconf to check for OSS rather
than check for Linux and just assume OSS is there.
2000-01-02 16:18:22 +00:00

500 lines
13 KiB
Text

dnl Process this file with autoconf to produce a configure script.
AC_INIT(common/crc.h)
# Version of this release
AC_DEFINE(VERSION,"0.1.0-pre")
AC_CANONICAL_SYSTEM
AC_LANG_C
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_MAKE_SET
dnl Checks for header files.
AC_CHECK_HEADERS(unistd.h windows.h sys/ioctl.h sys/mman.h \
sys/soundcard.h linux/soundcard.h machine/soundcard.h sys/audioio.h \
dsound.h mmsystem.h mme/mmsystem.h mme/mme_public.h)
dnl checks for compiler characteristics
AC_C_BIGENDIAN
AC_ARG_ENABLE(release,
[ --enable-release compile release (with optimization)],
RELEASE=$enable_release
)
AC_SUBST(RELEASE)
dnl Checks for X11 support
AC_PATH_XTRA
if test "x$no_x" = x; then
HAS_X11=yes
AC_CHECK_LIB(Xext, XShmQueryExtension, [X11_SHM_LIB=-lXext],
[X11_SHM_LIB=""], [ $X_LIBS $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)
CPPFLAGS="$save_CPPFLAGS"
fi
dnl Checks for GGI support
GGI_CFLAGS=""
GGI_LIBS=""
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="-I$withval/include"
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
SVGA_CFLAGS=""
SVGA_LIBS=""
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="-I$withval/include"
SVGA_LIBS="-L$withval/lib"
dnl The default system location is /usr/include or /usr/local/include
dnl and we (obviously) don't 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 GLIDE support
GLIDE_CFLAGS=""
GLIDE_LIBS=""
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="-I$withval/include"
GLIDE_LIBS="-L$withval/lib"
else
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
OGL_CFLAGS=""
OGL_LIBS=""
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="-L$HAS_OGL"
fi
if test "x$OGL_INCLUDES" != xauto; then
OGL_CFLAGS="-I$OGL_INCLUDES"
else
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_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,1) 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("");],
HAS_APIENTRY=1 AC_MSG_RESULT(yes),
HAS_APIENTRY=0 AC_MSG_RESULT(no))
if test "x$HAS_APIENTRY" != xno; then
AC_DEFINE(GLAPIENTRY_IS_APIENTRY, 1)
fi
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
dnl Make sure DGA works
if test "x$HAS_DGA" = xyes; then
save_LIBS="$LIBS"
LIBS="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryVersion,,
HAS_DGA=no)
AC_CHECK_LIB(Xxf86vm, XF86VidModeSwitchToMode,,
HAS_DGA=no)
LIBS="$save_LIBS"
DGA_LIBS="-lXxf86dga -lXxf86vm"
fi
if test "x$USE_DGA" != xyes; then
USE_DGA=no DGA_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_VGA=yes, HAS_VGA=no, [$SVGA_LIBS])
fi
if test "x$HAS_SVGA" != xyes; then
SVGA_CFLAGS="" SVGA_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
save_LIBS="$LIBS"
LIBS="$X_LIBS -lXext -lX11 $X_EXTRA_LIBS $LIBS"
AC_CHECK_LIB(GL, glColor4f, OGL_LIBS="$OGL_LIBS -lGL"
HAS_OGL=yes, HAS_OGL=no, [$OGL_LIBS])
if test "x$HAS_OGL" != xyes; then
AC_CHECK_LIB(MesaGL, glColor4f, OGL_LIBS="$OGL_LIBS -lMesaGL"
HAS_OGL=yes, HAS_OGL=no, [$OGL_LIBS])
fi
LIBS="$save_LIBS"
fi
if test "x$HAS_OGL" != xyes; then
OGL_CFLAGS="" OGL_LIBS=""
fi
dnl Check for other libraries
AC_CHECK_LIB(m, pow, HAS_M=yes, HAS_M=no)
if test "x$HAS_M" != xyes; then
AC_MSG_ERROR([math library (-lm) appears broken])
fi
AC_CHECK_LIB(xil,xil_import, HAS_XIL=yes, HAS_XIL=no)
AC_SUBST(HAS_XIL)
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_VGA" != 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
AC_SUBST(X_LIBS)
AC_SUBST(X_CFLAGS)
AC_SUBST(X11_SHM_LIB)
AC_SUBST(HAS_X11)
if test "x$HAS_DGA" = xyes; then
AC_DEFINE(HAS_DGA,1)
fi
AC_SUBST(HAS_DGA)
AC_SUBST(DGA_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_DEFINE(HAVE_GL_COLOR_INDEX8_EXT, HAS_INDEX8)
AC_SUBST(HAS_TDFXGL)
AC_SUBST(TDFXGL_CFLAGS)
AC_SUBST(TDFXGL_LIBS)
dnl Checks for library functions.
AC_PROG_GCC_TRADITIONAL
AC_CHECK_FUNC(stricmp,
[STRICMP_DEF=],
AC_CHECK_FUNC(strcasecmp, [STRICMP_DEF=-Dstricmp=strcasecmp]))
AC_SUBST(STRICMP_DEF)
##########################################################
#
# Release (optimized) compiler settings (GCC only)
#
if test "x$RELEASE" = xyes; then
if test "x$GCC" = xyes; then
AC_MSG_CHECKING(for special release compiler settings)
BASE_RELEASE_CFLAGS="-Wall -O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
dnl FIX: Someone PLEASE be so kind as to make this -mcpu stuff sane?
case "${target}" in
changequote(,)dnl
i[34567]86-*-linux-gnu*)
changequote([,])dnl
case "${target_cpu}" in
changequote(,)dnl
i[456]86) CPU_SUBMODEL="-mcpu=${target_cpu}" ;;
changequote([,])dnl
esac
MORE_RELEASE_CFLAGS="${GCC_EMULATION} -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
AC_SUBST(RELEASE_CFLAGS)
##########################################################
#
# is it an intel box?
#
AC_MSG_CHECKING(for an Intel machine)
case "${target}" in
changequote(,)dnl
i[34567]86-*-linux-gnu*)
changequote([,])dnl
INTEL_ARCH=yes
AC_MSG_RESULT(yes)
;;
*) AC_MSG_RESULT(no)
esac
AC_SUBST(INTEL_ARCH)
##########################################################
#
# Sound available?
#
dnl Check for sound libraries
AC_CHECK_LIB(mme,waveOutOpen,HAVE_LIBMME=yes)
SND_LIBS=""
AC_MSG_CHECKING(for sound support)
SND_STYLE=""
if test "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
], SND_STYLE="OSS")
fi
if test -z "$SND_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
], SND_STYLE="OSS")
fi
if test -z "$SND_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
], SND_STYLE="OSS")
fi
if test -z "$SND_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
], SND_STYLE="Solaris")
fi
if test -z "$SND_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
], SND_STYLE="MME"
SND_LIBS="-lmme")
fi
if test -z "$SND_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
], SND_STYLE="Windows"
)
fi
if test "x$SND_STYLE" = "x"; then
AC_MSG_RESULT(no)
else
AC_MSG_RESULT(yes ($SND_STYLE style))
fi
AC_SUBST(SND_STYLE)
AC_SUBST(SND_LIBS)
##########################################################
#
# System driver?
#
AC_MSG_CHECKING(for system driver)
case "${target}" in
changequote(,)dnl
i[34567]86-*-linux-gnu*)
changequote([,])dnl
SYS_SRC="sys_linux.c"
QW_CL_SYS_SRC="sys_linux.c"
QW_SRV_SYS_SRC="sys_unix.c"
;;
*)
SYS_SRC="sys_unix.c"
QW_CL_SYS_SRC="sys_linux.c"
QW_SRV_SYS_SRC="sys_unix.c"
DEFAULT_SYS=yes ;;
# XXX - windows - conproc.c sys_win.c
# XXX - dos - conproc.c(?) sys_dos.c
# XXX - need to add dos, Windows
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
AC_SUBST(SYS_SRC)
AC_SUBST(QW_CL_SYS_SRC)
AC_SUBST(QW_SRV_SYS_SRC)
##########################################################
#
# X11 video driver?
#
# If Solaris, use vid_sunx.c,
# otherwise (if X available) use vid_x.c
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_x.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
AC_SUBST(X11_VID_SRC)
dnl Check for system services
AC_EXEEXT
AC_OBJEXT
##########################################################
#
# Output files
#
AC_CONFIG_HEADER(common/config.h)
AC_OUTPUT(qw_client/Makefile qw_server/Makefile uquake/Makefile Makefile)