dnl Process this file with autoconf to produce a configure script.
AC_INIT(src/act.comm.c)
AC_SUBST(MYFLAGS)
AC_SUBST(NETLIB)
AC_SUBST(CRYPTLIB)

AC_CONFIG_HEADER(src/conf.h)
AC_DEFINE(CIRCLE_UNIX)

dnl Find the 'more' program
AC_CHECK_PROGS(MORE, less most more cat)

dnl Checks for programs.
AC_PROG_CC

dnl If we're using gcc, use gcc options.
dnl If not, test for various common switches to make a 'cc' compiler
dnl compile ANSI C code.
if test $ac_cv_prog_gcc = yes; then

  dnl Determine if gcc -Wall causes warnings on isascii(), etc.
  AC_CACHE_CHECK(whether ${CC-cc} -Wall also needs -Wno-char-subscripts,
	ac_cv_char_warn,
  [
    OLDCFLAGS=$CFLAGS
    CFLAGS="$CFLAGS -Wall -Werror"
    AC_TRY_COMPILE([#include <ctype.h>],
       [ int i; char c;
         i = isascii(c);
         i = isdigit(c);
         i = isprint(c);
       ], ac_cv_char_warn=no, ac_cv_char_warn=yes)
    CFLAGS=$OLDCFLAGS
  ])

  dnl If Determine if gcc can accept -Wno-char-subscripts
  AC_CACHE_CHECK(whether ${CC-cc} accepts -Wno-char-subscripts, ac_cv_gcc_ncs,
  [
    OLDCFLAGS=$CFLAGS
    CFLAGS="$CFLAGS -Wno-char-subscripts"
    AC_TRY_COMPILE(, , ac_cv_gcc_ncs=yes, ac_cv_gcc_ncs=no)
    CFLAGS=$OLDCFLAGS
  ])

  dnl If gcc -Wall gives no warnings with isascii(), use "-Wall";
  dnl Otherwise, if gcc -Wall gives isascii warnings:
  dnl    If we can use -Wno-char-subscripts, use "-Wall -Wno-char-subscripts"
  dnl    If can't use -Wno-char-subscripts, use no flags at all.

  if test ${ac_cv_char_warn:-ERROR} = no; then
    MYFLAGS="-Wall"
  else
    if test ${ac_cv_gcc_ncs:-ERROR} = yes; then
      MYFLAGS="-Wall -Wno-char-subscripts"
    else
      MYFLAGS=""
    fi
  fi

else
  dnl We aren't using gcc so we can't assume any special flags.
  MYFLAGS=""

fi

dnl Checks for libraries.  We check for the library only if the function is
dnl not available without the library.
AC_CHECK_FUNC(gethostbyaddr, ,
    [AC_CHECK_LIB(nsl, gethostbyaddr, NETLIB="-lnsl $NETLIB")])

AC_CHECK_FUNC(socket, ,
    [AC_CHECK_LIB(socket, socket, NETLIB="-lsocket $NETLIB")])

AC_CHECK_FUNC(malloc, ,
    [AC_CHECK_LIB(malloc, malloc)])

AC_CHECK_FUNC(crypt, AC_DEFINE(CIRCLE_CRYPT),
    [AC_CHECK_LIB(crypt, crypt, AC_DEFINE(CIRCLE_CRYPT) CRYPTLIB="-lcrypt")]
    )


dnl Checks for header files.
AC_HEADER_STDC
AC_HEADER_SYS_WAIT
AC_CHECK_HEADERS(fcntl.h sys/fcntl.h errno.h net/errno.h string.h strings.h)
AC_CHECK_HEADERS(limits.h sys/time.h sys/select.h sys/types.h unistd.h)
AC_CHECK_HEADERS(memory.h crypt.h assert.h arpa/telnet.h arpa/inet.h)
AC_CHECK_HEADERS(sys/stat.h sys/socket.h sys/resource.h netinet/in.h netdb.h)
AC_CHECK_HEADERS(signal.h sys/uio.h)

dnl Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_TYPE_PID_T
AC_TYPE_SIZE_T
AC_CHECK_TYPE(ssize_t, int)
AC_HEADER_TIME

dnl Checks for library functions.
AC_TYPE_SIGNAL

dnl Check for functions that parse IP addresses
ORIGLIBS=$LIBS
LIBS="$LIBS $NETLIB"
AC_CHECK_FUNCS(inet_addr inet_aton)
LIBS=$ORIGLIBS

dnl Check for prototypes
AC_CHECK_PROTO(accept)
AC_CHECK_PROTO(atoi)
AC_CHECK_PROTO(atol)
AC_CHECK_PROTO(bind)
AC_CHECK_PROTO(bzero)
AC_CHECK_PROTO(chdir)
AC_CHECK_PROTO(close)
AC_CHECK_PROTO(crypt)
AC_CHECK_PROTO(fclose)
AC_CHECK_PROTO(fcntl)
AC_CHECK_PROTO(fflush)
AC_CHECK_PROTO(fprintf)
AC_CHECK_PROTO(fputc)
AC_CHECK_PROTO(fputs)
AC_CHECK_PROTO(fread)
AC_CHECK_PROTO(fscanf)
AC_CHECK_PROTO(fseek)
AC_CHECK_PROTO(fwrite)
AC_CHECK_PROTO(getpeername)
AC_CHECK_PROTO(getpid)
AC_CHECK_PROTO(getrlimit)
AC_CHECK_PROTO(getsockname)
AC_CHECK_PROTO(gettimeofday)
AC_CHECK_PROTO(htonl)
AC_CHECK_PROTO(htons)
AC_CHECK_PROTO(inet_addr)
AC_CHECK_PROTO(inet_aton)
AC_CHECK_PROTO(inet_ntoa)
AC_CHECK_PROTO(listen)
AC_CHECK_PROTO(ntohl)
AC_CHECK_PROTO(perror)
AC_CHECK_PROTO(printf)
AC_CHECK_PROTO(qsort)
AC_CHECK_PROTO(read)
AC_CHECK_PROTO(rewind)
AC_CHECK_PROTO(select)
AC_CHECK_PROTO(setitimer)
AC_CHECK_PROTO(setrlimit)
AC_CHECK_PROTO(setsockopt)
AC_CHECK_PROTO(socket)
AC_CHECK_PROTO(sprintf)
AC_CHECK_PROTO(sscanf)
AC_CHECK_PROTO(system)
AC_CHECK_PROTO(time)
AC_CHECK_PROTO(unlink)
AC_CHECK_PROTO(write)

AC_OUTPUT(src/Makefile src/util/Makefile)
#
echo "Configuration completed.  To compile, type:  cd src; make"
