#
#   Empire - A multi-player, client/server Internet based war game.
#   Copyright (C) 1986-2009, Dave Pare, Jeff Bailey, Thomas Ruschak,
#                            Ken Stevens, Steve McClure
#
#   This program is free software; you can redistribute it and/or modify
#   it under the terms of the GNU General Public License as published by
#   the Free Software Foundation; either version 2 of the License, or
#   (at your option) any later version.
#
#   This program is distributed in the hope that it will be useful,
#   but WITHOUT ANY WARRANTY; without even the implied warranty of
#   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#   GNU General Public License for more details.
#
#   You should have received a copy of the GNU General Public License
#   along with this program; if not, write to the Free Software
#   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
#
#   ---
#
#   See files README, COPYING and CREDITS in the root of the source
#   tree for related information and legal notices.  It is expected
#   that future projects/authors will amend these files as needed.
#
#   ---
#
#   configure.ac: Autoconf input file
#
#   Known contributors to this file:
#      Markus Armbruster, 2005-2008
#
# Process this file with autoconf to produce a configure script.

# Autoconf makes checking for and programming around assorted ancient
# crap relatively painless.  But why bother?  Just rely on C89 and
# POSIX, and when something breaks on some oddball machine, see
# whether it's worth fixing.

AC_PREREQ(2.59)
AC_INIT([Wolfpack Empire], [4.3.21], [wolfpack@wolfpackempire.com], [empire])
AC_CONFIG_SRCDIR([include/combat.h])
AC_CONFIG_MACRO_DIR([m4])
AC_CONFIG_HEADERS([config.h])


### Checks for programs
AC_PROG_AWK
AC_PROG_INSTALL
AC_PROG_RANLIB
AC_PROG_CC
AC_SUBST(GCC)
AM_PROG_CC_C_O
# Private automake macro, tsk, tsk, tsk...
_AM_DEPENDENCIES(CC)

AC_ARG_VAR(NROFF, [nroff command])
AC_CHECK_PROG(NROFF, groff, [GROFF_NO_SGR= groff -Tascii -U], nroff)

# not really a check for a program, but close enough
if test -d $srcdir/.git; then revctrl=git
else revctrl=
fi
AC_SUBST(revctrl,$revctrl)


### Checks for libraries
ACX_PTHREAD
LIB_SOCKET_NSL
# TODO merge this into LIB_SOCKET_NSL?
case "$host_os" in
*mingw32)
    LIBS="-lws2_32 $LIBS" ;;
esac

# TODO turn this into a macro?
save_LIBS=$LIBS
AC_SEARCH_LIBS([setupterm], [termlib termcap curses ncurses])
# FIXME if not found, complain and switch off highlighting
termlibs=`echo $LIBS | sed s/\`echo $save_LIBS | sed 's/././g'\`'$//'`
AC_SUBST(termlibs)
LIBS=$save_LIBS


### Checks for header files


### Checks for typedefs, structures, and compiler characteristics

AC_C_CHAR_UNSIGNED


### Checks for library functions

AC_CHECK_FUNCS(getaddrinfo)
MY_FUNC_MAKECONTEXT


### Site configuration

# Can't be bothered to make MAXNOC configurable right now.
AC_DEFINE([MAXNOC], [99],
	  [The maximum number of countries])

AC_ARG_VAR([EMPIREHOST], [Default host (client only) [127.0.0.1]])
test "$EMPIREHOST" || EMPIREHOST=127.0.0.1

AC_ARG_VAR([EMPIREPORT], [Default port (client and server) [6665]])
test "$EMPIREPORT" || EMPIREPORT=6665

AC_ARG_WITH([pthread],
	    AS_HELP_STRING([--with-pthread],
			   [use POSIX threads]))

# Select thread package
empthread=
if test "$with_pthread" != no; then
    if test "$acx_pthread_ok" = yes; then
	empthread=POSIX
    fi
fi
if test -z "$with_pthread" || test "$with_pthread" = no; then
    if test "$ac_cv_func_makecontext" = yes; then
	empthread=LWP
    fi
    case "$host_os" in
    *mingw32)
	empthread=Windows ;;
    esac
fi
if test -z "$empthread"; then
    AC_MSG_ERROR([No usable thread package found])
fi
AC_SUBST(empthread)
AC_MSG_NOTICE([Using $empthread threads])
case $empthread in
LWP)	AC_DEFINE([EMPTH_LWP], 1, [Define to use LWP threads]) ;;
POSIX)	AC_DEFINE([EMPTH_POSIX], 1, [Define to use POSIX threads]) ;;
Windows) AC_DEFINE([EMPTH_W32], 1, [Define to use Windows threads]) ;;
esac


### Output

AC_CONFIG_FILES([GNUmakefile])
AC_CONFIG_COMMANDS([stamp-h],
	[case $revctrl in
	git)
	    mkdir -p `cd $srcdir && git ls-files \
		| sed -n 's,/@<:@^/@:>@*$,,gp' | uniq`
	    ;;
	*)
	    mkdir -p `sed s/.*=// <$srcdir/sources.mk | tr ' ' '\012' \
		| sed -n '/\//s,/@<:@^/@:>@*$,,gp'| uniq`
	esac
	mkdir -p info.html info.nr lib
	touch stamp-h],
	[revctrl=$revctrl])
AC_OUTPUT
