dnl ---------------------------------------------------------------------------
dnl Process this file with autoconf to produce a configure script.
dnl ---------------------------------------------------------------------------

AC_INIT(src/noffle.c)

AC_PREREQ(2.13)

PACKAGE=noffle
VERSION=1.1.1-unstable-develop

AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE($PACKAGE,$VERSION)

dnl AM_MAINTAINER_MODE

AC_DEFINE(_GNU_SOURCE)

AC_LANG_C


dnl ---------------------------------------------------------------------------
dnl Checks for programs.
dnl ---------------------------------------------------------------------------

AC_PROG_CC
AC_PROG_GCC_TRADITIONAL
AC_PROG_INSTALL
AC_PROG_MAKE_SET

AC_PATH_PROG(SENDMAILPROG, sendmail, 'notfound',
             /usr/sbin:/usr/lib:$PATH)
if test "x$SENDMAILPROG" = "xnotfound"; then
 AC_MSG_ERROR(sendmail program not found in /usr/lib:/usr/sbin:$PATH .)
fi

dnl ---------------------------------------------------------------------------
dnl System checks.
dnl ---------------------------------------------------------------------------

AC_AIX
AC_ISC_POSIX
AC_MINIX


dnl ---------------------------------------------------------------------------
dnl Checks for libraries.
dnl ---------------------------------------------------------------------------

# Whenever both -lsocket and -lnsl are needed, it seems to be always the
# case that gethostbyname requires -lnsl.  So, check -lnsl first, for it
# to be in LIBS before the setsockopt checks are performed.  *However*,
# on SINIX-N 5.43, this is false, and gethostent seems to be a better
# candidate. So, let's use it below instead of gethostbyname, and see.

# [ This is ripped from GNU tar. ]

AC_CHECK_FUNC(gethostent)
if test $ac_cv_func_gethostent = no; then
  AC_CHECK_LIB(nsl, gethostent)
fi
AC_CHECK_FUNC(setsockopt)
if test $ac_cv_func_setsockopt = no; then
  AC_CHECK_LIB(socket, setsockopt)
fi


AC_CHECK_LIB(gdbm, gdbm_open)


dnl ---------------------------------------------------------------------------
dnl Checks for header files.
dnl ---------------------------------------------------------------------------

AC_HEADER_STDC
AC_HEADER_DIRENT
AC_CHECK_HEADERS(gdbm.h syslog.h sys/resource.h sys/utsname.h)
AC_CHECK_HEADERS(fnmatch.h errno.h getopt.h time.h sys/time.h signal.h)
AC_CHECK_HEADERS(netdb.h sys/socket.h fcntl.h limits.h unistd.h)


dnl ---------------------------------------------------------------------------
dnl Checks for typedefs, structures, and compiler characteristics.
dnl ---------------------------------------------------------------------------

AC_C_CONST
AC_TYPE_SIZE_T
AC_HEADER_TIME
AC_STRUCT_TM

AC_CACHE_CHECK(socklen_t, noffle_cv_type_socklen_t,
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/socket.h>
], [ socklen_t s; ],
noffle_cv_type_socklen_t=yes, noffle_cv_type_socklen_t=no)
)

if test "x$noffle_cv_type_socklen_t" = "xno"
then
 AC_DEFINE_UNQUOTED(socklen_t, unsigned int)
fi


dnl ---------------------------------------------------------------------------
dnl Checks for library functions.
dnl ---------------------------------------------------------------------------

AC_TYPE_SIGNAL
AC_FUNC_STRFTIME
AC_FUNC_FNMATCH
AC_CHECK_FUNCS(fdopen vsnprintf snprintf __vsnprintf __snprintf)
AC_CHECK_FUNCS(gethostname mkdir mktime select socket strerror strstr uname)


dnl ---------------------------------------------------------------------------
dnl Checks for system services.
dnl ---------------------------------------------------------------------------


dnl ---------------------------------------------------------------------------
dnl Handle user-specified configure options
dnl ---------------------------------------------------------------------------

