mirror of
https://git.code.sf.net/p/quake/nuq
synced 2024-11-22 04:01:11 +00:00
60c112bc68
print config info for sound type source/quakefs.c: fix fs_userpath handling for other game types and add support for abyss source/qargs.c: add -abyss checking include/qdefs.h: add abyss support Rudimentary support for the abyss mission pack has been added. Currently this involves just the addition of -abyss to the supported command line options (acts just like -rogue and -hipnotic) and adding abyss to the list of game directories. Any other support that's needed (as with other rogue and hipnotic modifications) has not been added as it is not known what's needed.
997 lines
26 KiB
Text
997 lines
26 KiB
Text
dnl Process this file with autoconf to produce a configure script.
|
|
AC_PREREQ(2.13)
|
|
AC_INIT(source/sv_main.c)
|
|
AC_REVISION($Revision$) dnl
|
|
AM_CONFIG_HEADER(include/config.h)
|
|
AC_CANONICAL_SYSTEM
|
|
|
|
dnl This is the only place where the package version appears
|
|
AM_INIT_AUTOMAKE(nuq, 0.2.99alpha0)
|
|
|
|
dnl Define the proper name and extra version numbers for package
|
|
PROGRAM="QuakeForge: UQuake"
|
|
QSG_VERSION=1.0
|
|
QUAKE_VERSION=1.09
|
|
|
|
AC_DEFINE_UNQUOTED(PROGRAM, "$PROGRAM")
|
|
AC_DEFINE_UNQUOTED(QSG_VERSION, "$QSG_VERSION")
|
|
AC_DEFINE_UNQUOTED(QUAKE_VERSION, "$QUAKE_VERSION")
|
|
|
|
AC_SUBST(PROGRAM)
|
|
AC_SUBST(QSG_VERSION)
|
|
AC_SUBST(QUAKE_VERSION)
|
|
|
|
dnl Start TARGETS out blank
|
|
TARGETS=""
|
|
|
|
ISODATE=`date +%Y-%m-%d`
|
|
AC_SUBST(ISODATE)
|
|
|
|
AC_LANG_C
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for programs.
|
|
dnl ==================================================================
|
|
|
|
AC_PROG_AWK
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_PROG_RANLIB
|
|
AC_PROG_INSTALL
|
|
AC_PROG_LN_S
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for system services
|
|
dnl ==================================================================
|
|
|
|
AC_SYS_LONG_FILE_NAMES
|
|
AC_EXEEXT
|
|
AC_OBJEXT
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for header files.
|
|
dnl ==================================================================
|
|
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_STDC
|
|
AC_HEADER_MAJOR
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(
|
|
stdarg.h unistd.h fcntl.h dlfcn.h windows.h sys/ioctl.h sys/mman.h \
|
|
sys/io.h asm/io.h \
|
|
sys/param.h sys/stat.h sys/time.h sys/timeb.h sys/types.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 malloc.h \
|
|
errno.h sys/dir.h fnmatch.h \
|
|
mgraph.h
|
|
)
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for typedefs, structures, and compiler characteristics
|
|
dnl ==================================================================
|
|
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
AC_STRUCT_ST_BLKSIZE
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
AC_C_BIGENDIAN
|
|
|
|
AC_MSG_CHECKING(for socklen_t in sys/types.h)
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>],
|
|
[ socklen_t x = 0;],
|
|
AC_DEFINE(HAVE_SOCKLEN_T)
|
|
AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
dnl FreeBSD 4.0 has it in sys/socket.h
|
|
AC_MSG_CHECKING(for socklen_t in sys/socket.h)
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#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 underscore prefix in names)
|
|
AC_TRY_LINK(
|
|
[asm(".long _bar");
|
|
int bar;],
|
|
[],
|
|
AC_DEFINE(HAVE_SYM_PREFIX_UNDERSCORE) 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 maybe these two (at least the 2nd) should only be checked if ipv6 is enabled?
|
|
AC_MSG_CHECKING(for ss_len in struct sockaddr_storage)
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <sys/socket.h>],
|
|
[ void f(void) { struct sockaddr_storage ss; ss.ss_len=0; }],
|
|
AC_DEFINE(HAVE_SS_LEN) AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
AC_MSG_CHECKING(for sin6_len in struct sockaddr_in6)
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <netinet/in.h>],
|
|
[ void f(void) { struct sockaddr_in6 s6; s6.sin6_len=0; }],
|
|
AC_DEFINE(HAVE_SIN6_LEN) AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
AC_MSG_CHECKING(for sa_len in struct sockaddr)
|
|
AC_TRY_COMPILE(
|
|
[#include <sys/types.h>
|
|
#include <netinet/in.h>],
|
|
[ void f(void) { struct sockaddr sa; sa.sa_len=0; }],
|
|
AC_DEFINE(HAVE_SA_LEN) AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for library functions.
|
|
dnl ==================================================================
|
|
|
|
AC_FUNC_ALLOCA
|
|
AC_FUNC_MEMCMP
|
|
AC_FUNC_MMAP
|
|
AC_TYPE_SIGNAL
|
|
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
|
|
)
|
|
|
|
DL_LIBS=""
|
|
if test "x$ac_cv_func_dlopen" != "xyes"; then
|
|
AC_CHECK_LIB(dl, dlopen,
|
|
AC_DEFINE(HAVE_DLOPEN) DL_LIBS="-ldl"
|
|
)
|
|
fi
|
|
AC_SUBST(DL_LIBS)
|
|
|
|
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 Checks for working -lm
|
|
AC_CHECK_LIB(m, pow,, AC_MSG_ERROR([math library (-lm) appears broken]))
|
|
|
|
dnl Checks for MGL support
|
|
AC_ARG_WITH(mgl,
|
|
[ --with-mgl[=DIR] use MGL found in DIR],
|
|
HAVE_MGL=$withval, HAVE_MGL=auto)
|
|
if test "x$HAVE_MGL" != xno; then
|
|
if test "x$ac_cv_header_windows_h" != "xyes"; then
|
|
HAVE_MGL=no
|
|
else
|
|
if test "x$HAVE_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, HAVE_MGL=yes, HAVE_MGL=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
dnl Make sure -lmgllt or -lmglfx works
|
|
if test "x$HAVE_MGL" = xyes; then
|
|
for lib in mglfx mgllt; do
|
|
MGL_LIBS="$MGL_LIBS -lgdi32 -lwinmm -ldinput -lddraw"
|
|
AC_CHECK_LIB($lib,MGL_registerDriver,
|
|
MGL_LIBS="-l$lib $MGL_LIBS"
|
|
HAVE_MGL=yes
|
|
break, HAVE_MGL=no, [$MGL_LIBS])
|
|
done
|
|
fi
|
|
fi
|
|
if test "x$HAVE_MGL" != xyes; then
|
|
MGL_CFLAGS="" MGL_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_MGL)
|
|
AC_SUBST(MGL_CFLAGS)
|
|
AC_SUBST(MGL_LIBS)
|
|
|
|
dnl Checks for LibGGI support
|
|
AC_ARG_WITH(ggi,
|
|
[ --with-ggi[=DIR] use LibGGI found in DIR],
|
|
HAVE_GGI=$withval, HAVE_GGI=auto)
|
|
if test "x$HAVE_GGI" != xno; then
|
|
if test "x$HAVE_GGI" != xauto; then
|
|
GGI_CFLAGS="$GGI_CFLAGS= -I$withval/include"
|
|
GGI_LIBS="$GGI_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 $GGI_CFLAGS"
|
|
AC_CHECK_HEADER(ggi/ggi.h, HAVE_GGI=yes, HAVE_GGI=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
dnl Make sure -lggi works
|
|
if test "x$HAVE_GGI" = xyes; then
|
|
AC_CHECK_LIB(ggi, ggiEventsQueued, GGI_LIBS="$GGI_LIBS -lggi"
|
|
HAVE_GGI=yes, HAVE_GGI=no, [$GGI_LIBS]
|
|
)
|
|
fi
|
|
if test "x$HAVE_GGI" != xyes; then
|
|
GGI_CFLAGS="" GGI_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_GGI)
|
|
AC_SUBST(GGI_CFLAGS)
|
|
AC_SUBST(GGI_LIBS)
|
|
|
|
dnl SDL/SDL-GL checks
|
|
AM_PATH_SDL(1.0.1, HAVE_SDL=yes, HAVE_SDL=no)
|
|
|
|
if test "x$HAVE_SDL" != xno; then
|
|
AM_CHECK_SGL(1.1.1, HAVE_SGL=yes, HAVE_SGL=no)
|
|
fi
|
|
AC_SUBST(HAVE_SDL)
|
|
AC_SUBST(HAVE_SGL)
|
|
|
|
dnl Checks for SVGALib support
|
|
AC_ARG_WITH(svga,
|
|
[ --with-svga[=DIR] use SVGALib found in DIR],
|
|
HAVE_SVGA=$withval, HAVE_SVGA=auto)
|
|
if test "x$HAVE_SVGA" != xno; then
|
|
if test "x$HAVE_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, HAVE_SVGA=yes, HAVE_SVGA=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
dnl Make sure -lvga works
|
|
if test "x$HAVE_SVGA" = xyes; then
|
|
AC_CHECK_LIB(vga, vga_getmousetype, SVGA_LIBS="$SVGA_LIBS -lvga"
|
|
HAVE_SVGA=yes, HAVE_SVGA=no, [$SVGA_LIBS]
|
|
)
|
|
fi
|
|
if test "x$HAVE_SVGA" != xyes; then
|
|
SVGA_CFLAGS="" SVGA_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_SVGA)
|
|
AC_SUBST(SVGA_CFLAGS)
|
|
AC_SUBST(SVGA_LIBS)
|
|
|
|
dnl Checks for X11 and XShm
|
|
AC_PATH_XTRA
|
|
if test "x$no_x" = x; then
|
|
HAVE_X=yes
|
|
AC_CHECK_LIB(Xext, XShmQueryExtension,
|
|
X_SHM_LIB=-lXext,
|
|
HAVE_X=no,
|
|
[ $X_LIBS -lX11 $X_EXTRA_LIBS ]
|
|
)
|
|
fi
|
|
AC_SUBST(X_SHM_LIB)
|
|
|
|
dnl Check for XFree86-VidMode support
|
|
AC_ARG_ENABLE(vidmode,
|
|
[ --enable-vidmode use XFree86 VidMode extension, if available],
|
|
HAVE_VIDMODE=$enable_vidmode, HAVE_VIDMODE=auto)
|
|
if test "x$HAVE_VIDMODE" != xno; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
|
|
AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
|
|
dnl Make sure the library works
|
|
AC_CHECK_LIB(Xxf86vm, XF86VidModeSwitchToMode,
|
|
AC_DEFINE(HAVE_VIDMODE)
|
|
VIDMODE_LIBS="-lXxf86vm",,
|
|
[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]
|
|
)
|
|
)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
AC_SUBST(VIDMODE_LIBS)
|
|
|
|
dnl Check for DGA support
|
|
AC_ARG_ENABLE(dga,
|
|
[ --enable-dga use XFree86 DGA extension, if available],
|
|
HAVE_DGA=$enable_dga, HAVE_DGA=auto)
|
|
if test "x$HAVE_DGA" != xno; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$X_CFLAGS $CPPFLAGS"
|
|
AC_CHECK_HEADER(X11/extensions/xf86dga.h,
|
|
dnl Make sure the library works
|
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryVersion,
|
|
AC_DEFINE(HAVE_DGA)
|
|
DGA_LIBS="-lXxf86dga",,
|
|
[$X_LIBS -lXext -lX11 $X_EXTRA_LIBS]
|
|
)
|
|
)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
AC_SUBST(DGA_LIBS)
|
|
|
|
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 GLX support
|
|
AC_ARG_WITH(glx,
|
|
[ --with-glx[=DIR] use GLX with libraries found in DIR],
|
|
glx_libraries=$withval, glx_libraries=auto
|
|
)
|
|
AC_ARG_WITH(glx-includes,
|
|
[ --with-glx-includes[=DIR]
|
|
use GLX with header files found in DIR],
|
|
glx_includes=$withval, glx_includes=auto
|
|
)
|
|
if test "x$glx_includes" = xno; then
|
|
glx_libraries=""
|
|
fi
|
|
if test "x$glx_librariesS" = xno; then
|
|
glx_includes=""
|
|
fi
|
|
|
|
dnl Checks for GLX headers. lib[Mesa]GL should be either in a standard
|
|
dnl include directory or the X include directory. Either way, we
|
|
dnl use X_CFLAGS.
|
|
if test "x$glx_includes" != xauto -a "x$glx_includes" != x; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS -I$glx_includes"
|
|
AC_CHECK_HEADER($glx_includes/GL/gl.h, HAVE_GLX=yes, HAVE_GLX=no )
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
else
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
AC_CHECK_HEADER(GL/gl.h, HAVE_GLX=yes, HAVE_GLX=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
dnl Checks for OpenGL features in headers
|
|
if test "x$HAVE_GLX" != 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) AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
fi
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
|
|
dnl Make sure -lGL or -lMesaGL works
|
|
if test "x$glx_libraries" != xauto -a "x$glx_libraries" != xno -a "x$glx_libraries" != x; then
|
|
if test "x$HAVE_GLX" = xyes; then
|
|
HAVE_GLX=no
|
|
AC_CHECK_LIB(GL, glColor4f,
|
|
HAVE_GLX=yes
|
|
OGL_NAME=GL,,
|
|
[ -L$glx_libraries ]
|
|
)
|
|
if test "x$HAVE_GLX" != xyes; then
|
|
AC_CHECK_LIB(MesaGL, glColor4f,
|
|
HAVE_GLX=yes
|
|
OGL_NAME=MesaGL,,
|
|
[ -L$glx_libraries ]
|
|
)
|
|
fi
|
|
if test "x$HAVE_GLX" = xyes -a "x$have_dynload" != xyes; then
|
|
AC_CHECK_LIB($OGL_NAME, XMesaSetFXmode,
|
|
AC_DEFINE(HAVE_XMESA),,
|
|
[ -L$glx_libraries ]
|
|
)
|
|
fi
|
|
fi
|
|
else
|
|
if test "x$glx_libraries" != xauto \
|
|
-o "x$glx_libraries" != xno \
|
|
-o "x$glx_libraries" != x; then
|
|
glx_libraries=""
|
|
fi
|
|
|
|
if test "x$HAVE_GLX" = xyes; then
|
|
HAVE_GLX=no
|
|
AC_CHECK_LIB(GL, glColor4f,
|
|
HAVE_GLX=yes
|
|
OGL_NAME=GL,,
|
|
[ $X_LIBS ]
|
|
)
|
|
if test "x$HAVE_GLX" != xyes; then
|
|
AC_CHECK_LIB(MesaGL, glColor4f,
|
|
HAVE_GLX=yes
|
|
OGL_NAME=MesaGL,,
|
|
[ $X_LIBS ]
|
|
)
|
|
fi
|
|
if test "x$HAVE_GLX" = xyes -a "x$have_dynload" != xyes; then
|
|
AC_CHECK_LIB($OGL_NAME, XMesaSetFXmode,
|
|
AC_DEFINE(HAVE_XMESA),,
|
|
[ $X_LIBS ]
|
|
)
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
if test "x$HAVE_GLX" = xyes; then
|
|
test "x$GLX_CFLAGS" != x && GLX_CFLAGS="-I$GLX_CFLAGS"
|
|
test "x$glx_libraries" != x && GLX_LIBS="-L$glx_libraries"
|
|
GLX_LIBS="$GLX_LIBS -l$OGL_NAME"
|
|
AC_DEFINE(HAVE_GLX)
|
|
else
|
|
GLX_CFLAGS=""
|
|
GLX_LIBS=""
|
|
fi
|
|
AC_SUBST(GLX_CFLAGS)
|
|
AC_SUBST(GLX_LIBS)
|
|
|
|
# 3Dfx stuff..
|
|
|
|
# First we see if we can use mesa with glide support..
|
|
# if not then try the MiniGL..
|
|
|
|
TDFXGL_NAME=""
|
|
AC_ARG_WITH(3dfx,
|
|
[ --with-3dfx support 3Dfx output for the V1/V2, if a argument
|
|
is specified it will be used as the GL wrapper lib
|
|
for glide.],
|
|
HAS_3dfx=$withval, HAS_3dfx=auto)
|
|
if test "x$HAS_3dfx" != "xno" -a "x$HAS_SVGA" != "xno" \
|
|
-a "x$HAS_GLIDE" != "xno"; then
|
|
if test "x$HAS_3dfx" != "xauto" -a "x$HAS_3dfx" != "xyes"; then
|
|
TDFXGL_NAME="$HAS_3dfx"
|
|
fi
|
|
if test -z "$TDFXGL_NAME"; then
|
|
dnl Check in reverse order of preference
|
|
for a in 3dfxgl $OGL_NAME; do
|
|
AC_CHECK_LIB($a, fxMesaCreateContext, TDFXGL_NAME=$a, qwfoo=qwfoo,
|
|
[$GLIDE_LIBS $TDFXGL_LIBS])
|
|
done
|
|
fi
|
|
fi
|
|
AC_MSG_CHECKING(for 3Dfx support)
|
|
if test -n "$TDFXGL_NAME"; then
|
|
TDFXGL_CFLAGS="$GLIDE_CFLAGS"
|
|
TDFXGL_LIBS="$GLIDE_LIBS -l$TDFXGL_NAME"
|
|
HAVE_TDFXGL="yes"
|
|
AC_MSG_RESULT(yes (using $TDFXGL_NAME))
|
|
else
|
|
TDFXGL_CFLAGS=""
|
|
TDFXGL_NAME=""
|
|
TDFXGL_LIBS=""
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
AC_SUBST(TDFXGL_CFLAGS)
|
|
AC_SUBST(TDFXGL_LIBS)
|
|
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for system type
|
|
dnl ==================================================================
|
|
|
|
dnl Checks for which system driver to use
|
|
AC_MSG_CHECKING(for system driver)
|
|
case "${host}" in
|
|
i?86-*-mingw32*)
|
|
SYSTYPE=WIN32
|
|
AC_MSG_RESULT([Win32 driver])
|
|
;;
|
|
*)
|
|
SYSTYPE=POSIX
|
|
AC_MSG_RESULT([default POSIX driver])
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(SYSTYPE_WIN32, test "$SYSTYPE" = "WIN32")
|
|
|
|
dnl Check for ia32
|
|
AC_MSG_CHECKING(for an ia32 machine)
|
|
case "${host}" in
|
|
i?86-*-*)
|
|
AC_MSG_RESULT(yes)
|
|
AC_MSG_CHECKING(to see if we should disable asm optimizations)
|
|
AC_ARG_ENABLE(asmopt,
|
|
[ --disable-asmopt disable assembler optimization],
|
|
AC_MSG_RESULT(yes),
|
|
AC_DEFINE(USE_INTEL_ASM)
|
|
ASM_ARCH=yes
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
;;
|
|
*) AC_MSG_RESULT(no)
|
|
esac
|
|
AM_CONDITIONAL(ASM_ARCH, test "$ASM_ARCH")
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for sound
|
|
dnl ==================================================================
|
|
|
|
AC_CHECK_LIB(mme,waveOutOpen,HAVE_LIBMME=yes)
|
|
|
|
AC_ARG_ENABLE(alsa,
|
|
[ --disable-alsa disable alsa support],
|
|
)
|
|
|
|
SNDTYPE=""
|
|
SOUND_LIBS=""
|
|
SOUND_CFLAGS=""
|
|
AC_MSG_CHECKING(for sound support)
|
|
if test "x$enable_alsa" != "xno"; then
|
|
if test -z "$SNDTYPE" -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
|
|
],
|
|
SNDTYPE="ALSA"
|
|
SOUND_LIBS="-lasound"
|
|
)
|
|
fi
|
|
fi
|
|
|
|
dnl MME
|
|
if test -z "$SNDTYPE" -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
|
|
],
|
|
SNDTYPE="MME"
|
|
SOUND_LIBS="-lmme"
|
|
)
|
|
fi
|
|
|
|
dnl OSS
|
|
if test -z "$SNDTYPE" -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
|
|
], SNDTYPE="OSS")
|
|
fi
|
|
if test -z "$SNDTYPE" -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
|
|
], SNDTYPE="OSS")
|
|
fi
|
|
if test -z "$SNDTYPE" -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
|
|
], SNDTYPE="OSS")
|
|
fi
|
|
|
|
dnl Sun
|
|
if test -z "$SNDTYPE" -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
|
|
], SNDTYPE="SUN")
|
|
fi
|
|
|
|
dnl Win32
|
|
if test -z "$SNDTYPE" -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
|
|
], SNDTYPE="WIN32"
|
|
SOUND_LIBS="-lwinmm")
|
|
fi
|
|
|
|
if test "$SNDTYPE"; then
|
|
AC_MSG_RESULT([yes ($SNDTYPE)])
|
|
else
|
|
AC_MSG_RESULT([no, using null sound driver])
|
|
fi
|
|
AC_SUBST(SOUND_LIBS)
|
|
AC_SUBST(SOUND_CFLAGS)
|
|
AM_CONDITIONAL(SNDTYPE_ALSA, test "$SNDTYPE" = "ALSA")
|
|
AM_CONDITIONAL(SNDTYPE_MME, test "$SNDTYPE" = "MME")
|
|
AM_CONDITIONAL(SNDTYPE_OSS, test "$SNDTYPE" = "OSS")
|
|
AM_CONDITIONAL(SNDTYPE_SUN, test "$SNDTYPE" = "SUN")
|
|
AM_CONDITIONAL(SNDTYPE_WIN32, test "$SNDTYPE" = "WIN32")
|
|
AM_CONDITIONAL(SNDTYPE_NULL, test "$SNDTYPE" != "ALSA" -a "$SNDTYPE" != "MME" -a "$SNDTYPE" != "OSS" -a "$SNDTYPE" != "SUN" -a "$SNDTYPE" != "WIN32")
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for CD-ROM
|
|
dnl ==================================================================
|
|
|
|
CD_LIBS=""
|
|
CD_CFLAGS=""
|
|
AC_MSG_CHECKING(for CD audio support)
|
|
|
|
dnl Linux
|
|
if test -z "$CDTYPE"; then
|
|
AC_EGREP_CPP([QF_maGiC_VALUE],
|
|
[
|
|
#include <linux/cdrom.h>
|
|
#ifdef CDROMREADTOCENTRY
|
|
QF_maGiC_VALUE
|
|
#endif
|
|
],
|
|
AC_MSG_RESULT([yes (Linux)])
|
|
CDTYPE=LINUX
|
|
)
|
|
fi
|
|
|
|
if test -z "$CDTYPE"; then
|
|
AC_EGREP_CPP([QF_maGiC_VALUE],
|
|
[
|
|
#include <sys/cdio.h>
|
|
#if defined (CDIOREADTOCENTRY) || defined (CDIOREADTOCENTRYS)
|
|
QF_maGiC_VALUE
|
|
#endif
|
|
],
|
|
AC_MSG_RESULT([yes (BSD)])
|
|
CDTYPE=BSD
|
|
)
|
|
fi
|
|
|
|
if test -z "$CDTYPE"; then
|
|
AC_EGREP_CPP([QF_maGIC_VALUE],
|
|
[
|
|
#include <windows.h>
|
|
#if defined(MCI_SET_DOOR_OPEN)
|
|
QF_maGiC_VALUE
|
|
#endif
|
|
],
|
|
AC_MSG_RESULT([yes (Win32)])
|
|
CDTYPE=WIN32
|
|
)
|
|
fi
|
|
|
|
test -z "$CDTYPE" && AC_MSG_RESULT([no, using null CD audio driver])
|
|
AC_SUBST(CD_LIBS)
|
|
AC_SUBST(CD_CFLAGS)
|
|
AM_CONDITIONAL(CDTYPE_LINUX, test "$CDTYPE" = "LINUX")
|
|
AM_CONDITIONAL(CDTYPE_BSD, test "$CDTYPE" = "BSD")
|
|
AM_CONDITIONAL(CDTYPE_WIN32, test "$CDTYPE" = "WIN32")
|
|
AM_CONDITIONAL(CDTYPE_NULL, test "$CDTYPE" != "LINUX" -a "$CDTYPE" != "BSD" -a "$CDTYPE" != "WIN32")
|
|
|
|
if test "$CDTTPE" = BSD; then
|
|
AC_HAVE_STRUCT_FIELD(struct ioc_read_toc_single_entry, entry,
|
|
[#include <sys/cdio.h>]
|
|
)
|
|
fi
|
|
|
|
dnl ==================================================================
|
|
dnl Checks for networking
|
|
dnl ==================================================================
|
|
|
|
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
|
|
|
|
|
|
if test "x$ac_cv_func_connect" != "xyes"; then
|
|
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_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no))
|
|
LIBS="$SAVELIBS"
|
|
fi
|
|
AC_SUBST(NET_LIBS)
|
|
|
|
|
|
dnl ==================================================================
|
|
dnl Misc checks
|
|
dnl ==================================================================
|
|
|
|
dnl Set $prefix and $exec_prefix to $ac_default_prefix if they are not set
|
|
test "x$prefix" = xNONE && prefix=$ac_default_prefix
|
|
test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'
|
|
|
|
AC_ARG_WITH(newstyle,
|
|
[ --with-newstyle compile with defaults a bit different than those
|
|
used by Id Software (does not affect gameplay)],
|
|
newstyle=$withval, newstyle=auto
|
|
)
|
|
AC_MSG_CHECKING([configuration style])
|
|
if test "x$newstyle" = xyes -o "x$newstyle" = "x"; then
|
|
AC_MSG_RESULT([new style])
|
|
AC_DEFINE(NEWSTYLE)
|
|
AC_DEFINE(BASEGAME, "base")
|
|
default_globalconf="/etc/$PACKAGE.conf"
|
|
eval foo="$datadir"
|
|
default_sharepath="$foo/games/quakeforge"
|
|
default_userpath="~/.quakeforge"
|
|
else
|
|
AC_MSG_RESULT([old style (id Software defaults)])
|
|
AC_DEFINE(BASEGAME, "id1")
|
|
if test "x$SYSTYPE" = xWIN32; then
|
|
default_globalconf="%WINDIR%/$PACKAGE.conf"
|
|
else
|
|
default_globalconf="/etc/$PACKAGE.conf"
|
|
fi
|
|
default_sharepath="."
|
|
default_userpath="."
|
|
fi
|
|
|
|
AC_ARG_WITH(global-cfg,
|
|
[ --with-global-cfg=FILE If set will change the name and location of the
|
|
global config file used by Thirdspace. Defaults to
|
|
/etc/quakeforge.conf.],
|
|
globalconf="$withval", globalconf="auto")
|
|
if test "x$globalconf" = "xauto" || test "x$globalconf" = "xyes" || \
|
|
test "x$globalconf" = "xno"; then dnl yes/no sanity checks
|
|
globalconf="$default_globalconf"
|
|
fi
|
|
AC_DEFINE_UNQUOTED(FS_GLOBALCFG, "$globalconf")
|
|
|
|
AC_ARG_WITH(sharepath,
|
|
[ --with-sharepath=DIR Use DIR for shared game data, defaults to
|
|
'.' or \${datadir}/games/quakeforge (if new style)],
|
|
sharepath=$withval, sharepath="auto")
|
|
if test "x$sharepath" = "xauto" -o "x$sharepath" = "xyes" -o "x$sharepath" = "x"; then
|
|
sharepath="$default_sharepath"
|
|
elif test "x$sharepath" = xno; then
|
|
sharepath="."
|
|
fi
|
|
AC_DEFINE_UNQUOTED(FS_SHAREPATH, "$sharepath")
|
|
|
|
AC_ARG_WITH(userpath,
|
|
[ --with-userpath=DIR Use DIR for unshared game data, defaults to
|
|
'.' or ~/.quakeforge (if new style)],
|
|
userpath=$withval, userpath="auto")
|
|
if test "x$userpath" = "xauto" -o "x$userpath" = "xyes" -o "x$userpath" = "x"; then
|
|
userpath="$default_userpath"
|
|
elif test "x$userpath" = xno; then
|
|
userpath="."
|
|
fi
|
|
AC_DEFINE_UNQUOTED(FS_USERPATH, "$userpath")
|
|
|
|
dnl CFLAGS for release and devel versions
|
|
AC_ARG_ENABLE(debug,
|
|
[ --enable-debug compile without optimizations (for development)],
|
|
debug=$enable_debug
|
|
)
|
|
if test "x$debug" != xyes; then
|
|
BUILD_TYPE="Standard"
|
|
if test "x$GCC" = xyes; then
|
|
CFLAGS="-O6 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
|
|
AC_MSG_CHECKING(for special compiler settings)
|
|
case "${host}" in
|
|
i386-*-*)
|
|
MORE_CFLAGS="-malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
;;
|
|
i486-*-*)
|
|
MORE_CFLAGS="-m486 -malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
;;
|
|
i586-*-*)
|
|
MORE_CFLAGS="-march=pentium -malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
;;
|
|
i686-*-*)
|
|
MORE_CFLAGS="-march=pentiumpro -malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
;;
|
|
*)
|
|
MORE_CFLAGS=""
|
|
;;
|
|
esac
|
|
if test "x$MORE_CFLAGS" = x; then
|
|
AC_MSG_RESULT(no)
|
|
else
|
|
AC_MSG_RESULT(yes)
|
|
CFLAGS="$CFLAGS $MORE_CFLAGS"
|
|
fi
|
|
else
|
|
CFLAGS=-O2
|
|
fi
|
|
else
|
|
BUILD_TYPE="Debug"
|
|
fi
|
|
|
|
dnl CFLAGS for release and devel versions
|
|
AC_ARG_ENABLE(profile,
|
|
[ --enable-profile compile with profiling (for development)],
|
|
profile=$enable_profile
|
|
)
|
|
if test "x$profile" = xyes; then
|
|
BUILD_TYPE="$BUILD_TYPE Profile"
|
|
if test "x$GCC" = xyes; then
|
|
CFLAGS="`echo $CFLAGS | sed -e 's/-fomit-frame-pointer//g'` -pg"
|
|
LDFLAGS="$LDFLAGS -pg"
|
|
else
|
|
CFLAGS="$CFLAGS -p"
|
|
fi
|
|
fi
|
|
|
|
dnl Thirdspace uses lots of BCPL-style (//) comments, which can cause problems
|
|
dnl with many compilers that don't support the latest ISO standards. Well,
|
|
dnl that is our cover story -- the reality is that we like them and don't want
|
|
dnl to give them up. :)
|
|
dnl Make the compiler swallow its pride...
|
|
if test "x$GCC" != xyes; then
|
|
AC_MSG_CHECKING(for how to deal with BCPL-style comments)
|
|
case "${host}" 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])
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(nothing needed or no switch known)
|
|
;;
|
|
esac
|
|
fi
|
|
|
|
dnl We want warnings, lots of warnings...
|
|
if test "x$GCC" = xyes; then
|
|
CFLAGS="$CFLAGS -Wall"
|
|
CFLAGS="$CFLAGS -Werror"
|
|
# CFLAGS="$CFLAGS -Wall -pedantic"
|
|
fi
|
|
|
|
dnl ==================================================================
|
|
dnl Find out what to build and finish
|
|
dnl ==================================================================
|
|
|
|
CL_TARGETS=""
|
|
if test "x$HAVE_MGL" = xyes; then
|
|
# TARGETS="$TARGETS $PACKAGE-mgl\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS MGL"
|
|
fi
|
|
if test "x$HAVE_GGI" = xyes; then
|
|
# TARGETS="$TARGETS $PACKAGE-ggi\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS GGI"
|
|
fi
|
|
if test "x$HAVE_SDL" = xyes; then
|
|
TARGETS="$TARGETS $PACKAGE-sdl\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS SDL"
|
|
fi
|
|
if test "x$HAVE_SGL" = xyes -a "x$HAVE_GLX" = xyes; then
|
|
TARGETS="$TARGETS $PACKAGE-sgl\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS SDL-GL"
|
|
fi
|
|
if test "x$HAVE_SVGA" = xyes; then
|
|
TARGETS="$TARGETS $PACKAGE-svga\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS SVGAlib"
|
|
fi
|
|
if test "x$HAVE_X" = xyes; then
|
|
TARGETS="$TARGETS $PACKAGE-x11\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS X11"
|
|
if test "x$HAVE_GLX" = xyes; then
|
|
TARGETS="$TARGETS $PACKAGE-glx\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS GLX"
|
|
fi
|
|
fi
|
|
if test "x$HAVE_TDFXGL" = xyes; then
|
|
# TARGETS="$TARGETS $PACKAGE-3dfx\$(EXEEXT)"
|
|
CL_TARGETS="$CL_TARGETS 3Dfx"
|
|
fi
|
|
AC_SUBST(TARGETS)
|
|
|
|
dnl Output files
|
|
AC_OUTPUT(
|
|
RPM/Makefile
|
|
RPM/nuq.spec
|
|
RPM/build_rpm
|
|
doc/Makefile
|
|
include/Makefile
|
|
include/win32/version.h
|
|
source/Makefile
|
|
Makefile
|
|
nuq.lsm,
|
|
chmod +x RPM/build_rpm
|
|
)
|
|
AC_MSG_RESULT([
|
|
$PROGRAM has been configured successfully.
|
|
|
|
Build type: $BUILD_TYPE
|
|
Targets:$CL_TARGETS
|
|
|
|
System game data directory: $sharepath
|
|
Per-user game data directory: $userpath
|
|
Global configuration file: $globalconf
|
|
Sound sytem: $SNDTYPE
|
|
])
|