dnl Process this file with autoconf to produce a configure script. AC_INIT([crossfire], [2.0+], [crossfire-devel@listserv.real-time.com]) AC_CONFIG_AUX_DIR(utils) AC_CONFIG_SRCDIR([server/main.C]) AM_INIT_AUTOMAKE AM_CONFIG_HEADER(include/autoconf.h) AM_MAINTAINER_MODE AC_PREFIX_DEFAULT(/usr/games/crossfire) dnl we want a config.h file instead of -D options. dnl Checks for programs. AC_LANG(C++) AC_PROG_CXX AC_PROG_LIBTOOL 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 AC_PROG_AWK dnl AC_ARG_WITH(python, [ --with-python=dir Directory to look for python headers/library (default=standard system location) ], PYTHON_HOME="$withval") dnl check for some other programs AC_PATH_PROG(LATEX, latex) AC_PATH_PROG(GZIP, gzip) AC_PATH_PROG(BZIP, bzip2) AC_PATH_PROG(TAR, tar) AC_PATH_PROG(BASENAME, basename) AC_PATH_PROG(PERL, perl5.8) AC_PATH_PROG(PERL, perl5) AC_PATH_PROG(PERL, perl) AC_PATH_PROG(GPERF, gperf) if test -z "$GPERF"; then AC_MSG_ERROR([we need gperf, the GNU perfect hash generator]) fi GUNZIP="$GZIP -c" BUNZIP="$BZIP -c" 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; dnl nsl, socket may be needed for the X-windowing system, so check dnl for them before before checking for X. AC_CHECK_LIB(nsl, main) AC_CHECK_LIB(socket, main) dnl Checks for libraries. AC_CHECK_LIB(m, main) AC_CHECK_LIB(png, main, AC_DEFINE(HAVE_LIBPNG,[],[Define if libpng is available]) X11LIBS="$X11LIBS -lpng", , $X11LIBS ) dnl png has a dependency in some cases on libz - if we have it, can't really dnl be harmful to link it in. AC_CHECK_LIB(z, main, AC_DEFINE(HAVE_LIBZ,[],[Define if libz is available]) X11LIBS="$X11LIBS -lz", , $X11LIBS ) dnl Misc libraries. AC_CHECK_LIB(crypt, main) AC_CHECK_LIB(des, des_crypt) dnl Checks for header files. AC_CHECK_HEADERS(crypt.h des.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_INLINE AC_CHECK_SIZEOF(long) AC_CHECK_SIZEOF(long long) dnl Checks for library functions. AC_PROG_GCC_TRADITIONAL AC_TYPE_SIGNAL dnl alphasort can not be added to AC_CHECK_FUNCS because AC_MSG_CHECKING(checking if alphasort is defined) AC_TRY_COMPILE([#include ], [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 #include ], [struct timeval tv; struct timezone tzp; gettimeofday(&tv, &tzp);], [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include #include ], [struct timeval tv; gettimeofday(&tv, NULL);], [ac_gettimeofday_args=2], [AC_TRY_COMPILE([#include #include ], [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_PATH_PROG(PKG_CONFIG, pkg-config, no) AC_MSG_CHECKING(glib >= 2.10) if $PKG_CONFIG glib-2.0 --atleast-version 2.10; then CXXFLAGS="$CXXFLAGS `$PKG_CONFIG glib-2.0 --cflags`" LIBS="$LIBS `$PKG_CONFIG glib-2.0 --libs`" AC_MSG_RESULT(ok) else AC_MSG_ERROR(no) fi AC_SUBST(x_includes) AC_SUBST(x_libraries) AC_SUBST(no_x) AM_CONDITIONAL(HAVE_X,test "x$no_x" = "x") AC_SUBST(X11LIBS) 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]) AC_MSG_CHECKING(for $PERL suitability) if $PERL -MExtUtils::Embed -e "use v5.8" >/dev/null 2>/dev/null; then save_CXXFLAGS="$CXXFLAGS" save_LIBS="$LIBS" CXXFLAGS="$CXXFLAGS `$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`" LIBS="$LIBS `$PERL -MExtUtils::Embed -e ldopts`" AC_TRY_LINK([ #include #include #include #include "EventAPI.h" ],[ PerlInterpreter *perl = perl_alloc (); ],[perl_link=yes],[perl_link=no]) CXXFLAGS="$save_CXXFLAGS" LIBS="$save_LIBS" if test x$perl_link = xyes; then AC_MSG_RESULT(ok) AC_DEFINE(ENABLE_PERL, 1, Define if you can embed a perl interpreter) PERLFLAGS="`$PERL -MExtUtils::Embed -e ccopts` `$PERL -MEvent::MakeMaker -e 'print +{&Event::MakeMaker::event_args}->{INC}'`" PERLLIB="`$PERL -MExtUtils::Embed -e ldopts`" PERLPRIVLIBEXP="`$PERL -MConfig -e 'print $Config{privlibexp}'`" CPPFLAGS="$CPPFLAGS $PERLFLAGS" else AC_MSG_ERROR([no, unable to link]) fi else AC_MSG_ERROR([no working perl found, or perl not version >= 5.8]) fi AC_SUBST(PERLLIB) AC_SUBST(PERLFLAGS) AC_SUBST(PERLPRIVLIBEXP) AC_SUBST(PERL) AC_OUTPUT([Makefile include/Makefile lib/Makefile pod/Makefile random_maps/Makefile socket/Makefile server/Makefile src/Makefile utils/Makefile lib/checkarch.pl lib/collect.pl utils/add_throw.perl utils/crossloop.tmpl utils/crossloop.pl.tmpl utils/metaserver.pl utils/crossloop.web utils/scores.pl utils/player_dl.pl common/Makefile ])