[BACK] Return to configure.in CVS log [TXT][DIR] Up to Nevrax / code / nel

File: Nevrax / code / nel / configure.in (download)
Revision 1.34, Thu Apr 12 12:41:49 2001 UTC (15 months, 1 week ago) by dayta_at_ucc.gu.uwa.edu.au
Branch: MAIN
Changes since 1.33: +28 -4 lines
ADDED the X11 fullscreen mode feature.

dnl
dnl Configuration script for NeL
dnl
dnl $Id: configure.in,v 1.34 2001/04/12 12:41:49 dayta_at_ucc.gu.uwa.edu.au Exp $
dnl 

dnl Process this file with autoconf to produce a configure script.

AC_INIT(include/nel/nel.h)


dnl MAJOR_VERSION correspond to the CURRENT interface number.
dnl MINOR_VERSION correspond to the interface's REVISION (implementation)
dnl               number.
dnl PICO_VERSION correspond to the interface's AGE, which is the number
dnl              of previous additional interfaces supported by this library.
dnl              It must be less than or equal to CURRENT.

MAJOR_VERSION=0
MINOR_VERSION=3
PICO_VERSION=0

VERSION=$MAJOR_VERSION.$MINOR_VERSION.$PICO_VERSION

AM_INIT_AUTOMAKE(nel,$VERSION)

LIBTOOL_VERSION=$MAJOR_VERSION:$MINOR_VERSION:$PICO_VERSION

AC_SUBST(VERSION)
AC_SUBST(LIBTOOL_VERSION)

AM_CONFIG_HEADER(include/nelconfig.h)


dnl The following hack should ensure that configure doesn't add optimizing
dnl or debugging flags to CFLAGS or CXXFLAGS
CFLAGS="$CFLAGS "
CXXFLAGS="$CXXFLAGS "


dnl ====================================================================
dnl Checks for programs.

AC_PROG_MAKE_SET

AC_PROG_CC
AC_PROG_CXX

AM_PROG_LIBTOOL

AM_SANITY_CHECK

AC_PROG_YACC
AM_PROG_LEX

AC_PROG_INSTALL


dnl ==========
dnl Python
dnl ==========

AC_ARG_WITH( python,
    [  --with-python=<path>   path to the Python prefix installation directory.
                         e.g. /usr/local],
    [PYTHON_PREFIX=$withval
      AC_MSG_RESULT(using Python located in $withval.)]
)

if test ! "$PYTHON_PREFIX" = ""
then
    PATH="$PYTHON_PREFIX/bin:$PATH"
fi

AC_ARG_WITH( python-version,
    [  --with-python-version=<version>
                          Python version to use, e.g. 1.5],
    [PYTHON_VERSION=$withval
      AC_MSG_RESULT(using Python $withval.)]
)

if test ! "$PYTHON_VERSION" = ""
then
    PYTHON_EXEC="python$PYTHON_VERSION"
else
    PYTHON_EXEC="python python2.0 python1.5"
fi

AC_PATH_PROGS(PYTHON, $PYTHON_EXEC, no, $PATH)
if test "$PYTHON" = "no";
then
    AC_MSG_ERROR([Python is needed to compile NeL (www.python.org)])
fi


dnl ====================================================================
dnl Configure Settings

dnl Use C++ compiler as a default for the compilation test.
AC_LANG_CPLUSPLUS


dnl ====================================================================
dnl Checks for typedefs, structures, and compiler characteristics.

dnl Supress GCC's "multi-character character constant" warnings.
if test "X$CC" = "Xgcc";
then
        CXXFLAGS="$CXXFLAGS -Wno-multichar"
fi

dnl Add the define _REENTRANT for a correct use of the threads
if test "X$CC" = "Xgcc";
then
    CXXFLAGS="$CXXFLAGS -D_REENTRANT"
fi



dnl ====================================================================
dnl Checks for header files.

AC_STDC_HEADERS
AC_CHECK_HEADERS(fcntl.h unistd.h)


dnl ==========
dnl X11
dnl ==========

AC_PATH_X
    
if test ! "$no_x" = "yes" ; then
    if test ! X"$x_libraries" = X ; then
        LIBS="$LIBS -L$x_libraries"
    fi
    if test ! X"$x_includes" = X ; then
        CXXFLAGS="$CXXFLAGS -I$x_includes"
    fi
else
    AC_MSG_ERROR(X11 must be installed.)
fi


dnl ==========
dnl STLPort
dnl ==========

