319 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
			
		
		
	
	
			319 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			Plaintext
		
	
	
#                                               -*- Autoconf -*-
 | 
						|
# Process this file with autoconf to produce a configure script.
 | 
						|
 | 
						|
AC_REVISION($Id: configure.ac 11579 2009-02-24 17:46:24Z lalo $)
 | 
						|
AC_INIT([crossfire], [1.12-gamma], [crossfire-devel@listserv.real-time.com])
 | 
						|
AC_CONFIG_AUX_DIR([utils])
 | 
						|
AC_CONFIG_SRCDIR([server/main.c])
 | 
						|
AM_INIT_AUTOMAKE
 | 
						|
AC_CONFIG_HEADERS([include/autoconf.h])
 | 
						|
 | 
						|
AC_PREFIX_DEFAULT(/usr/games/crossfire)
 | 
						|
 | 
						|
# we want a config.h file instead of -D options.
 | 
						|
 | 
						|
# Checks for programs.
 | 
						|
AC_PROG_LIBTOOL
 | 
						|
AC_PROG_CC
 | 
						|
 | 
						|
case "$target" in
 | 
						|
  alpha-dec-osf*)
 | 
						|
    # If we are not using gcc, we want the ansi version of cc.
 | 
						|
    if test -z "$GCC"; then
 | 
						|
#      CFLAGS="$CFLAGS -std1 -warnprotos" # Not yet ready for warnprotos...
 | 
						|
      CFLAGS="$CFLAGS -std1"
 | 
						|
    fi
 | 
						|
    ;;
 | 
						|
  *)
 | 
						|
    ;;
 | 
						|
esac
 | 
						|
 | 
						|
 | 
						|
AC_PROG_CPP
 | 
						|
AM_PROG_LEX
 | 
						|
AM_PROG_CC_C_O
 | 
						|
AC_PROG_AWK
 | 
						|
 | 
						|
AC_ARG_ENABLE(dmalloc,
 | 
						|
              [AS_HELP_STRING([--enable-dmalloc], [Use the dmalloc library if available, may prevent plugins from working])],,
 | 
						|
              enable_dmalloc=no)
 | 
						|
 | 
						|
AC_ARG_WITH(python,
 | 
						|
            [AS_HELP_STRING([--with-python=dir], [Directory to look for python headers/library (default=standard system location)])],
 | 
						|
            PYTHON_HOME="$withval")
 | 
						|
 | 
						|
 | 
						|
# check for some other programs
 | 
						|
AC_PATH_PROG(LATEX, latex)
 | 
						|
AC_PATH_PROG(GZIP, gzip)
 | 
						|
AC_PATH_PROG(GUNZIP, gunzip)
 | 
						|
AC_PATH_PROG(TAR, tar)
 | 
						|
AC_PATH_PROG(PERL, perl)
 | 
						|
AC_PATH_PROG(BASENAME, basename)
 | 
						|
 | 
						|
if test -n "$GZIP" -a -z "$GUNZIP" ; then
 | 
						|
    echo "Found gzip, but not gunzip - setting GUNZIP to gzip -c";
 | 
						|
    GUNZIP="$GZIP -c"
 | 
						|
fi;
 | 
						|
 | 
						|
if test -z "$COMPRESS" ; then
 | 
						|
    AC_PATH_PROG(COMPRESS, compress)
 | 
						|
    AC_PATH_PROG(UNCOMPRESS, uncompress)
 | 
						|
fi
 | 
						|
 | 
						|
AC_PATH_PROG(BZIP, bzip2)
 | 
						|
AC_PATH_PROG(BUNZIP, bunzip2)
 | 
						|
 | 
						|
if test -n "$BZIP" -a -z "$BUNZIP" ; then
 | 
						|
    echo "Found bzip2, but not bunzip2 - setting BUNZIP to bzip2 -c";
 | 
						|
    BUNZIP="$BZIP -c"
 | 
						|
fi;
 | 
						|
 | 
						|
