dnl ========================================================================== dnl Configuration script for Snowballs dnl ========================================================================== dnl dnl $Id: configure.in,v 1.6 2001/10/29 18:56:28 lecroart Exp $ dnl dnl ========================================================================== dnl Process this file with autoconf to produce a configure script. AC_INIT(client/src/client.cpp) MAJOR_VERSION=0 MINOR_VERSION=2 PICO_VERSION=0 AM_INIT_AUTOMAKE(snowballs, $MAJOR_VERSION.$MINOR_VERSION.$PICO_VERSION) AM_CONFIG_HEADER(config.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 Snowballs modules (Client / Server) to install / Disable SNO_SUBDIRS="" dnl Client AC_ARG_ENABLE( client, [ --disable-client disable compilation and install of Snowballs Client.], [ AC_MSG_RESULT(disable Snowballs Client.) ], [ SNO_SUBDIRS="$SNO_SUBDIRS client" enable_client=yes ] ) dnl Server AC_ARG_ENABLE( server, [ --disable-server disable compilation and install of Snowballs Server.], [ AC_MSG_RESULT(disable Snowballs Server.) ], [ SNO_SUBDIRS="$SNO_SUBDIRS server" enable_server=yes ] ) AC_SUBST(SNO_SUBDIRS) dnl ========================================================================== dnl Checks for programs. dnl ========================================================================== AC_PROG_MAKE_SET AC_PROG_CC AC_PROG_CXX AM_SANITY_CHECK AC_PROG_INSTALL dnl ========================================================================== dnl Configure Settings dnl ========================================================================== dnl Set the C++ compiler as the default compiler for the configure script dnl compilation tests AC_LANG_CPLUSPLUS dnl ========================================================================== dnl Checks for typedefs, structures, and compiler characteristics. dnl ========================================================================== dnl ========================================================================== dnl Checks for header files. dnl ========================================================================== AC_STDC_HEADERS AC_CHECK_HEADERS(fcntl.h unistd.h) dnl ========================================================================== dnl X11 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_client" = "yes" then AC_MSG_ERROR(X11 must be installed.) fi fi dnl ========================================================================== dnl STLPort dnl Ask user for path to the STLport files location AC_ARG_WITH( stlport, [ --with-stlport= path to the STLPort install 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="no" 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 NeL dnl Check for NeL library files AC_PATH_PROG(NEL_CONFIG, nel-config, no) if test "$NEL_CONFIG" = "no"; then AC_MSG_ERROR([Cannot find nel-config: check your path. NeL library is needed to compile Snowballs (www.nevrax.org).]) else NEL_CFLAGS=`nel-config --cflags` if test x"$enable_client" != x"yes" then NEL_LIBS=`nel-config --libs --without-ai --without-3d` else NEL_LIBS=`nel-config --libs --without-ai` fi fi AC_SUBST(NEL_CFLAGS) AC_SUBST(NEL_LIBS) dnl Checking NeL instalation _CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CXXFLAGS ${NEL_CFLAGS}" dnl ========================================================================== dnl FreeType 2 dnl Check for the FreeType 2 library files AC_PATH_PROG(FREETYPE_CONFIG, freetype-config, no) if test "$FREETYPE_CONFIG" = "no" -a "$enable_client" = "yes" then AC_MSG_ERROR([Cannot find freetype-config: check your path. FreeType 2 library is needed to compile Snowballs (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_client" = "yes" then AC_MSG_ERROR([Freetype 2 library is needed to compile Snowballs (freetype.sourceforge.net).]) else AC_MSG_RESULT(no) fi ) CPPFLAGS="$_CPPFLAGS" dnl ========================================================================== dnl Debug/optimized compilation mode 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 ========================================================================== dnl STLPort 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 Snowballs (www.stlport.org).]) ) CPPFLAGS="$_CPPFLAGS" fi dnl ========================================================================== dnl Checks for library functions. dnl ========================================================================== dnl ========================================================================== dnl Output files to generate. dnl ========================================================================== AC_OUTPUT( Makefile \ client/Makefile \ client/src/Makefile \ server/Makefile \ server/frontend/Makefile \ server/frontend/src/Makefile \ server/chat/Makefile \ server/chat/src/Makefile \ server/position/Makefile \ server/position/src/Makefile \ ) dnl End of configure.in