dnl Ask user for path to the STLport header files
AC_ARG_WITH( stlport,
    [  --with-stlport=<path>   path to the STLPort header files directory.
                          e.g. /usr/local/include/stlport],
    [STLPORT_DIR=$with_stlport
      AC_MSG_RESULT(using STLPort header files located in $with_stlport)],
    AC_MSG_ERROR([You must call configure with the --with-stlport option.
    This tells configure where to find the STLPort header files.
    e.g. --with-stlport=/usr/local/include/stlport])
)

if test X"$STLPORT_DIR" != X;
then
    CXXFLAGS="-I$STLPORT_DIR $CXXFLAGS"
fi


dnl ==========
dnl Python
dnl ==========

PYTHON_PREFIX=`$PYTHON -c 'import sys; print "%s" % (sys.prefix)'`
PYTHON_VERSION=`$PYTHON -c 'import sys; print "%s" % (sys.version[[:3]])'`

PYTHON_CFLAGS="-I$PYTHON_PREFIX/include/python$PYTHON_VERSION"
PYTHON_LIBS="-L$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config -lpython$PYTHON_VERSION"

_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CXXFLAGS ${PYTHON_CFLAGS}"

AC_SUBST(PYTHON_CFLAGS)

AC_MSG_CHECKING(for Python header files)
AC_EGREP_CPP( yo_python,
[#include <Python.h>
   yo_python
],
[AC_MSG_RESULT(ok)],
AC_MSG_ERROR([Python is needed to compile NeL (www.python.org).])
)

CPPFLAGS="$_CPPFLAGS"

AC_SUBST(PYTHON_CFLAGS)
AC_SUBST(PYTHON_LIBS)


dnl ==========
dnl Debug/optimized compilation mode
dnl ==========

MAX_C_OPTIMIZE="-O6"

dnl Build optimized or debug version ?
dnl First check for gcc and g++
if test "$ac_cv_prog_gcc" = "yes"
then
  DEBUG_CFLAGS="-g"
  DEBUG_OPTIMIZE_CC="-O"
  OPTIMIZE_CFLAGS="$MAX_C_OPTIMIZE"
else
  DEBUG_CFLAGS="-g"
  DEBUG_OPTIMIZE_CC=""
  OPTIMIZE_CFLAGS="-O"
fi
if test "$ac_cv_prog_cxx_g" = "yes"
then
  DEBUG_CXXFLAGS="-g"
  DEBUG_OPTIMIZE_CXX="-O"
  OPTIMIZE_CXXFLAGS="-O3"
else
  DEBUG_CXXFLAGS="-g"
  DEBUG_OPTIMIZE_CXX=""
  OPTIMIZE_CXXFLAGS="-O"
fi
AC_ARG_WITH(debug,
    [  --with-debug[=full]     Build a debug version (huge libraries)
  --without-debug         Build withoug debugging code (default)],
    [with_debug=$withval],
    [with_debug=no])
if test "$with_debug" = "yes"
then
  dnl Medium debug.
  CFLAGS="$DEBUG_CFLAGS $DEBUG_OPTIMIZE_CC $CFLAGS"
  CXXFLAGS="$DEBUG_CXXFLAGS $DEBUG_OPTIMIZE_CXX $CXXFLAGS"
elif test "$with_debug" = "full"
then
  dnl Full debug. Very slow in some cases
  CFLAGS="$DEBUG_CFLAGS $CFLAGS"
  CXXFLAGS="$DEBUG_CXXFLAGS $CXXFLAGS"
else
  dnl Optimized version. No debug
  CFLAGS="$OPTIMIZE_CFLAGS $CFLAGS"
  CXXFLAGS="$OPTIMIZE_CXXFLAGS $CXXFLAGS"
fi


dnl ====================================================================
dnl Checks for libraries.

dnl ==========
dnl STLPort
dnl ==========

dnl Ask user for path to the STLport header/library files
AC_ARG_WITH( stllib,
    [  --with-stllib=<path>    path to the STLPort installation directory.
                          e.g. /usr/local/lib/stlport],
    [STLLIB_DIR=$with_stllib
      AC_MSG_RESULT(using STLPort library located in $with_stllib.)]
)

if test X"$STLLIB_DIR" != X;
then
    LIBS="-L$STLLIB_DIR $LIBS"
fi

LIBS="$LIBS -lstlport_gcc"

_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CXXFLAGS"

