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 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= 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 to the STLPort install files directory. e.g. /usr/local/stlport]) AC_ARG_WITH( stlport-include, [ --with-stlport-include= path to the STLPort header files directory. e.g. /usr/local/stlport/stlport]) AC_ARG_WITH( stlport-lib, [ --with-stlport-lib= 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 to the OpenAL install files directory. e.g. /usr/local]) AC_ARG_WITH( openal-include, [ --with-openal-include= path to the OpenAL header files directory. e.g. /usr/local/include]) AC_ARG_WITH( openal-lib, [ --with-openal-lib= 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 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 #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 #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 #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 version) AC_EGREP_CPP( yo_glext_version, [#include #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 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 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=) ) 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 #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