quake2forge/configure.in
Jamie Wilkinson 905edaed62 - Added compiler optimisations back to the Makefiles,
courtesy of configure.  Some basic optimisations are added
  unless optimisations are explicitly disabled.  Extra
  optimisations are added based on the cpu being built on.
2002-07-17 06:41:16 +00:00

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}
])