AC_MSG_CHECKING(for STLPort)
AC_EGREP_CPP( yo_stlport,
[#include <algorithm>
#ifdef __SGI_STL_PORT
   yo_stlport
#endif],
[AC_MSG_RESULT(yes)],
AC_MSG_ERROR([STLPort is needed to compile NeL (www.stlport.org).])
)

CPPFLAGS="$_CPPFLAGS"


dnl ==========
dnl FreeType 2
dnl ==========

dnl Check for the FreeType 2 library files
AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no)

if test "$FREETYPE_CONFIG" = "no"; then
    AC_MSG_ERROR([Cannot find freetype-config: check your path.
    FreeType 2 library is needed to compile NeL (freetype.sourceforge.net).])
else
    FREETYPE_CFLAGS=`freetype-config --cflags`
    FREETYPE_LIBS=`freetype-config --libs`
fi

AC_SUBST(FREETYPE_CFLAGS)
AC_SUBST(FREETYPE_LIBS)

dnl Checking the FreeType 2 instalation
_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CXXFLAGS ${FREETYPE_CFLAGS}"

AC_MSG_CHECKING(for FreeType 2 installation)
AC_EGREP_CPP( yo_freetype2,
[#include <freetype/freetype.h>
#if FREETYPE_MAJOR == 2
   yo_freetype2
#endif],
[AC_MSG_RESULT(yes)],
AC_MSG_ERROR([Freetype 2 library is needed to compile NeL (www.stlport.org).])
)

CPPFLAGS="$_CPPFLAGS"


dnl ==========
dnl OpenGL
dnl ==========

dnl Checking the OpenGL installation
AC_MSG_CHECKING(for OpenGL)
AC_EGREP_CPP( yo_opengl,
[#include <GL/gl.h>
#if defined(GL_VERSION_1_2)
   yo_opengl
#endif],
[AC_MSG_RESULT(yes)],
AC_MSG_ERROR([OpenGL 1.2 is needed to compile NeL (www.mesa3d.org).])
)

dnl Checking the GLEXT version
AC_MSG_CHECKING(for <GL/glext.h> version)
AC_EGREP_CPP( yo_glext_version,
[#include <GL/glext.h>
#ifdef GL_GLEXT_VERSION
#if GL_GLEXT_VERSION >= 7
   yo_glext_version
#endif
#endif],
[AC_MSG_RESULT(ok)],
AC_MSG_ERROR([A newer version of <GL/glext.h> is needed to compile NeL (download it from http://oss.sgi.com/projects/ogl-sample/ABI/).])
)


dnl ============================================
dnl Check for XF86VidMode extension (-lXxf86vm)
dnl ============================================
AC_MSG_CHECKING("for XF86VidMode extension")
AC_ARG_WITH( xf86vidmode,
    [  --with-xf86vidmode=<path>
                           path to the XF86VidMode lib.
                           e.g. /usr/X11R6/lib],
    [VMLIB_DIR=$with_xf86vidmode
      AC_MSG_RESULT(using VidMode library located in $with_xf86vidmode.)],
    AC_MSG_RESULT(Compiling without Xf86VidMode and hence fullscreen support to compile with XF86VidMode support, use --with-xf86vidmode=<pathtolib>)
)

if test X"$VMLIB_DIR" != X;
then
    LIBS="-L$VMLIB_DIR -lXxf86vm $LIBS";
    CXXFLAGS="$CXXFLAGS -DXF86VIDMODE";
fi


dnl ====================================================================
dnl Checks for library functions.


dnl ====================================================================
dnl Output files to generate.

dnl What an ugly hack to try to get something cleanner ... i hope ...
AC_OUTPUT_COMMANDS(
   [cd include/nel && ln -sfv ../nelconfig.h .]
)

AC_OUTPUT( Makefile                       \
           include/Makefile               \
           src/Makefile                   \
           src/misc/Makefile              \
           src/misc/config_file/Makefile  \
           src/net/Makefile               \
           src/3d/Makefile                \
           src/3d/driver/Makefile         \
           src/3d/driver/opengl/Makefile  \
           src/ai/Makefile                \
           src/ai/agent/Makefile          \
           src/ai/c/Makefile              \
           src/ai/character/Makefile      \
           src/ai/fuzzy/Makefile          \
           src/ai/logic/Makefile          \
           src/ai/nimat/Makefile          \
           src/ai/pyserver/Makefile       \
           src/ai/script/Makefile         \
           src/ai/tools/Makefile          \
)


dnl End of configure.in