game/bin/
game/data/
dnl Process this file with autoconf to produce a configure script.
AC_INIT(mudconf.h)
AC_CONFIG_HEADER(autoconf.h)
AC_PROG_CC
AC_PROG_CPP
AC_ISC_POSIX
AC_MINIX
AC_HEADER_STDC 

AC_CHECK_HEADERS(memory.h unistd.h errno.h malloc.h ieeefp.h sys/select.h sys/rusage.h sys/ucontext.h)
AC_TIME_WITH_SYS_TIME
AC_FUNC_VFORK
AC_FUNC_VPRINTF
AC_HAVE_FUNCS(setrlimit getrusage timelocal mktime srandom)
AC_HAVE_FUNCS(getpagesize getdtablesize socket gethostbyaddr)
AC_HAVE_FUNCS(gettimeofday)
AC_REPLACE_FUNCS(strdup)
AC_TYPE_SIGNAL
AC_MSG_CHECKING(for struct sigcontext argument in signal handlers)
AC_TRY_COMPILE([#include <sys/signal.h>],[struct sigcontext scp;],
AC_DEFINE(HAVE_STRUCT_SIGCONTEXT) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
AC_FUNC_WAIT3
AC_STRUCT_TM
AC_STRUCT_TIMEZONE
AC_TYPE_PID_T
AC_MSG_CHECKING(for union wait)
AC_TRY_COMPILE([#include <sys/wait.h>],[union wait stat;],
AC_DEFINE(HAVE_UNION_WAIT) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
AC_MSG_CHECKING(for extended string dcls)
AC_HEADER_EGREP(rindex,string.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_INDEX_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for malloc dcl)
AC_HEADER_EGREP(realloc,stdlib.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_MALLOC_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for vsprintf dcl)
AC_HEADER_EGREP(vsprintf,stdio.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_VSPRINTF_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for sprintf dcl)
AC_HEADER_EGREP(\<sprintf|\<*sprintf,stdio.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_SPRINTF_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for extended stdio dcls)
AC_HEADER_EGREP(fread,stdio.h,AC_DEFINE(EXTENDED_STDIO_DCLS) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))
AC_MSG_CHECKING(for extended socket dcls)
AC_HEADER_EGREP(setsockopt,sys/socket.h,AC_DEFINE(EXTENDED_SOCKET_DCLS) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))

AC_MSG_CHECKING(for signal SIGCHLD braindamage)
AC_TRY_RUN([
#include <sys/signal.h>

#ifndef SIGCHLD
#define SIGCHLD SIGCLD
#endif

int rlev;

sighand(sig,code)
int sig, code;
{
int stat;

  if (rlev++ > 2)
    exit(1);
  signal(SIGCHLD, sighand);
  wait(&stat);
  return;
}

main(argc, argv)
int argc;
char **argv;
{

  rlev = 0;
  signal(SIGCHLD, sighand);
  if (fork()) {
    sleep(10);
  } else {
    sleep(2);
    exit(1);
  }
  exit(0);
}
],[AC_MSG_RESULT(no)],[AC_DEFINE(SIGNAL_SIGCHLD_BRAINDAMAGE) AC_MSG_RESULT(yes)], [AC_MSG_RESULT(cross-compiling)])

AC_DECL_SYS_SIGLIST

case "$DEFS" in
*HAVE_ERRNO_H*)
AC_DEFINE(NEED_SYS_ERRLIST_DCL) ;;
*)
AC_MSG_CHECKING(for sys_errlist dcl)
AC_HEADER_EGREP(sys_errlist,errno.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_SYS_ERRLIST_DCL) AC_MSG_RESULT(no)) ;;
esac
AC_MSG_CHECKING(for perror dcl)
AC_HEADER_EGREP(perror,errno.h, AC_MSG_RESULT(yes) ,AC_DEFINE(NEED_PERROR_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for getrusage dcl)
AC_HEADER_EGREP(getrusage,sys/resource.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_GETRUSAGE_DCL) AC_MSG_RESULT(no))
AC_MSG_CHECKING(for getrlimit dcl)
AC_HEADER_EGREP(getrlimit,sys/resource.h, AC_MSG_RESULT(yes), AC_DEFINE(NEED_GETRLIMIT_DCL) AC_MSG_RESULT(no))
AC_C_CONST
AC_C_CHAR_UNSIGNED
AC_C_INLINE
AC_MSG_CHECKING(for linger)
AC_TRY_COMPILE([#include <sys/socket.h>],[struct linger ling; ling.l_onoff = 1;],
AC_DEFINE(HAVE_LINGER) AC_MSG_RESULT(yes), AC_MSG_RESULT(no))

LIBS="-L./gdbm-1.7.3 -lgdbm"    
AC_CHECK_LIB(resolv, main)
AC_CHECK_LIB(crypt, main)

case "$DEFS" in
*HAVE_SOCKET*)
;;
*)
AC_CHECK_LIB(socket, main) ;;
esac

case "$DEFS" in
*HAVE_GETHOSTBYADDR*)
;;
*)
AC_CHECK_LIB(inet, main) ;;
esac

AC_DYNIX_SEQ
AC_IRIX_SUN
AC_CHECK_LIB(nsl, main)
AC_CHECK_LIB(bsd, main)
AC_CHECK_LIB(iberty, main)
AC_SUBST(LIBOBJS)
AC_OUTPUT(Makefile)