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

File: Nevrax / code / nel / configure.in (download)
Revision 1.55, Wed Nov 7 16:25:13 2001 UTC (8 months, 2 weeks ago) by valignat
Branch: MAIN
Changes since 1.54: +7 -1 lines
BUGFIX on the libs options list for nel.

dnl
dnl Configuration script for NeL
dnl
dnl $Id: configure.in,v 1.55 2001/11/07 16:25:13 valignat 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 REVISION (implementation)
dnl               number.
dnl PICO_VERSION correspond to the interface 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 doesnt add optimizing
dnl or debugging flags to CFLAGS or CXXFLAGS
CFLAGS="$CFLAGS -ftemplate-depth-24"
CXXFLAGS="$CXXFLAGS -ftemplate-depth-24"


dnl ====================================================================
dnl Checks NeL modules (net, 3d, ai) to install / Disable

dnl the misc is mandatory, it is use by the other modules.
NEL_SUBDIRS="misc"

dnl Network library
AC_ARG_ENABLE( net,
    [  --disable-net           disable compilation and install of NeL Network.],
    , enable_net=yes )

if test $enable_net = "no";
then
   AC_MSG_RESULT(disable NEL Network.)
else
   NEL_SUBDIRS="$NEL_SUBDIRS net"
fi

dnl 3D library
AC_ARG_ENABLE( 3d,
    [  --disable-3d            disable compilation and install of NeL 3D.],
    , enable_3d=yes )

if test $enable_3d = "no";
then
   AC_MSG_RESULT(disable NEL 3D.)
else
   NEL_SUBDIRS="$NEL_SUBDIRS 3d"
fi

dnl PACS library
AC_ARG_ENABLE( pacs,
    [  --disable-pacs          disable compilation and install of NeL PACS.],
    , enable_pacs=yes )

if test $enable_pacs = "no";
then
   AC_MSG_RESULT(disable NEL PACS.)
else
   NEL_SUBDIRS="$NEL_SUBDIRS pacs"
fi

dnl Sound library
AC_ARG_ENABLE( sound,
    [  --enable-sound          enable compilation and install of NeL Sound.],
    , enable_sound=no )

if test $enable_sound = "yes";
then
   AC_MSG_RESULT(enable NEL Sound.)
   NEL_SUBDIRS="$NEL_SUBDIRS sound"
fi

dnl AI library
AC_ARG_ENABLE( ai,
    [  --enable-ai             enable compilation and install of NeL AI.],
    , enable_ai=no )

if test $enable_ai = "yes";
then
   AC_MSG_RESULT(enable NEL AI.)
   NEL_SUBDIRS="$NEL_SUBDIRS ai"
fi

AC_SUBST(enable_net)
AC_SUBST(enable_3d)
AC_SUBST(enable_pacs)
AC_SUBST(enable_sound)
AC_SUBST(enable_ai)

AC_SUBST(NEL_SUBDIRS)


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" -a "$enable_ai" = "yes"
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 "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
    if test "$enable_3d" = "yes"
    then
        AC_MSG_ERROR(X11 must be installed.)
    fi
fi


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

dnl Ask user for path to the STLport files location
AC_ARG_WITH( stlport,
    [  --with-stlport=<path>   path to the STLPort install files directory.
                          e.g. /usr/local/stlport])

AC_ARG_WITH( stlport-include,
    [  --with-stlport-include=<path>
                          path to the STLPort header files directory.
                          e.g. /usr/local/stlport/stlport])

AC_ARG_WITH( stlport-lib,
    [  --with-stlport-lib=<path>
                          path to the STLPort library files directory.
                          e.g. /usr/local/stlport/lib])

if test "$with_stlport" != "no"
then

#    if test -z "$with_stlport" && test -z "$with_stlport_lib" -o -z "$with_stlport_include" 
#    then
#        AC_MSG_ERROR([You must call configure with the --with-stlport or --with-stlport-lib and with-stlport-include options.
#This tells configure where to find the STLPort files.])
#    fi

    if test $with_stlport
    then
        AC_MSG_RESULT(using STLPort files located in $with_stlport)

        STLPORT_CFLAGS="-I$with_stlport/stlport"
        STLPORT_LIB="-L$with_stlport/lib"
    fi
else
    no_stlport="yes"
    AC_MSG_RESULT(*** Override the use of the STLPorts (EXPERIMENTAL) ***)
fi

