mirror of
https://git.code.sf.net/p/quake/quakeforge-old
synced 2024-11-22 11:51:17 +00:00
5ce33303ac
cmdline to gcc. *sigh* This is the "proper"(?) way to do what we're doing. Shouldn't affect anything for win32.
915 lines
24 KiB
Text
915 lines
24 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-d
|
|
VERSION=2.40
|
|
QSG_STANDARD=1
|
|
|
|
AC_DEFINE_UNQUOTED(QF_VERSION,"$QF_VERSION")
|
|
AC_DEFINE_UNQUOTED(VERSION,"$VERSION")
|
|
AC_DEFINE_UNQUOTED(QSG_STANDARD,"$QSG_STANDARD")
|
|
|
|
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 malloc.h \
|
|
errno.h sys/dir.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/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 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))
|
|
|
|
AC_MSG_CHECKING(for ss_len in struct sockaddr_storage)
|
|
dnl maybe these two (at least the 2nd) should only be checked if ipv6
|
|
dnl is enabled?
|
|
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 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_WITH(global-cfg,
|
|
[ --with-global-cfg=FILE If set will change the name and location of the
|
|
global config file used by QuakeForge. Defaults to
|
|
\${sysconfdir}/quakeforge.con],
|
|
globalconf="$withval", globalconf="auto")
|
|
if test "x$globalconf" = "xauto" || test "x$globalconf" = "xyes" || \
|
|
test "x$globalconf" = "xno"; then dnl yes/no sanity checks
|
|
globalconf="$sysconfdir/quakeforge.conf"
|
|
fi
|
|
AC_SUBST(globalconf)
|
|
|
|
AC_ARG_ENABLE(basepath,
|
|
[ --enable-basepath use \${prefix}/games/quakeforge instead of . for game
|
|
data],
|
|
BASEPATH=$enable_basepath
|
|
)
|
|
AC_ARG_WITH(basepath,
|
|
[ --with-basepath=DIR use basepath instead of . or
|
|
\${prefix}/games/quakeforge for game data],
|
|
BASEPATH=$withval)
|
|
if test "x$BASEPATH" = xyes; then
|
|
if test "x$prefix" = xNONE; then
|
|
AC_DEFINE_UNQUOTED(FS_BASEPATH, "${ac_default_prefix}/games/quakeforge")
|
|
else
|
|
AC_DEFINE_UNQUOTED(FS_BASEPATH, "${prefix}/games/quakeforge")
|
|
fi
|
|
elif test "x$BASEPATH" = xno -o "x$BASEPATH" = x; then
|
|
AC_DEFINE(FS_BASEPATH, ".")
|
|
else
|
|
AC_DEFINE_UNQUOTED(FS_BASEPATH, "$BASEPATH")
|
|
fi
|
|
|
|
GENERATIONS=no
|
|
AC_ARG_ENABLE(generations,
|
|
[ --enable-generations enable .qz support. Requires zlib)],
|
|
GENERATIONS=$enable_generations
|
|
)
|
|
|
|
AC_ARG_ENABLE(release,
|
|
[ --enable-release compile release (with optimization)],
|
|
RELEASE=$enable_release
|
|
)
|
|
|
|
AC_ARG_WITH(ipv6,
|
|
[ --with-ipv6 enable IPv6 support. Optional argument specifies
|
|
location of inet6 libraries.],
|
|
AC_DEFINE(HAVE_IPV6)
|
|
if test "x$witharg" = xno ; then
|
|
NET_SOURCE=net_udp.c
|
|
IPV6_LIBS=""
|
|
else
|
|
NET_SOURCE=net_udp6.c
|
|
if test "x$witharg" = xyes ; then
|
|
IPV6_LIBS=""
|
|
else
|
|
IPV6_LIBS="-L${witharg}"
|
|
fi
|
|
fi
|
|
,
|
|
dnl Default is no IPv6
|
|
NET_SOURCE=net_udp.c
|
|
IPV6_LIBS=""
|
|
)
|
|
|
|
AC_ARG_ENABLE(alsa,
|
|
[ --disable-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 getaddrinfo in separate IPv6 lib, if not available by default
|
|
if test "x$ac_cv_func_getaddrinfo" = xno ; then
|
|
AC_CHECK_LIB(inet6,getaddrinfo,LIBS="${LIBS} -L${IPV6_LIBS} -linet6")
|
|
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)
|
|
if test "x$GENERATIONS" = "xyes"; then
|
|
AC_DEFINE(GENERATIONS)
|
|
fi
|
|
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=$enable_DGA)
|
|
if test "x$HAS_DGA" = xyes; 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)
|
|
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_INCLUDES="-I$OGL_INCLUDES"
|
|
else
|
|
OGL_INCLUDES="-I${x_includes:-.}"
|
|
fi
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $OGL_INCLUDES"
|
|
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
|
|
OGL_NAME=GL
|
|
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
|
|
OGL_NAME=MesaGL
|
|
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)
|
|
|
|
# 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="$TDFXGL_LIBS $GLIDE_LIBS -l$TDFXGL_NAME"
|
|
HAS_TDFXGL="yes"
|
|
AC_MSG_RESULT(yes (using $TDFXGL_NAME))
|
|
else
|
|
TDFXGL_NAME=""
|
|
TDFXGL_LIBS=""
|
|
HAS_TDFXGL="no"
|
|
AC_MSG_RESULT(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="-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])
|
|
;;
|
|
*)
|
|
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 -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 asm optimizations)
|
|
AC_ARG_ENABLE(asmopt,
|
|
[ --disable-asmopt disable assembler optimization],
|
|
ASM_ARCH=none, ASM_ARCH=i386
|
|
)
|
|
if test "x$NO_ASMOPT" = xyes; then
|
|
AC_MSG_RESULT(yes)
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
;;
|
|
*) AC_MSG_RESULT(no)
|
|
ASM_ARCH=none
|
|
esac
|
|
|
|
|
|
dnl Check for sound libraries
|
|
AC_CHECK_LIB(mme,waveOutOpen,HAVE_LIBMME=yes)
|
|
|
|
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>
|
|
#if defined (CDIOREADTOCENTRY) || defined (CDIOREADTOCENTRYS)
|
|
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
|
|
|
|
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_INCLUDES)
|
|
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(ASM_ARCH)
|
|
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)
|
|
AC_SUBST(ac_configure_args)
|
|
AC_SUBST(GENERATIONS)
|
|
|
|
dnl Output files
|
|
AC_CONFIG_HEADER(common/config.h)
|
|
AC_OUTPUT(
|
|
qw_client/Makefile
|
|
qw_server/Makefile
|
|
uquake/Makefile
|
|
common/Makefile
|
|
Makefile
|
|
Rules.mk
|
|
rpm/quakeforge.spec
|
|
rpm/build_rpm
|
|
,
|
|
chmod +x rpm/build_rpm
|
|
)
|