mirror of
https://git.code.sf.net/p/quake/quake2forge
synced 2024-12-12 05:32:24 +00:00
432 lines
11 KiB
Text
432 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 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-*-*)
|
|
AC_MSG_CHECKING(whether -falign-functions works)
|
|
save_CFLAGS="$CFLAGS"
|
|
CFLAGS="-falign-functions"
|
|
AC_TRY_COMPILE(
|
|
[],
|
|
[],
|
|
OPT_CFLAGS="$OPT_CFLAGS -falign-loops=2 -falign-jumps=2 -falign-functions=2"
|
|
AC_MSG_RESULT(yes),
|
|
OPT_CFLAGS="$OPT_CFLAGS -malign-loops=2 -malign-jumps=2 -malign-functions=2"
|
|
AC_MSG_RESULT(no),
|
|
)
|
|
CFLAGS="$save_CFLAGS"
|
|
;;
|
|
*)
|
|
;;
|
|
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/games/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_OPENGL" = 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}
|
|
])
|