if test -z "$no_stlport" -a "$with_stlport_include"
then
    AC_MSG_RESULT(using STLPort header files located in $with_stlport_include)
    STLPORT_CFLAGS="-I$with_stlport_include"
fi

if test -z "$no_stlport" -a  "$with_stlport_lib"
then
    AC_MSG_RESULT(using STLPort library files located in $with_stlport_lib)
    STLPORT_LIB="-L$with_stlport_lib"
fi


dnl ==========
dnl OpenAL
dnl ==========

dnl Ask user for path to the OpenAL files location
AC_ARG_WITH( openal,
    [  --with-openal=<path>   path to the OpenAL install files directory.
                          e.g. /usr/local])

AC_ARG_WITH( openal-include,
    [  --with-openal-include=<path>
                          path to the OpenAL header files directory.
                          e.g. /usr/local/include])

AC_ARG_WITH( openal-lib,
    [  --with-openal-lib=<path>
                          path to the OpenAL library files directory.
                          e.g. /usr/local/lib])

if test $with_openal
then
    AC_MSG_RESULT(using OpenAL files located in $with_openal)

    OPENAL_CFLAGS="-I$with_openal/include"
    OPENAL_LIB="-L$with_openal/lib"
fi

if test "$with_openal_include"
then
    AC_MSG_RESULT(using OpenAL header files located in $with_openal_include)
    OPENAL_CFLAGS="-I$with_openal_include"
fi

if test "$with_openal_lib"
then
    AC_MSG_RESULT(using OpenAL library files located in $with_openal_lib)
    OPENAL_LIB="-L$with_openal_lib"
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_RESULT(no)
  if test "$enable_ai" = "yes"
  then
      AC_MSG_ERROR([Python is needed to compile NeL (www.python.org).])
  fi
)

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 without 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"
else
    if 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
fi


dnl ==========
dnl LibXML
dnl ==========

AM_PATH_XML2( 2.0.0, , AC_MSG_ERROR(libxml2 must be installed.) )


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

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

if test -z "$no_stlport"
then

    if test X"$STLPORT_CFLAGS" != X
    then
        CXXFLAGS="$STLPORT_CFLAGS $CXXFLAGS"
    fi

    if test X"$STLPORT_LIB" != X
    then
        LIBS="$STLPORT_LIB $LIBS -lstlport_gcc"
    fi

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

    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"
fi

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" -a "$enable_3d" = "yes"
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) ],
  if test "$enable_3d" = "yes"
  then
      AC_MSG_ERROR([Freetype 2 library is needed to compile NeL (freetype.sourceforge.net).])
  else
      AC_MSG_RESULT(no)
  fi
)

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_RESULT(no)
  if test "$enable_3d" = "yes"
  then
      AC_MSG_ERROR([OpenGL 1.2 is needed to compile NeL (www.mesa3d.org).])
  fi
)

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) ],
  if test "$enable_3d" = "yes"
  then
     AC_MSG_RESULT(no)
     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/).])
  fi
)


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 OpenAL
dnl ==========

AC_SUBST(OPENAL_CFLAGS)
AC_SUBST(OPENAL_LIB)

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

AC_MSG_CHECKING(for OpenAL)
AC_EGREP_CPP( yo_openal,
[#include <AL/altypes.h>
#ifdef AL_VERSION
   yo_openal
#endif],
[ AC_MSG_RESULT(yes)],
  AC_MSG_RESULT(no)
  if test "$enable_sound" = "yes"
  then
      AC_MSG_ERROR([OpenAL is needed to compile NeL (www.openal.org).])
  fi
)

CPPFLAGS="$_CPPFLAGS"


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                  \
           include/nel/Makefile              \
           include/nel/misc/Makefile         \
           include/nel/net/Makefile          \
           include/nel/3d/Makefile           \
           include/nel/pacs/Makefile         \
           include/nel/sound/Makefile        \
           include/nel/ai/Makefile           \
           include/nel/ai/agent/Makefile     \
           include/nel/ai/c/Makefile         \
           include/nel/ai/character/Makefile \
           include/nel/ai/e/Makefile         \
           include/nel/ai/fuzzy/Makefile     \
           include/nel/ai/logic/Makefile     \
           include/nel/ai/nimat/Makefile     \
           include/nel/ai/pyserver/Makefile  \
           include/nel/ai/script/Makefile    \
           include/nel/ai/tools/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/pacs/Makefile                 \
           src/sound/Makefile                \
           src/sound/driver/Makefile         \
           src/sound/driver/openal/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             \
           nel-config                        \
)


dnl End of configure.in