AC_ARG_ENABLE(debug, [
NOFFLE options:
  --enable-debug=[no/yes] build with debugging [default=no]], ,
enable_debug=no)

if test "x$enable_debug" = "xyes" && test "x$GCC" = "xyes"; then
 CFLAGS="$CFLAGS \
-Wall -O2 -g -pedantic -ansi -W -Wtraditional -Wshadow -Wpointer-arith \
-Wcast-align -Wwrite-strings \
-Wstrict-prototypes -Wmissing-prototypes \
-Wmissing-declarations -Wnested-externs -Winline \
-D__USE_BSD -D__USE_XOPEN_EXTENDED -D__USE_POSIX"
else
  CFLAGS="$CFLAGS -D__USE_BSD -D__USE_XOPEN_EXTENDED -D__USE_POSIX"
fi


# [ This is adapted from mutt. ]
AC_ARG_WITH(docdir,
[  --with-docdir=PATH      specify where to put the documentation],
[noffle_cv_docdir=$withval],
[ AC_CACHE_CHECK(where to put the documentation, noffle_cv_docdir,
  [if test x$prefix = xNONE; then
    noffle_cv_prefix=$ac_default_prefix
   else
    noffle_cv_prefix=$prefix
   fi
   noffle_cv_docdir=$noffle_cv_prefix/doc/noffle
  ])
])

dnl check where to put the spooldir - taken from leafnode 2.0beta.
AC_MSG_CHECKING(spooldir)
AC_ARG_WITH(spooldir,
[  --with-spooldir=PATH    news spool directory (/var/spool/noffle)],
  if echo "$withval" | egrep >/dev/null -v '^/' ; then
    AC_MSG_ERROR(you must give an absolute path)
  fi
  withval=`echo "$withval" | sed 'sx/*$xx;'`
,
  withval="/var/spool/$PACKAGE"
)
SPOOLDIR=$withval
AC_MSG_RESULT($SPOOLDIR)
AC_DEFINE_UNQUOTED(SPOOLDIR, "$SPOOLDIR")
AC_SUBST(SPOOLDIR)

dnl check where to put the config file
AC_MSG_CHECKING(configfile)
AC_ARG_WITH(configfile,
[  --with-configfile=PATH   configuration file (/etc/noffle.conf)],
  if echo "$withval" | egrep >/dev/null -v '^/' ; then
    AC_MSG_ERROR(you must give an absolute path)
  fi
  withval=`echo "$withval" | sed 'sx/*$xx;'`
,
  withval="/etc/$PACKAGE.conf"
)
CONFIGFILE=$withval
AC_MSG_RESULT($CONFIGFILE)
AC_DEFINE_UNQUOTED(CONFIGFILE,"$CONFIGFILE")
AC_SUBST(CONFIGFILE)

dnl ---------------------------------------------------------------------------
dnl Unquoted defines and substituted variables.
dnl ---------------------------------------------------------------------------

dnl NOFFLE_EXPAND_DIR(VARNAME, DIR)
dnl expands occurrences of ${prefix} and ${exec_prefix} in the given DIR,
dnl and assigns the resulting string to VARNAME
dnl example: NOFFLE_EXPAND_DIR(LOCALEDIR, "$datadir/locale")
dnl eg, then: AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR")
dnl by Alexandre Oliva
dnl from http://www.cygnus.com/ml/automake/1998-Aug/0040.html
AC_DEFUN(NOFFLE_EXPAND_DIR, [
 $1=$2
 $1=`(
  test "x$prefix" = xNONE && prefix="$ac_default_prefix"
  test "x$exec_prefix" = xNONE && exec_prefix="${prefix}"
  eval echo \""[$]$1"\"
 )`
])

DOCDIR=$noffle_cv_docdir
AC_SUBST(DOCDIR)

AC_DEFINE_UNQUOTED(SENDMAILPROG, "$SENDMAILPROG")

dnl ---------------------------------------------------------------------------
dnl Output files.
dnl ---------------------------------------------------------------------------

AC_OUTPUT(Makefile src/Makefile docs/Makefile)

