mirror of
https://git.code.sf.net/p/quake/quake2forge
synced 2025-01-31 13:01:02 +00:00
905edaed62
courtesy of configure. Some basic optimisations are added unless optimisations are explicitly disabled. Extra optimisations are added based on the cpu being built on.
453 lines
11 KiB
Text
453 lines
11 KiB
Text
dnl $Id$
|
|
dnl Process this file with autoconf to produce a configure script.
|
|
|
|
dnl stick the revision info into the resulting configure script
|
|
AC_REVISION($Revision$) dnl
|
|
AC_PREREQ(2.50)
|
|
|
|
AC_INIT(src/main.c)
|
|
AM_CONFIG_HEADER(config.h)
|
|
|
|
dnl get the build and target hosts
|
|
AC_CANONICAL_SYSTEM
|
|
AC_DEFINE_UNQUOTED(BUILDHOST, "${target_cpu}-${target_os}",
|
|
[Set to the canonical name of the target machine])
|
|
|
|
dnl set the program and version
|
|
AM_INIT_AUTOMAKE(quake2, 0.1)
|
|
AC_SUBST(PROGRAM)
|
|
AC_SUBST(VERSION)
|
|
|
|
dnl configure --enable-maintainer-mode gets some extra targets
|
|
AM_MAINTAINER_MODE
|
|
|
|
dnl -------------------
|
|
dnl Checks for programs
|
|
dnl -------------------
|
|
|
|
AC_PROG_CC
|
|
|
|
dnl libtool is evil
|
|
AC_LIBTOOL_DLOPEN
|
|
AC_LIBLTDL_CONVENIENCE
|
|
AC_PROG_LIBTOOL
|
|
AC_CONFIG_SUBDIRS(libltdl)
|
|
AC_SUBST(INCLTDL)
|
|
AC_SUBST(LIBLTDL)
|
|
|
|
HAVE_MASM=""
|
|
AC_SUBST(HAVE_MASM)
|
|
|
|
AS="$CC"
|
|
ASFLAGS="\$(DEFS) \$(CFLAGS) \$(CPPFLAGS) \$(DEFAULT_INCLUDES) \$(INCLUDES)"
|
|
CCAS="$AS"
|
|
CCASFLAGS="$ASFLAGS"
|
|
AC_SUBST(AS)
|
|
AC_SUBST(ASFLAGS)
|
|
AC_SUBST(CCAS)
|
|
AC_SUBST(CCASFLAGS)
|
|
|
|
dnl --------------------
|
|
dnl Checks for libraries
|
|
dnl --------------------
|
|
|
|
dnl Check for ossaudio on NetBSD
|
|
OSS_LIBS=""
|
|
AC_CHECK_LIB([ossaudio], [_oss_ioctl], [OSS_LIBS="-lossaudio"])
|
|
AC_SUBST(OSS_LIBS)
|
|
|
|
dnl Check for POSIX threads
|
|
ACX_PTHREAD(,AC_MSG_ERROR(["POSIX threads required!"]))
|
|
|
|
dnl Check for SVGAlib
|
|
AC_ARG_WITH(svgalib,
|
|
[ --with-svgalib=DIR use SVGAlib found in DIR],
|
|
HAVE_SVGALIB=$withval, HAVE_SVGALIB=auto)
|
|
if test "x$HAVE_SVGALIB" != xno; then
|
|
if test "x$HAVE_SVGALIB" != xauto; then
|
|
SVGALIB_CFLAGS="$SVGALIB_CFLAGS -I$withval/include"
|
|
SVGALIB_LIBS="$SVGALIB_LIBS -L$withval/lib"
|
|
dnl The default system location is /usr/include or
|
|
dnl /usr/local/include and we don't need to set CFLAGS
|
|
dnl for that
|
|
fi
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $SVGALIB_CFLAGS"
|
|
AC_CHECK_HEADER(vga.h, HAVE_SVGALIB=yes, HAVE_SVGALIB=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
dnl make sure -lvga works
|
|
if test "x$HAVE_SVGALIB" = xyes; then
|
|
AC_CHECK_LIB(vga, vga_getmousetype,
|
|
SVGALIB_LIBS="$SVGALIB_LIBS -lvga"
|
|
HAVE_SVGALIB=yes,
|
|
HAVE_SVGALIB=no,
|
|
[$SVGALIB_LIBS]
|
|
)
|
|
fi
|
|
if test "x$HAVE_SVGALIB" != xyes; then
|
|
SVGALIB_CFLAGS="" SVGALIB_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_SVGALIB)
|
|
AC_SUBST(SVGALIB_CFLAGS)
|
|
AC_SUBST(SVGALIB_LIBS)
|
|
|
|
dnl Check for GLIDE
|
|
AC_ARG_WITH(glide,
|
|
[ --with-glide=DIR use GLIDE 2.x found in DIR],
|
|
HAVE_GLIDE=$withval,
|
|
HAVE_GLIDE=auto)
|
|
if test "x$HAVE_GLIDE" != xno; then
|
|
AC_CHECK_LIB(glide, grGammaCorrectionValue,
|
|
GLIDE_LIBS="-lglide",
|
|
AC_CHECK_LIB(glide2x, grGammaCorrectionValue,
|
|
GLIDE_LIBS="-lglide2x",
|
|
GLIDE_LIBS=""
|
|
)
|
|
)
|
|
if test "x$HAVE_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, HAVE_GLIDE=yes, HAVE_GLIDE=no)
|
|
if test "x$HAVE_GLIDE" != xyes; then
|
|
HAVE_GLIDE=no
|
|
else
|
|
AC_DEFINE(HAVE_GLIDE, 1, [Define this if you have Glide])
|
|
fi
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
AC_SUBST(GLIDE_CFLAGS)
|
|
AC_SUBST(GLIDE_LIBS)
|
|
|
|
dnl Check for X11
|
|
AC_PATH_XTRA
|
|
if test "x$no_x" = x; then
|
|
HAVE_X=yes
|
|
XTRA_LIBS="-lX11"
|
|
AC_CHECK_LIB(Xext, XShmQueryExtension,
|
|
XTRA_LIBS="$XTRA_LIBS -lXext",
|
|
HAVE_X=no,
|
|
[ $X_LIBS $XTRA_LIBS $X_EXTRA_LIBS ]
|
|
)
|
|
if test "x$HAVE_X" = xyes; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
AC_CHECK_HEADER(X11/extensions/xf86vmode.h,
|
|
dnl Make sure the library works
|
|
AC_CHECK_LIB(Xxf86vm, XF86VidModeSwitchToMode,
|
|
XTRA_LIBS="$XTRA_LIBS -lXxf86vm",
|
|
HAVE_X=no,
|
|
[$X_LIBS $XTRA_LIBS $X_EXTRA_LIBS]
|
|
),
|
|
HAVE_X=no,
|
|
[#include <X11/Xlib.h>]
|
|
)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
if test "x$HAVE_X" = xyes; then
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $X_CFLAGS"
|
|
AC_CHECK_HEADER(X11/extensions/xf86dga.h,
|
|
AC_CHECK_LIB(Xxf86dga, XF86DGAQueryVersion,
|
|
XTRA_LIBS="$XTRA_LIBS -lXxf86dga",
|
|
HAVE_X=no,
|
|
[$X_LIBS $XTRA_LIBS $X_EXTRA_LIBS]
|
|
),
|
|
HAVE_X=no,
|
|
[#include <X11/Xlib.h>]
|
|
)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
fi
|
|
if test "x$HAVE_X" != xyes; then
|
|
XTRA_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_X)
|
|
AC_SUBST(XTRA_LIBS)
|
|
|
|
dnl Check for OpenGL
|
|
AC_ARG_WITH(gl,
|
|
[ --with-opengl=DIR use OpenGL in DIR ],
|
|
HAVE_OPENGL=$withval,
|
|
HAVE_OPENGL=auto)
|
|
if test "x$HAVE_OPENGL" != xno; then
|
|
if test "x$HAVE_OPENGL" != xauto; then
|
|
OPENGL_CFLAGS="$OPENGL_CFLAGS -I$withval/include"
|
|
OPENGL_LIBS="$OPENGL_LIBS -L$withval/lib"
|
|
fi
|
|
save_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS $OPENGL_CFLAGS"
|
|
AC_CHECK_HEADER(GL/gl.h, HAVE_OPENGL=yes, HAVE_OPENGL=no)
|
|
CPPFLAGS="$save_CPPFLAGS"
|
|
if test "x$HAVE_OPENGL" = xyes; then
|
|
AC_CHECK_LIB(GL, glBegin,
|
|
OPENGL_LIBS="$OPENGL_LIBS -lGL"
|
|
HAVE_OPENGL=yes,
|
|
HAVE_OPENGL=no,
|
|
[$OPENGL_LIBS]
|
|
)
|
|
fi
|
|
if test "x$HAVE_OPENGL" != xyes; then
|
|
OPENGL_CFLAGS=""
|
|
OPENGL_LIBS=""
|
|
fi
|
|
fi
|
|
AC_SUBST(HAVE_OPENGL)
|
|
AC_SUBST(OPENGL_LIBS)
|
|
AC_SUBST(OPENGL_CFLAGS)
|
|
|
|
dnl Check for SDL
|
|
AC_ARG_ENABLE(sdl,
|
|
[ --disable-sdl disable checking for SDL],
|
|
)
|
|
if test "x$enable_sdl" != xno; then
|
|
AM_PATH_SDL(1.2.0,
|
|
HAVE_SDL=yes,
|
|
HAVE_SDL=no)
|
|
AC_SUBST(HAVE_SDL)
|
|
fi
|
|
|
|
#AC_CHECK_LIB(GL, glBegin)
|
|
# FIXME: Replace `main' with a function in `-lX11':
|
|
#AC_CHECK_LIB(X11, [main])
|
|
# FIXME: Replace `main' with a function in `-lXext':
|
|
#AC_CHECK_LIB([Xext], [main])
|
|
# FIXME: Replace `main' with a function in `-lXxf86dga':
|
|
#AC_CHECK_LIB([Xxf86dga], [main])
|
|
# FIXME: Replace `main' with a function in `-lXxf86vm':
|
|
#AC_CHECK_LIB([Xxf86vm], [main])
|
|
|
|
dnl -----------------------
|
|
dnl Checks for header files
|
|
dnl -----------------------
|
|
|
|
#AC_PATH_X
|
|
#AC_HEADER_DIRENT
|
|
#AC_HEADER_STDC
|
|
dnl AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS([ sys/soundcard.h ])
|
|
|
|
dnl -------------------------------------------------------------
|
|
dnl Checks for typedefs, structures, and compiler characteristics
|
|
dnl -------------------------------------------------------------
|
|
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
AC_HEADER_TIME
|
|
AC_STRUCT_TM
|
|
AC_TYPE_UID_T
|
|
AC_TYPE_VA_LIST
|
|
|
|
AC_MSG_CHECKING(for underscore prefix in names)
|
|
AC_TRY_LINK(
|
|
[asm(".long _bar");
|
|
int bar;],
|
|
[],
|
|
AC_DEFINE(HAVE_SYM_PREFIX_UNDERSCORE, 1, [Define this if C symbols are prefixed with an underscore]) AC_MSG_RESULT(yes),
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
if test "x$ac_cv_header_sys_soundcard_h" = "xyes"; then
|
|
AC_MSG_CHECKING(for AFMT_S16_NE in sys/soundcard.h)
|
|
AC_EGREP_CPP([QF_maGiC_VALUE],
|
|
[
|
|
#include <sys/soundcard.h>
|
|
#ifdef AFMT_S16_NE
|
|
QF_maGiC_VALUE
|
|
#endif
|
|
],
|
|
HAVE_AFMT_S16_NE=yes
|
|
AC_MSG_RESULT(yes)
|
|
,
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
fi
|
|
AC_SUBST(HAVE_AFMT_S16_NE)
|
|
|
|
dnl -----------------------------
|
|
dnl Checks for library functions.
|
|
dnl -----------------------------
|
|
|
|
#AC_FUNC_ERROR_AT_LINE
|
|
#AC_PROG_GCC_TRADITIONAL
|
|
#AC_FUNC_MALLOC
|
|
#AC_FUNC_MEMCMP
|
|
#AC_FUNC_MMAP
|
|
#AC_TYPE_SIGNAL
|
|
#AC_FUNC_STAT
|
|
#AC_FUNC_VPRINTF
|
|
#AC_CHECK_FUNCS([bzero floor getcwd gethostbyname getmntent getpagesize gettimeofday memmove memset mkdir munmap pow putenv select socket sqrt strcasecmp strchr strdup strerror strrchr strstr])
|
|
AC_FUNC_VA_COPY
|
|
AC_FUNC__VA_COPY
|
|
|
|
dnl Check for dynamic loader -- needed for the GL refreshers
|
|
AC_CHECK_FUNCS(dlopen)
|
|
DL_LIBS=""
|
|
if test "x$ac_cv_func_dlopen" != "xyes"; then
|
|
AC_CHECK_LIB(dl,
|
|
dlopen,
|
|
AC_DEFINE(HAVE_DLOPEN, 1, [Define if you have the dlopen function.]) DL_LIBS="-ldl"
|
|
)
|
|
fi
|
|
AC_SUBST(DL_LIBS)
|
|
|
|
#SDL_FLAGS=`sdl-config --libs`
|
|
#AC_SUBST(SDL_FLAGS)
|
|
|
|
dnl -------------------------
|
|
dnl Optimising compiler flags
|
|
dnl -------------------------
|
|
|
|
OPT_CFLAGS=""
|
|
USE_OPT=""
|
|
AC_MSG_CHECKING(whether to allow compiler optimisations)
|
|
AC_ARG_ENABLE(opt,
|
|
[ --disable-opt disable compiler optimisations ],
|
|
AC_MSG_RESULT(optimisations disabled),
|
|
AC_MSG_RESULT(optimisations enabled)
|
|
USE_OPT="yes"
|
|
OPT_CFLAGS="$OPT_CFLAGS -O2 -ffast-math -funroll-loops -fomit-frame-pointer -fexpensive-optimizations"
|
|
)
|
|
if test "x$USE_OPT" = "xyes"; then
|
|
case "${host}" in
|
|
i?86-*-*)
|
|
OPT_CFLAGS="$OPT_CFLAGS -malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
;;
|
|
*)
|
|
;;
|
|
esac
|
|
fi
|
|
AC_SUBST(OPT_CFLAGS)
|
|
|
|
dnl -------------------
|
|
dnl Checks for asm junk
|
|
dnl -------------------
|
|
|
|
AC_MSG_CHECKING(if assembler can be used)
|
|
case "${host}" in
|
|
i?86-*-*)
|
|
AC_MSG_RESULT(yes)
|
|
AC_MSG_CHECKING(if asm is disabled)
|
|
AC_ARG_ENABLE(asm,
|
|
[ --disable-asm disable assembler optimisation ],
|
|
AC_MSG_RESULT(asm disabled),
|
|
AC_DEFINE(USE_ASM, 1, [Define this if you want to use assembler optimised code])
|
|
ASM_ARCH=yes
|
|
AC_MSG_RESULT(asm enabled)
|
|
)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac
|
|
AM_CONDITIONAL(ASM_ARCH, test "$ASM_ARCH" = "yes")
|
|
|
|
dnl ---------------------------------------------------
|
|
dnl Check if the xatrix and rogue sources are available
|
|
dnl ---------------------------------------------------
|
|
|
|
AC_MSG_CHECKING(if Xatrix missionpack source is available)
|
|
if test -f src/xatrix/g_main.c; then
|
|
AC_MSG_RESULT(yes)
|
|
DO_XATRIX=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AC_MSG_CHECKING(if Rogue missionpack source is available)
|
|
if test -f src/rogue/g_main.c; then
|
|
AC_MSG_RESULT(yes)
|
|
DO_ROGUE=yes
|
|
else
|
|
AC_MSG_RESULT(no)
|
|
fi
|
|
|
|
AM_CONDITIONAL(DO_XATRIX, test "$DO_XATRIX" = "yes")
|
|
AM_CONDITIONAL(DO_ROGUE, test "$DO_ROGUE" = "yes")
|
|
|
|
dnl ----------------------
|
|
dnl Fill in path variables
|
|
dnl ----------------------
|
|
|
|
dnl $libdir usually gets set to ${exec_prefix}/lib,
|
|
dnl $prefix and $exec_prefix is likely to be "NONE"
|
|
dnl Autoconf usually sets pkglibdir correctly in the Makefile, but not in
|
|
dnl the configure script :(
|
|
test "$prefix" = "NONE" && prefix=/usr/local
|
|
test "$exec_prefix" = "NONE" && exec_prefix=$prefix
|
|
|
|
eval PKGLIBDIR="$libdir/$PACKAGE"
|
|
AC_DEFINE_UNQUOTED(PKGLIBDIR, "$PKGLIBDIR", [Define this to the path containing the dynamic modules (\${exec-prefix}/lib/quake2/)])
|
|
|
|
eval PKGDATADIR="$datadir/$PACKAGE"
|
|
AC_DEFINE_UNQUOTED(PKGDATADIR, "$PKGDATADIR", [Define this to the path containing the game data (\${prefix}/share/quake2/)])
|
|
|
|
dnl ---------------------------------
|
|
dnl Work out what refreshers to build
|
|
dnl ---------------------------------
|
|
|
|
VID_REFS=""
|
|
|
|
if test "x$HAVE_SVGALIB" = xyes; then
|
|
VID_REFS="$VID_REFS ref_soft.la"
|
|
BUILD_SOFT="yes"
|
|
fi
|
|
|
|
if test "x$HAVE_X" = xyes; then
|
|
VID_REFS="$VID_REFS ref_softx.la"
|
|
BUILD_SOFTX="yes"
|
|
fi
|
|
|
|
if test "x$HAVE_SDL" = xyes; then
|
|
VID_REFS="$VID_REFS ref_softsdl.la"
|
|
BUILD_SOFTSDL="yes"
|
|
fi
|
|
|
|
if test "x$HAVE_X" = xyes -a "x$HAVE_OPENGL" = xyes; then
|
|
VID_REFS="$VID_REFS ref_glx.la"
|
|
BUILD_GLX="yes"
|
|
fi
|
|
|
|
if test "x$HAVE_X" = xyes -a "x$HAVE_GLIDE" = xyes -a "x$HAVE_SVGALIB" = xyes; then
|
|
VID_REFS="$VID_REFS ref_tdfx.la"
|
|
BUILD_TDFX="yes"
|
|
fi
|
|
|
|
if test "x$HAVE_X" = xyes -a "x$HAVE_OPENGL" = xyes -a "x$HAVE_SDL" = xyes; then
|
|
VID_REFS="$VID_REFS ref_sdlgl.la"
|
|
BUILD_SDLGL="yes"
|
|
fi
|
|
|
|
AM_CONDITIONAL(BUILD_SOFT, test "x$BUILD_SOFT" = xyes)
|
|
AM_CONDITIONAL(BUILD_SOFTX, test "x$BUILD_SOFTX" = xyes)
|
|
AM_CONDITIONAL(BUILD_SOFTSDL, test "x$BUILD_SOFTSDL" = xyes)
|
|
AM_CONDITIONAL(BUILD_GLX, test "x$BUILD_GLX" = xyes)
|
|
AM_CONDITIONAL(BUILD_TDFX, test "x$BUILD_TDFX" = xyes)
|
|
AM_CONDITIONAL(BUILD_SDLGL, test "x$BUILD_SDLGL" = xyes)
|
|
|
|
AC_SUBST(VID_REFS)
|
|
|
|
dnl -----------
|
|
dnl Dump it out
|
|
dnl -----------
|
|
|
|
AC_CONFIG_FILES([
|
|
Makefile
|
|
src/Makefile
|
|
src/baseq2/Makefile
|
|
src/ctf/Makefile
|
|
src/xatrix/Makefile
|
|
src/rogue/Makefile
|
|
])
|
|
AC_OUTPUT
|
|
|
|
VID_REFS=`echo $VID_REFS | sed -e 's/ref_//g' -e 's/\.la//g'`
|
|
AC_MSG_RESULT([
|
|
Video refreshers: ${VID_REFS- none}
|
|
])
|