if test -z "$COMPRESS" -a -z "$GZIP" -a -z "$BZIP" ; then
 | 
						|
    echo "Unable to find either compress, bzip2,  or gzip - hope you don't plan on compressing";
 | 
						|
    echo "any files.";
 | 
						|
fi;
 | 
						|
 | 
						|
# Check if svnversion is avaliable to get the rev number
 | 
						|
AC_PATH_PROG(SVNVERSION, svnversion)
 | 
						|
 | 
						|
# Check for some library functions
 | 
						|
AC_SEARCH_LIBS([gethostbyname], [nsl])
 | 
						|
AC_SEARCH_LIBS([pow], [m])
 | 
						|
AC_SEARCH_LIBS([sqrt], [m])
 | 
						|
 | 
						|
# Misc libraries.
 | 
						|
AC_SEARCH_LIBS([crypt], [crypt])
 | 
						|
AC_CHECK_LIB(des, des_crypt)
 | 
						|
 | 
						|
AC_CHECK_LIB(z, compress)
 | 
						|
AC_CHECK_LIB(pthread, pthread_create)
 | 
						|
LIBCURL_CHECK_CONFIG()
 | 
						|
 | 
						|
 | 
						|
LIBS="$LIBS $LIBCURL"
 | 
						|
CPPFLAGS="$CPPFLAGS $LIBCURL_CPPFLAGS"
 | 
						|
 | 
						|
# Gros - Changed this to support some external programs that do not like dmalloc (like Python).
 | 
						|
# If you really need to make some memory debugging, uncomment the dmalloc line and comment out the dmalloclp one.
 | 
						|
 | 
						|
if eval "test x$enable_dmalloc = xyes"; then
 | 
						|
    AC_CHECK_LIB(dmalloc, main)
 | 
						|
else
 | 
						|
    AC_CHECK_LIB(dmalloclp, main)
 | 
						|
fi
 | 
						|
 | 
						|
# Checks for header files.
 | 
						|
AC_HEADER_DIRENT
 | 
						|
AC_HEADER_STDC
 | 
						|
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h malloc.h stddef.h stdlib.h strings.h sys/file.h sys/ioctl.h sys/time.h time.h unistd.h sys/ttycom.h sys/termios.h crypt.h des.h zlib.h pthread.h curl/curl.h])
 | 
						|
 | 
						|
# Checks for typedefs, structures, and compiler characteristics.
 | 
						|
AC_C_CONST
 | 
						|
AC_C_INLINE
 | 
						|
AC_TYPE_INT16_T
 | 
						|
AC_TYPE_INT32_T
 | 
						|
AC_TYPE_INT8_T
 | 
						|
AC_TYPE_OFF_T
 | 
						|
AC_TYPE_PID_T
 | 
						|
AC_TYPE_SIZE_T
 | 
						|
AC_HEADER_TIME
 | 
						|
AC_STRUCT_TM
 | 
						|
AC_HEADER_STDBOOL
 | 
						|
AC_TYPE_UINT16_T
 | 
						|
AC_TYPE_UINT32_T
 | 
						|
AC_TYPE_UINT8_T
 | 
						|
AC_TYPE_UID_T
 | 
						|
 | 
						|
AC_CHECK_SIZEOF(long)
 | 
						|
AC_CHECK_SIZEOF(long long)
 | 
						|
 | 
						|
# Checks for library functions.
 | 
						|
AC_PROG_GCC_TRADITIONAL
 | 
						|
AC_FUNC_MEMCMP
 | 
						|
AC_FUNC_SETPGRP
 | 
						|
AC_TYPE_SIGNAL
 | 
						|
AC_FUNC_STRERROR_R
 | 
						|
AC_FUNC_STRFTIME
 | 
						|
AC_FUNC_VPRINTF
 | 
						|
AC_CHECK_FUNCS([getdtablesize gettimeofday mkdir mktime rmdir select socket strcasecmp strcspn strerror strncasecmp strspn strstr strtol snprintf setsid srandom srand48 srand sysconf scandir])
 | 
						|
 | 
						|
