version 1.53, 2001/10/09 13:48:11 |
version 1.64, 2002/04/15 09:44:41 |
| |
dnl | dnl ==================================================================== |
dnl Configuration script for NeL | dnl Configuration script for NeL |
| dnl ==================================================================== |
dnl | dnl |
dnl $Id$ | dnl $Id$ |
dnl | dnl |
| |
| |
| dnl ==================================================================== |
dnl Process this file with autoconf to produce a configure script. | dnl Process this file with autoconf to produce a configure script. |
| dnl ==================================================================== |
| |
AC_INIT(include/nel/nel.h) | AC_INIT(include/nel/nel.h) |
| |
| |
| |
LIBTOOL_VERSION=$MAJOR_VERSION:$MINOR_VERSION:$PICO_VERSION | LIBTOOL_VERSION=$MAJOR_VERSION:$MINOR_VERSION:$PICO_VERSION |
| |
| AC_CANONICAL_HOST |
AC_SUBST(VERSION) | AC_SUBST(VERSION) |
AC_SUBST(LIBTOOL_VERSION) | AC_SUBST(LIBTOOL_VERSION) |
| |
| |
| |
dnl The following hack should ensure that configure doesnt add optimizing | dnl The following hack should ensure that configure doesnt add optimizing |
dnl or debugging flags to CFLAGS or CXXFLAGS | dnl or debugging flags to CFLAGS or CXXFLAGS |
CFLAGS="$CFLAGS " | CFLAGS="$CFLAGS -ftemplate-depth-24" |
CXXFLAGS="$CXXFLAGS " | CXXFLAGS="$CXXFLAGS -ftemplate-depth-24" |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks NeL modules (net, 3d, ai) to install / Disable | dnl Checks NeL modules (net, 3d, ai) to install / Disable |
| dnl ==================================================================== |
| |
dnl the misc is mandatory, it is use by the other modules. | dnl the misc is mandatory, it is use by the other modules. |
NEL_SUBDIRS="misc" | NEL_SUBDIRS="misc" |
| |
NEL_SUBDIRS="$NEL_SUBDIRS ai" | NEL_SUBDIRS="$NEL_SUBDIRS ai" |
fi | fi |
| |
| dnl Georges library |
| AC_ARG_ENABLE( georges, |
| [ --enable-georges enable compilation and install of NeL Georges.], |
| , enable_georges=no ) |
| |
| if test $enable_georges = "yes"; |
| then |
| AC_MSG_RESULT(enable NEL Georges.) |
| NEL_SUBDIRS="$NEL_SUBDIRS georges" |
| fi |
| |
| AC_SUBST(enable_net) |
| AC_SUBST(enable_3d) |
| AC_SUBST(enable_pacs) |
| AC_SUBST(enable_sound) |
| AC_SUBST(enable_ai) |
| AC_SUBST(enable_georges) |
| |
AC_SUBST(NEL_SUBDIRS) | AC_SUBST(NEL_SUBDIRS) |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks for programs. | dnl Checks for programs. |
| dnl ==================================================================== |
| |
AC_PROG_MAKE_SET | AC_PROG_MAKE_SET |
| |
| |
AC_PROG_INSTALL | AC_PROG_INSTALL |
| |
| |
dnl ========== | dnl ==================================================================== |
dnl Python | dnl Configure Settings |
dnl ========== | dnl ==================================================================== |
| |
AC_ARG_WITH( python, | dnl Disable the static linking by default |
[ --with-python=<path> path to the Python prefix installation directory. | dnl AC_DISABLE_STATIC |
e.g. /usr/local], | |
[ PYTHON_PREFIX=$withval | |
AC_MSG_RESULT(using Python located in $withval.)] | |
) | |
| |
if test ! "$PYTHON_PREFIX" = "" | dnl Use C++ compiler as a default for the compilation tests. |
then | AC_LANG_CPLUSPLUS |
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" = "" | dnl ==================================================================== |
then | dnl Debug/optimized compilation mode |
PYTHON_EXEC="python$PYTHON_VERSION" | dnl ==================================================================== |
else | |
PYTHON_EXEC="python python2.0 python1.5" | AM_NEL_DEBUG |
fi | |
| |
AC_PATH_PROGS(PYTHON, $PYTHON_EXEC, no, $PATH) | AC_ARG_WITH([logging], |
if test "$PYTHON" = "no" -a "$enable_ai" = "yes" | [ --without-logging be silent on stdout and in no log.log], |
| [ |
| if test "$with_logging" = "no" |
then | then |
AC_MSG_ERROR([Python is needed to compile NeL (www.python.org)]) | AC_DEFINE(NEL_DEFAULT_DISPLAYER, 0) |
| AC_DEFINE(NEL_LOG_IN_FILE, 0) |
| else |
| AC_MSG_ERROR([--with-logging is the default: do not use this option]) |
fi | fi |
| ]) |
| |
dnl ==================================================================== | |
dnl Configure Settings | |
| |
dnl Use C++ compiler as a default for the compilation test. | |
AC_LANG_CPLUSPLUS | |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks for typedefs, structures, and compiler characteristics. | dnl Checks for typedefs, structures, and compiler characteristics. |
| dnl ==================================================================== |
| |
dnl Supress GCC "multi-character character constant" warnings. | dnl Supress GCC "multi-character character constant" warnings. |
if test "X$CC" = "Xgcc"; | if test "X$CC" = "Xgcc"; |
| |
dnl Add the define _REENTRANT for a correct use of the threads | dnl Add the define _REENTRANT for a correct use of the threads |
if test "X$CC" = "Xgcc"; | if test "X$CC" = "Xgcc"; |
then | then |
| CFLAGS="$CFLAGS -D_REENTRANT" |
CXXFLAGS="$CXXFLAGS -D_REENTRANT" | CXXFLAGS="$CXXFLAGS -D_REENTRANT" |
fi | fi |
| |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks for header files. | dnl Checks for header files. |
| dnl ==================================================================== |
| |
AC_STDC_HEADERS | AC_STDC_HEADERS |
AC_CHECK_HEADERS(fcntl.h unistd.h) | AC_CHECK_HEADERS(fcntl.h unistd.h) |
| |
| |
dnl ========== | dnl ==================================================================== |
dnl X11 | dnl X11 |
dnl ========== | |
| |
AC_PATH_X | AC_PATH_X |
| |
| |
then | then |
LIBS="$LIBS -L$x_libraries" | LIBS="$LIBS -L$x_libraries" |
fi | fi |
| |
if test ! X"$x_includes" = X | if test ! X"$x_includes" = X |
then | then |
CXXFLAGS="$CXXFLAGS -I$x_includes" | CXXFLAGS="$CXXFLAGS -I$x_includes" |
| |
fi | fi |
| |
| |
dnl ========== | dnl ==================================================================== |
dnl STLPort | dnl STLPort |
dnl ========== | |
| |
dnl Ask user for path to the STLport files location | AM_PATH_STLPORT |
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, | dnl ==================================================================== |
[ --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 |
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" | AM_PATH_PYTHON(1.5,$enable_ai) |
PYTHON_LIBS="-L$PYTHON_PREFIX/lib/python$PYTHON_VERSION/config -lpython$PYTHON_VERSION" | |
| |
_CPPFLAGS="$CPPFLAGS" | |
CPPFLAGS="$CXXFLAGS ${PYTHON_CFLAGS}" | |
| |
AC_SUBST(PYTHON_CFLAGS) | dnl ==================================================================== |
| dnl LibXML |
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 Use C++ compiler as a default for the compilation tests. |
dnl First check for gcc and g++ | AC_LANG_C |
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" | AM_PATH_XML2(2.0.0, , AC_MSG_ERROR(libxml2 must be installed.)) |
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 | |
| |
| CFLAGS="$CFLAGS $XML_CFLAGS" |
| CXXFLAGS="$CXXFLAGS $XML_CFLAGS" |
| |
dnl ========== | LIBS="$LIBS $XML_LIBS" |
dnl LibXML | |
dnl ========== | |
| |
AM_PATH_XML2( 2.0.0, , AC_MSG_ERROR(libxml2 must be installed.) ) | dnl Use C++ compiler as a default for the compilation tests. |
| AC_LANG_CPLUSPLUS |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks for libraries. | dnl Checks for libraries. |
| dnl ==================================================================== |
| |
dnl ========== | 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 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) | AM_PATH_FREETYPE($enable_3d) |
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 ========== | |
dnl OpenGL | dnl OpenGL |
dnl ========== | |
| |
dnl Checking the OpenGL installation | AM_PATH_OPENGL($enable_3d) |
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 ============================================ | |
dnl Check for XF86VidMode extension (-lXxf86vm) | 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; | AM_PATH_XF86VIDMODE |
then | |
LIBS="-L$VMLIB_DIR -lXxf86vm $LIBS"; | |
CXXFLAGS="$CXXFLAGS -DXF86VIDMODE"; | |
fi | |
| |
| |
dnl ========== | dnl ==================================================================== |
dnl OpenAL | dnl OpenAL |
dnl ========== | |
| |
AC_SUBST(OPENAL_CFLAGS) | |
AC_SUBST(OPENAL_LIB) | |
| |
_CPPFLAGS="$CPPFLAGS" | AM_PATH_OPENAL($enable_sound) |
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 Arrange for the include directory to be in the search path even when |
| dnl build is done outside the source tree |
| CFLAGS="$CFLAGS -I\${top_srcdir}/include" |
| CXXFLAGS="$CXXFLAGS -I\${top_srcdir}/include" |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Checks for library functions. | dnl Checks for library functions. |
| dnl ==================================================================== |
| |
| |
dnl ==================================================================== | dnl ==================================================================== |
dnl Output files to generate. | dnl Output files to generate. |
| dnl ==================================================================== |
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 \ | AC_OUTPUT( Makefile \ |
include/Makefile \ | include/Makefile \ |
| |
include/nel/ai/pyserver/Makefile \ | include/nel/ai/pyserver/Makefile \ |
include/nel/ai/script/Makefile \ | include/nel/ai/script/Makefile \ |
include/nel/ai/tools/Makefile \ | include/nel/ai/tools/Makefile \ |
| include/nel/georges/Makefile \ |
src/Makefile \ | src/Makefile \ |
src/misc/Makefile \ | src/misc/Makefile \ |
src/misc/config_file/Makefile \ | src/misc/config_file/Makefile \ |
| |
src/ai/pyserver/Makefile \ | src/ai/pyserver/Makefile \ |
src/ai/script/Makefile \ | src/ai/script/Makefile \ |
src/ai/tools/Makefile \ | src/ai/tools/Makefile \ |
| src/georges/Makefile \ |
nel-config \ | nel-config \ |
) | ) |
| |