# alphasort can not be added to AC_CHECK_FUNCS because
 | 
						|
AC_MSG_CHECKING(checking if alphasort is defined)
 | 
						|
  AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dirent.h>]], [[alphasort;]])],[ac_cv_func_alphasort=yes],[ac_cv_func_alphasort=no])
 | 
						|
  if test "$ac_cv_func_alphasort" = yes; then
 | 
						|
    AC_DEFINE(HAVE_ALPHASORT, 1, [Define if you have the alphasort() function declaration.])
 | 
						|
    AC_MSG_RESULT(yes)
 | 
						|
  else
 | 
						|
    AC_MSG_RESULT(no)
 | 
						|
  fi
 | 
						|
 | 
						|
 | 
						|
 | 
						|
AC_MSG_CHECKING(how many args gettimeofday uses)
 | 
						|
AC_CACHE_VAL(ac_cv_gettimeofday_args,
 | 
						|
 [AC_TRY_COMPILE([#include <sys/time.h>
 | 
						|
	#include <unistd.h>],
 | 
						|
	[struct timeval tv; struct timezone tzp;
 | 
						|
	gettimeofday(&tv, &tzp);],
 | 
						|
	[ac_gettimeofday_args=2],
 | 
						|
		[AC_TRY_COMPILE([#include <sys/time.h>
 | 
						|
		#include <unistd.h>],
 | 
						|
		[struct timeval tv;
 | 
						|
		gettimeofday(&tv, NULL);],
 | 
						|
		[ac_gettimeofday_args=2],
 | 
						|
		[AC_TRY_COMPILE([#include <sys/time.h>
 | 
						|
			#include <unistd.h>],
 | 
						|
			[struct timeval tv; gettimeofday(&tv);],
 | 
						|
			[ac_gettimeofday_args=1],
 | 
						|
			[ac_gettimeofday_args=0])])])
 | 
						|
  ac_cv_gettimeofday_args=$ac_gettimeofday_args])
 | 
						|
 | 
						|
ac_gettimeofday_args=$ac_cv_gettimeofday_args
 | 
						|
if test $ac_gettimeofday_args = 1 ; then
 | 
						|
  AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
 | 
						|
  AC_MSG_RESULT(one argument)
 | 
						|
elif test $ac_gettimeofday_args = 2 ; then
 | 
						|
  AC_DEFINE(HAVE_GETTIMEOFDAY,[],[Define if gettimeofday is available])
 | 
						|
  AC_DEFINE(GETTIMEOFDAY_TWO_ARGS,[],[Define if gettimeofday takes two arguments])
 | 
						|
  AC_MSG_RESULT(two arguments)
 | 
						|
else
 | 
						|
  AC_MSG_RESULT(unknown)
 | 
						|
fi
 | 
						|
 | 
						|
AC_SUBST(PERL)
 | 
						|
AC_SUBST(BASENAME)
 | 
						|
 | 
						|
AC_SUBST(pkgstatedir,$localstatedir/$PACKAGE)
 | 
						|
AC_SUBST(pkgconfdir,$sysconfdir/$PACKAGE)
 | 
						|
 | 
						|
AC_DEFINE_UNQUOTED(COMPRESS,"${COMPRESS}",[Path to the compress binary])
 | 
						|
AC_DEFINE_UNQUOTED(UNCOMPRESS,"${UNCOMPRESS}",[Path to the uncompress binary])
 | 
						|
AC_DEFINE_UNQUOTED(GZIP,"${GZIP}",[Path to the gzip binary])
 | 
						|
AC_DEFINE_UNQUOTED(GUNZIP,"${GUNZIP}",[Path to the gunzip binary])
 | 
						|
AC_DEFINE_UNQUOTED(BZIP,"${BZIP}",[Path to the bzip binary])
 | 
						|
AC_DEFINE_UNQUOTED(BUNZIP,"${BUNZIP}",[Path to the bunzip binary])
 | 
						|
 | 
						|
#############################################
 | 
						|
# Plugin configuration
 | 
						|
AC_CHECK_LIB(dl, dlopen,[ cf_have_libdl=yes ])
 | 
						|
AM_CONDITIONAL(HAVE_LIBDL,test "x$cf_have_libdl" = "xyes")
 | 
						|
 | 
						|
if test "x$cf_have_libdl" = "xyes" ; then
 | 
						|
    ###############
 | 
						|
    # Python plugin
 | 
						|
    CF_CHECK_PYTHON(
 | 
						|
        [PLUGIN_PYTHON="cfpython.la"]
 | 
						|
        [cf_will_build_python="yes"],
 | 
						|
        [cf_will_build_python="no"]
 | 
						|
        [AC_MSG_NOTICE([No Python found. Python plugin will not be built.])]
 | 
						|
    )
 | 
						|
    # *** Put other plugins configuration code here ***
 | 
						|
else
 | 
						|
    AC_MSG_NOTICE([No dl library found. Plugins will not be supported.])
 | 
						|
fi
 | 
						|
AM_CONDITIONAL(PYTHON_PLUGIN,test "x$PLUGIN_PYTHON" != "x")
 | 
						|
AC_SUBST(PLUGIN_PYTHON)
 | 
						|
 | 
						|
########################
 | 
						|
# CFLogger and CFNewsPaper configuration
 | 
						|
 | 
						|
AC_ARG_ENABLE(logger,
 | 
						|
              [AS_HELP_STRING([--disable-logger], [Disable the logger compilation])],,
 | 
						|
              enable_logger=yes)
 | 
						|
AC_ARG_ENABLE(newspaper,
 | 
						|
              [AS_HELP_STRING([--disable-newspaper], [Disable the newspaper plugin compilation])],,
 | 
						|
              enable_newspaper=yes)
 | 
						|
AC_CHECK_LIB(sqlite3, sqlite3_open,[ cf_have_libsqlite=yes ])
 | 
						|
AM_CONDITIONAL(HAVE_CFLOGGER, [test x"$cf_have_libsqlite" = "xyes" -a x"$enable_logger" = "xyes"])
 | 
						|
AM_CONDITIONAL(HAVE_CFNEWSPAPER, [test x"$cf_have_libsqlite" = "xyes" -a x"$enable_newspaper" = "xyes"])
 | 
						|
 | 
						|
########################
 | 
						|
# Unit test configuration
 | 
						|
 | 
						|
AC_ARG_ENABLE(check,
 | 
						|
              [AS_HELP_STRING([--disable-check], [Disable the unit tests even if check is available])],,
 | 
						|
              enable_check=yes)
 | 
						|
AM_PATH_CHECK(,[have_check="yes"],
 | 
						|
  AC_MSG_WARN([Check not found; cannot run unit tests!])
 | 
						|
  [have_check="no"])
 | 
						|
AM_CONDITIONAL(HAVE_CHECK, test x"$have_check" = "xyes" -a x"$enable_check" = "xyes")
 | 
						|
CF_CHECK_XSLT(xsltengine)
 | 
						|
AM_CONDITIONAL(PROCESS_XSLT,[test x"$have_check" = "xyes" -a x"$enable_check" = "xyes" -a x"$xsltengine" != x])
 | 
						|
AC_SUBST(XSLTENGINE,[$xsltengine])
 | 
						|
 | 
						|
########################
 | 
						|
# Generate output
 | 
						|
AC_CONFIG_FILES([Makefile
 | 
						|
                 doc/Makefile
 | 
						|
                 doc/Developers/Makefile
 | 
						|
                 doc/playbook/Makefile doc/playbook-html/Makefile
 | 
						|
                 doc/scripts/Makefile
 | 
						|
                 doc/spell-docs/Makefile
 | 
						|
                 doc/spoiler/Makefile doc/spoiler-html/Makefile
 | 
						|
                 common/Makefile
 | 
						|
                 devel/Makefile
 | 
						|
                 include/Makefile
 | 
						|
                 lib/Makefile
 | 
						|
                 random_maps/Makefile
 | 
						|
                 server/Makefile
 | 
						|
                 socket/Makefile
 | 
						|
                 types/Makefile
 | 
						|
                 utils/Makefile
 | 
						|
                 lib/checkarch.pl lib/collect.pl
 | 
						|
                 utils/add_throw.perl utils/metaserver.pl utils/scores.pl utils/player_dl.pl
 | 
						|
                 utils/crossloop.tmpl utils/crossloop.pl.tmpl utils/crossloop.web
 | 
						|
                 plugins/Makefile
 | 
						|
                 plugins/cfanim/Makefile plugins/cfanim/include/Makefile
 | 
						|
                 plugins/cflogger/Makefile
 | 
						|
                 plugins/cfnewspaper/Makefile
 | 
						|
                 plugins/cfpython/Makefile plugins/cfpython/include/Makefile
 | 
						|
                 plugins/cfrhg/Makefile
 | 
						|
                 plugins/citylife/Makefile
 | 
						|
                 plugins/common/Makefile plugins/common/include/Makefile
 | 
						|
                 test/Makefile
 | 
						|
                 test/bugs/Makefile test/bugs/bugtrack/Makefile
 | 
						|
                 test/include/Makefile test/templates/Makefile test/toolkit/Makefile
 | 
						|
                 test/unit/Makefile
 | 
						|
                 test/unit/common/Makefile test/unit/random_maps/Makefile
 | 
						|
                 test/unit/server/Makefile test/unit/socket/Makefile])
 | 
						|
AC_OUTPUT
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([Configuration summary....])
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([  Paths])
 | 
						|
AC_MSG_NOTICE([    prefix default value                 ${prefix}])
 | 
						|
AC_MSG_NOTICE([    exec_prefix default value            ${exec_prefix}])
 | 
						|
AC_MSG_NOTICE([    Will put executables in              $bindir])
 | 
						|
AC_MSG_NOTICE([    Will put resources in                $datadir])
 | 
						|
AC_MSG_NOTICE([    Will put config in                   $sysconfdir])
 | 
						|
AC_MSG_NOTICE([    Will put server runtime datas in:    $localstatedir])
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([  Build options])
 | 
						|
AC_MSG_NOTICE([])
 | 
						|
AC_MSG_NOTICE([    Will build metaserver2 support?      $ac_cv_header_curl_curl_h])
 | 
						|
AC_MSG_NOTICE([    Will build plugins?                  $cf_have_libdl])
 | 
						|
 | 
						|
if test x"$cf_have_libsqlite" = "xyes" ; then
 | 
						|
AC_MSG_NOTICE([    Will build cflogger?                 $enable_logger])
 | 
						|
AC_MSG_NOTICE([    Will build cfnewspaper?              $enable_newspaper])
 | 
						|
fi
 | 
						|
 | 
						|
if test "x$cf_have_libdl" = "xyes" ; then
 | 
						|
AC_MSG_NOTICE([    Will build python plugin?            $cf_will_build_python])
 | 
						|
 | 
						|
fi
 | 
						|
if test x"$xsltengine" != "x" ; then
 | 
						|
    check_complement=["(will generate report)"]
 | 
						|
fi
 | 
						|
if test "x$have_check" = "xyes" -a x"$enable_check" = "xyes" ; then
 | 
						|
AC_MSG_NOTICE([    Will process unit testing?           yes $check_complement])
 | 
						|
AC_MSG_NOTICE([      (run make; make -k check)])
 | 
						|
else
 | 
						|
AC_MSG_NOTICE([    Will process unit testing?           no])
 | 
						|
AC_MSG_NOTICE([      If you are a developer, you MUST install the check framework])
 | 
						|
AC_MSG_NOTICE([      and write automated tests for all your add-ons!])
 | 
						|
fi
 |