dnl
-dnl configure.in -- autoconf template for nmh
+dnl configure.ac -- autoconf template for nmh
dnl
dnl Move this up a bit
-AC_PREREQ(2.61)
+AC_PREREQ([2.61])
-AC_INIT(nmh, m4_normalize(m4_include([VERSION])))
-AC_CONFIG_SRCDIR(h/nmh.h)
-AC_CONFIG_HEADER(config.h)
+AC_INIT([nmh], m4_normalize(m4_include([VERSION])), [nmh-workers@nongnu.org])
+AC_CONFIG_SRCDIR([h/nmh.h])
+AC_CONFIG_HEADER([config.h])
+AM_INIT_AUTOMAKE([-Wall -Werror foreign subdir-objects])
-AC_CANONICAL_TARGET
+AC_CANONICAL_HOST
-dnl ---------------------
-dnl define a macro or two
-dnl ---------------------
-
-AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [
-if test -n "$LIBTOOL" ; then
- tmptest=`$LIBTOOL --version 2>&1 | grep GNU`
- if test x"$tmptest" != x ; then
- GNU_LIBTOOL=1
- AC_SUBST(GNU_LIBTOOL)dnl
- fi
-fi
-] )
-
-echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION"
+AC_MSG_NOTICE([configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION])
AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl
dnl What date of nmh are we building?
DATE=`cat ${srcdir}/DATE`
-echo "configuring for nmh dated $DATE"
-AC_SUBST(DATE)dnl
+AC_MSG_NOTICE([configuring for nmh dated $DATE])
+AC_SUBST([DATE])dnl
dnl --------------------------
dnl CHECK COMMAND LINE OPTIONS
dnl --------------------------
dnl Do you want to debug nmh?
-AC_ARG_ENABLE(debug,
+AC_ARG_ENABLE([debug],
AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
dnl The old redundant --enable-nmh-debug is deprecated and undocumented.
-if test x"$enable_nmh_debug" = x"yes"; then
- enable_debug=yes
-fi
-
-dnl Allow users to send email from addresses other than their default?
-AC_ARG_ENABLE(masquerade,
- AS_HELP_STRING([--enable-masquerade='draft_from mmailid username_extension'],
- [enable up to 3 types of address masquerading]),
- [if test x"$enable_masquerade" = x"yes"; then
- masquerade="draft_from mmailid username_extension"
- else
- masquerade="$enable_masquerade"
- fi], [masquerade="draft_from mmailid username_extension"])
-AC_SUBST(masquerade)dnl
-
-dnl Do you want client-side support for pop?
-AC_ARG_ENABLE(pop,
- AS_HELP_STRING([--enable-pop], [enable client-side support for plain POP3]))
-dnl The old redundant --enable-nmh-pop is deprecated and undocumented.
-if test x"$enable_nmh_pop" = x"yes"; then
- enable_pop=yes
-fi
+AS_IF([test x"$enable_nmh_debug" = x"yes"], [enable_debug=yes])
dnl Do you want to disable use of locale functions
AH_TEMPLATE([LOCALE],
[Undefine if you don't want locale features. By default this is defined.])
AC_ARG_ENABLE([locale],
-AC_HELP_STRING([--disable-locale], [turn off locale features]),
-[if test x$enableval = xyes; then
- AC_DEFINE(LOCALE)
-fi],
-AC_DEFINE(LOCALE)
-)
+ [AS_HELP_STRING([--disable-locale], [turn off locale features])],
+ [AS_IF([test x$enableval = xyes], [AC_DEFINE(LOCALE)])],
+ [AC_DEFINE(LOCALE)])
dnl Do you want client-side support for using SASL for authentication?
dnl Note that this code will be enabled for both POP and SMTP
-AC_ARG_WITH(cyrus-sasl, AS_HELP_STRING([--with-cyrus-sasl],
+AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
[Enable SASL support via the Cyrus SASL library]))
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
- AC_DEFINE(CYRUS_SASL, 1,
- [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
- if test x"$with_cyrus_sasl" != xyes; then
- AC_MSG_WARN([Arguments to --with-cyrus-sasl now ignored])
- AC_MSG_WARN([Please pass the appropriate arguments to CPPFLAGS/LDFLAGS])
- fi
- sasl_support=yes
-else
- sasl_support=no
-fi
+AS_IF([test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"],[
+ AC_DEFINE([CYRUS_SASL], [1],
+ [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
+ AS_IF([test x"$with_cyrus_sasl" != xyes],[
+ AC_MSG_WARN([Arguments to --with-cyrus-sasl now ignored])
+ AC_MSG_WARN([Please pass the appropriate arguments to CPPFLAGS/LDFLAGS])])
+ sasl_support=yes], [sasl_support=no])
dnl Do you want client-side support for encryption with TLS?
-AC_ARG_WITH(tls, AS_HELP_STRING([--with-tls], [Enable TLS support]))
-if test x"$with_tls" != x -a x"$with_tls" != x"no"; then
- AC_DEFINE(TLS_SUPPORT, 1, [Support TLS for session encryption.])dnl
- tls_support=yes
-else
- tls_support=no
-fi
+AC_ARG_WITH([tls], AS_HELP_STRING([--with-tls], [Enable TLS support]))
+AS_IF([test x"$with_tls" != x -a x"$with_tls" != x"no"],[
+ AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
+ tls_support=yes],[tls_support=no])
dnl What should be the default editor?
-AC_ARG_WITH(editor,
+AC_ARG_WITH([editor],
AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor]))
-if test -n "$with_editor"; then
- editorpath="$with_editor"
-fi
+AS_IF([test -n "$with_editor"], [editorpath="$with_editor"])
dnl Set the backup prefix
AC_ARG_WITH([hash-backup],
AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
-if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then
- backup_prefix="#"
-else
- backup_prefix=","
-fi
-AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix",
+AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"],
+ [backup_prefix="#"], [backup_prefix=","])
+AC_DEFINE_UNQUOTED([BACKUP_PREFIX], "$backup_prefix",
[The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
-dnl After we know if we're including apop and kpop support, do pop stuff
-if test x"$enable_pop" = x"yes"; then
- AC_DEFINE(POP, 1,
- [Define this to compile client-side support for pop into inc and msgchk.])dnl
- POPLIB=popsbr.o
- POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
-else
- POPSED='/^%nmhbeginpop%/,/^%nmhendpop%/d'
-fi
-AC_SUBST(POPLIB)dnl
-AC_SUBST(POPSED)dnl
-
dnl What method of locking to use?
+AS_CASE(["$host_os"],
+ [aix*|cygwin*|linux*],
+ [default_locktype="fcntl"; default_locking=FCNTL_LOCKING],
+ [freebsd*|openbsd*|darwin*], [default_locktype="flock"; default_locking=FLOCK_LOCKING],
+ [default_locktype="dot"; default_locking=DOT_LOCKING])
+
AC_ARG_WITH(locking,
AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@],
[specify the file locking method]))
LOCKTYPE="fcntl"
AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl
else
- LOCKTYPE="dot"
- AC_DEFINE(DOT_LOCKING)dnl
+ LOCKTYPE="$default_locktype"
+ AC_DEFINE_UNQUOTED($default_locking, 1)dnl
fi
dnl Should we use a locking directory?
-AC_ARG_ENABLE([lockdir], [
- AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [
+AC_ARG_ENABLE([lockdir],
+ [AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [
AS_IF([test "x$enableval" = xyes],[
AC_MSG_ERROR([--enable-lockdir requires an argument])])
AS_IF([test "x$LOCKTYPE" != xdot],[
])
dnl What method of posting should post use?
-AC_ARG_WITH(mts,
- AS_HELP_STRING([--with-mts=@<:@smtp|sendmail@:>@],
+AC_ARG_WITH([mts],
+ AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
[specify the default mail transport agent/service]))
-if test x"$with_mts" = x"smtp"; then
- MTS="smtp"
-elif test x"$with_mts" = x"sendmail"; then
- MTS="sendmail"
-else
- MTS="smtp"
-fi
-AC_SUBST(MTS)dnl
-
-dnl Both the smtp and sendmail mail transport services use the smtp code
-AC_DEFINE(SMTPMTS, 1,
- [Define if you want SMTP (simple mail transport protocol) support.])dnl
+AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
+ [test x"$with_mts" = x"sendmail"], [MTS="sendmail/smtp"],
+ [test x"$with_mts" = x"sendmail/smtp"], [MTS="sendmail/smtp"],
+ [test x"$with_mts" = x"sendmail/pipe"], [MTS="sendmail/pipe"],
+ [MTS="smtp"])
+AC_SUBST([MTS])dnl
dnl What should be the default pager?
-AC_ARG_WITH(pager,
+AC_ARG_WITH([pager],
AS_HELP_STRING([--with-pager=PAGER],[specify the default pager]))
-if test -n "$with_pager"; then
- pagerpath="$with_pager"
+AS_IF([test -n "$with_pager"], [pagerpath="$with_pager"])
+
+dnl If a pager is not explicitly specified, then look for one.
+dnl Fall back to `cat', to avoid catastrophic failure of
+dnl `mhshow', et al., if pagerpath is set to `no'.
+if test -z "$pagerpath"; then
+ pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
+ AC_PATH_PROGS([pagerpath], [more less most cat], [no], [$pathtmp])
fi
+AC_SUBST(pagerpath)dnl
dnl What should be the default mail server(s)?
AC_ARG_WITH(smtpservers,
AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
[specify the default SMTP server(s) @<:@localhost@:>@]))
-if test -n "$with_smtpservers"; then
- smtpservers="$with_smtpservers"
-else
- smtpservers="localhost"
-fi
-AC_SUBST(smtpservers)dnl
+AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"],
+ [smtpservers="localhost"])
+AC_SUBST([smtpservers])dnl
dnl ----------------------------------------------------
dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
dnl ----------------------------------------------------
-AC_PREFIX_DEFAULT(/usr/local/nmh)
+AC_PREFIX_DEFAULT([/usr/local/nmh])
dnl ------------------
dnl CHECK THE COMPILER
fi
AC_PROG_CC
+AM_PROG_CC_C_O
+
+AC_CACHE_CHECK([whether preprocessor supports -Wunused-macros],
+ [nmh_cv_has_unusedmacros],
+ [nmh_saved_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Wunused-macros -Wno-unused-macros"
+ AC_TRY_COMPILE([],[],nmh_cv_has_unusedmacros=yes,nmh_cv_has_unusedmacros=no)
+ CPPFLAGS="$nmh_saved_cppflags"])
+
+if test "$nmh_cv_has_unusedmacros" = 'yes'; then
+ test -z "$CPPFLAGS" && CPPFLAGS=-Wunused-macros \
+ || CPPFLAGS="$CPPFLAGS -Wunused-macros"
+ DISABLE_UNUSED_MACROS_WARNING=-Wno-unused-macros
+fi
+AC_SUBST(DISABLE_UNUSED_MACROS_WARNING)dnl
+
+AC_CACHE_CHECK([whether compiler supports -Wno-sign-compare],
+ [nmh_cv_has_nosigncompare],
+ [nmh_saved_cppflags="$CPPFLAGS"
+ CPPFLAGS="$CPPFLAGS -Wno-sign-compare"
+ AC_TRY_COMPILE([],[],nmh_cv_has_nosigncompare=yes,
+ nmh_cv_has_nosigncompare=no)
+ CPPFLAGS="$nmh_saved_cppflags"])
+
+if test "$nmh_cv_has_nosigncompare" = 'yes'; then
+ DISABLE_SIGN_COMPARE_WARNING=-Wno-sign-compare
+fi
+AC_SUBST(DISABLE_SIGN_COMPARE_WARNING)dnl
-AC_CACHE_CHECK(whether compiler supports -Wno-pointer-sign, nmh_cv_has_noptrsign,
+AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
+[nmh_saved_cflags="$CFLAGS"
+ CFLAGS="$CFLAGS -Wextra -Wno-clobbered"
+ AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
+ CFLAGS="$nmh_saved_cflags"])
+
+AC_CACHE_CHECK([whether compiler supports -Wno-pointer-sign], [nmh_cv_has_noptrsign],
[nmh_saved_cflags="$CFLAGS"
CFLAGS="$CFLAGS -Wno-pointer-sign"
AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no)
CFLAGS="$nmh_saved_cflags"])
+dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
+dnl setup version 2.763, because it disables some features in the
+dnl system system header files and warns about them with -Wall. Try
+dnl to test for that generally, though still with gcc.
+if test "$GCC" = yes; then
+ AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
+ [nmh_saved_cppflags="$CPPFLAGS"
+ nmh_saved_cflags="$CFLAGS"
+ CPPFLAGS="-D_GNU_SOURCE"
+ CFLAGS="-ansi -Wall -Werror"
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>],[tzset();])],
+ [nmh_cv_has_dash_ansi=yes],
+ [nmh_cv_has_dash_ansi=no])
+ CPPFLAGS="$nmh_saved_cppflags"
+ CFLAGS="$nmh_saved_cflags"])
+else
+ nmh_cv_has_dash_ansi=no
+fi
+
dnl if the user hasn't specified CFLAGS, then
dnl if compiler is gcc, then
-dnl use -O2 and some warning flags
+dnl use -O2 and some warning flags
dnl else use -O
-dnl We use -Wall; if the compiler supports it we also use -Wno-pointer-sign,
-dnl because gcc 4 now produces a lot of new warnings which are probably mostly
-dnl spurious and which in any case we don't want to deal with now.
+dnl We use -Wall and -Wextra if supported. If the compiler supports it we
+dnl also use -Wno-pointer-sign, because gcc 4 now produces a lot of new
+dnl warnings which are probably mostly spurious and which in any case we
+dnl don't want to deal with now.
if test "$nmh_cv_has_noptrsign" = "yes"; then
- nmh_gcc_warnflags="-Wall -Wno-pointer-sign"
+ if test "$nmh_cv_has_dash_ansi" = "yes"; then
+ nmh_gcc_common_flags="-ansi -pedantic -Wall"
+ else
+ nmh_gcc_common_flags="-Wall"
+ fi
+ if test "$nmh_cv_has_wextra" = "yes"; then
+ nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered "\
+"-Wno-pointer-sign"
+ else
+ nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wno-pointer-sign"
+ fi
else
- nmh_gcc_warnflags="-Wall"
+ if test "$nmh_cv_has_wextra" = "yes"; then
+ nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered"
+ else
+ nmh_gcc_warnflags="${nmh_gcc_common_flags}"
+ fi
fi
if test -n "$auto_cflags"; then
AC_PROG_INSTALL dnl Check for BSD compatible `install'
AC_PROG_RANLIB dnl Check for `ranlib'
AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
+AC_PROG_SED dnl Check for Posix-compliant sed
AC_PROG_LEX dnl Check for lex/flex
dnl Look for `cut'
pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
-AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
+AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
+
+dnl
+dnl Check for MD5 program and formatting command
+dnl
+AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
+AS_CASE(["${MD5SUM}"],
+ [md5sum], [MD5FMT="cat"],
+ [md5], [[MD5FMT="${SED} -e 's/MD5 *(\(.*\)) *= \([0-9a-f]*\)/\2 \1/'"]],
+ [MD5FMT="missing"])
+AC_SUBST([MD5FMT])
dnl ----------------------------------------------
dnl check for lclint, and lint if it doesn't exist
LINTFLAGS=""
fi
fi
-AC_SUBST(LINT)dnl
-AC_SUBST(LINTFLAGS)dnl
-
-dnl try to figure out which one we've got
-AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp])
-NMH_PROG_GNU_LIBTOOL
-
-dnl Check for lorder and tsort commands
-AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl
-AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl
-
-dnl If either doesn't exist, replace them with echo and cat
-if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then
- LORDER=echo
- TSORT=cat
- AC_SUBST(LORDER)dnl
- AC_SUBST(TSORT)dnl
-dnl Mac OS X has lorder, but sh is too broken for it to work
-dnl elif test -z "`lorder config/config.c 2>&1 | grep config/config.c`" ; then
-dnl LORDER=echo
-dnl TSORT=cat
-dnl AC_SUBST(LORDER)dnl
-dnl AC_SUBST(TSORT)dnl
-fi
-
-dnl Check whether tsort can deal with loops
-AC_CACHE_CHECK(whether tsort can deal with loops, nmh_cv_tsort_loop,
- [if test -z "`echo a b b a | tsort 2>/dev/null | grep a`" ; then
- nmh_cv_tsort_loop=no
- else
- nmh_cv_tsort_loop=yes
- fi])
-if test x$nmh_cv_tsort_loop = xno ; then
- LORDER=echo
- TSORT=cat
- AC_SUBST(LORDER)dnl
- AC_SUBST(TSORT)dnl
-fi
+AC_SUBST([LINT])dnl
+AC_SUBST([LINTFLAGS])dnl
dnl Look for `ls'
pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
-AC_PATH_PROG(lspath, ls, no, [$pathtmp])
+AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
dnl See how we get ls to display the owner and the group
if test "$lspath" != "no"; then
- AC_CACHE_CHECK(how to get ls to show us the group ownership of a file,
- nmh_cv_ls_grpopt,
+ AC_CACHE_CHECK([how to get ls to show us the group ownership of a file],
+ [nmh_cv_ls_grpopt],
[if test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"; then
dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
dnl ls, it would seem -l gave us both the user and group. On this type of
fi])
fi
-dnl Look for `more'
-pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
-AC_PATH_PROG(morepath, more, no, [$pathtmp])
-
-dnl If pager is not specified yet,
-dnl then use `more' as the default.
-if test -z "$pagerpath"; then
- pagerpath="$morepath"
-fi
-AC_SUBST(pagerpath)dnl
-
dnl Look for `sendmail'
pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
-AC_PATH_PROG(sendmailpath, sendmail, /usr/sbin/sendmail, [$pathtmp])
+AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
dnl Look for `vi'
pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
-AC_PATH_PROG(vipath, vi, /bin/vi, [$pathtmp])
+AC_PATH_PROG([vipath], [vi], [/bin/vi], [$pathtmp])
dnl If editor is not specified yet,
dnl then use `vi' as the default.
-if test -z "$editorpath"; then
- editorpath="$vipath"
-fi
-AC_SUBST(editorpath)dnl
+AS_IF([test -z "$editorpath"], [editorpath="$vipath"])
+AC_SUBST([editorpath])dnl
+
+dnl Cygwin FAT filesystems do not support hard links. So default to
+dnl cp instead, even if running on an NTFS or other filesystem.
+AS_CASE(["$host_os"],
+ [cygwin*],[LN=cp],
+ [LN=ln])
+AC_SUBST([LN])
dnl ----------------------------------------------------------
dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
nmh_cv_mailspool=$mailspool
])
mailspool=$nmh_cv_mailspool
-AC_SUBST(mailspool)dnl
+AC_SUBST([mailspool])dnl
dnl See whether the mail spool directory is world-writable.
if test "$lspath" != "no" -a "$cutpath" != "no"; then
- AC_CACHE_CHECK(whether the mail spool is world-writable,
+ AC_CACHE_CHECK(whether the mail spool is world-writable,
nmh_cv_mailspool_world_writable,
[if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
nmh_cv_mailspool_world_writable=no
fi
dnl Also, check for liblockfile (as found on Debian systems)
-AC_CHECK_HEADER(lockfile.h, AC_CHECK_LIB(lockfile, lockfile_create) )
+AC_CHECK_HEADER([lockfile.h], [AC_CHECK_LIB(lockfile, lockfile_create)])
dnl and whether its companion program dotlockfile is setgid
AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
fi
fi
+dnl Provide a way for distcheck to disable setgid_mail via
+dnl DISTCHECK_CONFIGURE_FLAGS.
+if test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0; then
+ nmh_cv_dotlockfile_setgid=yes
+fi
+
dnl If mailspool is not world-writable and dotlockfile is not setgid,
dnl we need to #define MAILGROUP to 1 and make inc setgid.
if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
dnl portable way to make sure that files generated by lex include config.h
dnl before system header files.
-case "$target_os" in
- linux*)
- # Like DEFS, but doesn't get stomped on by configure when using config.h:
- OURDEFS="$OURDEFS -D_GNU_SOURCE"
- ;;
-esac
-AC_SUBST(OURDEFS)
+AS_CASE(["$host_os"],
+ [linux*],
+ [# Like DEFS, but doesn't get stomped on by configure when using config.h:
+ AS_IF([test -z "$CPPFLAGS"],[CPPFLAGS="-D_GNU_SOURCE"],
+ [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
AC_HEADER_STDC
-AC_HEADER_TIME
AC_HEADER_TIOCGWINSZ
-AC_CHECK_HEADERS(errno.h fcntl.h crypt.h termcap.h \
- langinfo.h wchar.h wctype.h iconv.h netdb.h \
- sys/param.h sys/time.h sys/stream.h)
-
+AC_CHECK_HEADERS([errno.h fcntl.h crypt.h ncurses/termcap.h termcap.h \
+ langinfo.h wchar.h wctype.h iconv.h netdb.h \
+ sys/param.h sys/time.h sys/stream.h])
+
dnl
dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
dnl really use a whole set of them, but this check should be
dnl
AC_CHECK_HEADER(libio.h, [
AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
- AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ])
+ AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ])
AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
[Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
dnl ---------------
dnl CHECK FUNCTIONS
dnl ---------------
-AC_CHECK_FUNCS(writev lstat tzset getutent nl_langinfo sigaction sigprocmask \
- sigblock sigsetmask sighold sigrelse)
-
-dnl Look for the initgroups() declaration. On AIX 4.[13], Solaris 4.1.3, and
-dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
-dnl any system header.
-dnl
-dnl On Solaris 2.[456], the declaration is in <grp.h>. On HP-UX 9-11 and
-dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>. Any other locations we
-dnl need to check?
-AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.])
-AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
- AC_EGREP_HEADER(initgroups, unistd.h,
- AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
-
-dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
-dnl <stdio.h> or elsewhere. Apparently it's not officially supported (though it
-dnl seems to work perfectly and IBM apparently uses it in internal code).
-dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
-dnl HAVE_SNPRINTF, we get a billion warnings at compile time. Use the C
-dnl preprocessor to preprocess stdio.h and make sure that there's actually a
-dnl prototype.
-AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
- [Define to 1 if <stdio.h> has a prototype for snprintf().]))
+AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
dnl Check for multibyte character set support
-if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
- -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then
- AC_DEFINE(MULTIBYTE_SUPPORT, 1,
- [Define to enable support for multibyte character sets.])
-fi
+AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
+ "x$ac_cv_header_wctype_h" = "xyes" -a \
+ "x$ac_cv_func_wcwidth" = "xyes" -a \
+ "x$ac_cv_func_mbtowc" = "xyes"],
+ [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
+ [Define to enable support for multibyte character sets.])
+ MULTIBYTE_ENABLED=1],
+ [MULTIBYTE_ENABLED=0])
+AC_SUBST([MULTIBYTE_ENABLED])
dnl -------------------
dnl CHECK FOR LIBRARIES
dnl -------------------
dnl Check location of modf
-AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf))
+AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
dnl Checks for network libraries (nsl, socket)
-AC_CHECK_NETLIBS
+NMH_CHECK_NETLIBS
+
+NMH_READLINE
termcap_curses_order="termcap curses ncurses"
for lib in $termcap_curses_order; do
AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
done
-AC_SUBST(TERMLIB)dnl
+AC_SUBST([TERMLIB])dnl
+AS_IF([test "x$TERMLIB" = "x"],
+ [AC_MSG_FAILURE([Could not find tgetent in any library. Is there a curses
+or ncurses library or package that you can install?])])
+
dnl ---------------
dnl CHECK FOR ICONV
AC_CHECK_LIB(iconv, libiconv, ac_found_iconv=yes)
fi
if test "x$ac_found_iconv" != "xno"; then
- LIBS="-liconv $LIBS"
+ ICONVLIB="-liconv"
fi
else
dnl Handle case where there is a native iconv but iconv.h is from libiconv
fi
fi
if test "x$ac_found_iconv" = xyes; then
- AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
+ AC_DEFINE([HAVE_ICONV], [1], [Define if you have the iconv() function.])
fi
+AC_SUBST([ICONVLIB])
dnl Check if iconv uses const in prototype declaration
if test "x$ac_found_iconv" = "xyes"; then
else
NDBM_LIBS=
fi
- AC_SUBST(NDBM_LIBS)
+ AC_SUBST([NDBM_LIBS])
fi
dnl ------------------
AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@]))
AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM],
[rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"])
-AC_SUBST(rpmdir)
+AC_SUBST([rpmdir])
dnl --------------------
AS_IF([test x"$sasl_support" = x"yes"],[
AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])])
- AC_CHECK_LIB([sasl2], [sasl_client_new], ,
- [AC_MSG_ERROR([Cyrus SASL library not found])])])
+ AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"],
+ [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
+AC_SUBST([SASLLIB])
dnl -----------------
dnl CHECK FOR OPENSSL
AC_TYPE_MODE_T
AC_TYPE_SIZE_T
-dnl Check for sigset_t. Currently I'm looking in
-dnl <sys/types.h> and <signal.h>. Others might need
-dnl to be added.
-AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <signal.h>]], [[sigset_t tempsigset;]])],
-nmh_cv_type_sigset_t=yes,nmh_cv_type_sigset_t=no)])
-if test $nmh_cv_type_sigset_t = no; then
- AC_DEFINE(sigset_t, unsigned int,
- [Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define.])
-fi
-
dnl ----------------
dnl CHECK STRUCTURES
dnl ----------------
-AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
- [#ifdef TIME_WITH_SYS_TIME
-# include <sys/time.h>
-# include <time.h>
-#else
-# ifdef TM_IN_SYS_TIME
-# include <sys/time.h>
-# else
-# include <time.h>
-# endif
-#endif])
-
-AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
+dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm.
+dnl (FreeBSD has a timezone() function but not a timezone global
+dnl variable that is visible).
+AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
AC_STRUCT_DIRENT_D_TYPE
-dnl -------------
-dnl CHECK SIGNALS
-dnl -------------
-dnl What style of signal do you have (POSIX, BSD, or SYSV)?
-AH_TEMPLATE(RELIABLE_SIGNALS, [Define to 1 if you have reliable signals.])
-AC_MSG_CHECKING(what style of signals to use)
-if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
- signals_style=POSIX_SIGNALS
- AC_DEFINE(POSIX_SIGNALS, 1,
- [Define to 1 if you use POSIX style signal handling.])
- AC_DEFINE(RELIABLE_SIGNALS)
-elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
- signals_style=BSD_SIGNALS
- AC_DEFINE(BSD_SIGNALS,1,
- [Define to 1 if you use BSD style signal handling (and can block signals).])
- AC_DEFINE(RELIABLE_SIGNALS)
-elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
- signals_style=SYSV_SIGNALS
- AC_DEFINE(SYSV_SIGNALS,1,
- [Define to 1 if you use SYSV style signal handling (and can block signals).])
-else
- signals_style=NO_SIGNAL_BLOCKING
- AC_DEFINE(NO_SIGNAL_BLOCKING,1,
- [Define to 1 if you have no signal blocking at all (bummer).])
-fi
-
-AC_MSG_RESULT($signals_style)
-
dnl Where is <signal.h> located? Needed as input for signames.awk
AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
[for SIGNAL_H in /usr/include/bsd/sys/signal.h dnl Next
SIGNAL_H=$nmh_cv_path_signal_h
AC_SUBST(SIGNAL_H)dnl
-dnl ----------------
-dnl OS SPECIFIC DEFINES
-dnl ----------------
-AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.])
-AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.])
-AH_TEMPLATE(BSD44, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody; only used in vmh.c which is not built.])
-AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?])
-AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.])
-
-case "$target_os" in
-
- solaris2*)
- AC_DEFINE(SYS5)
- AC_DEFINE(SVR4)
- ;;
- irix*)
- AC_DEFINE(SYS5)
- AC_DEFINE(SVR4)
- ;;
- osf*)
- AC_DEFINE(SYS5)
- AC_DEFINE(SVR4)
- ;;
- aix*)
- AC_DEFINE(SYS5)
- AC_DEFINE(SVR4)
- ;;
- sunos4*)
- AC_DEFINE(BSD42)
- ;;
- freebsd*)
- AC_DEFINE(BSD42)
- AC_DEFINE(BSD44)
- ;;
- netbsd*)
- AC_DEFINE(BSD42)
- AC_DEFINE(BSD44)
- ;;
- openbsd*)
- AC_DEFINE(BSD42)
- AC_DEFINE(BSD44)
- ;;
- bsd/os*)
- AC_DEFINE(BSD42)
- AC_DEFINE(BSD44)
- ;;
- sco5*)
- AC_DEFINE(SYS5)
- AC_DEFINE(SCO_5_STDIO)
- ;;
-esac
+dnl
+dnl Sigh, this is required because under the new world order autoconf has
+dnl nothing to create in a few of the build directories when doing an object
+dnl tree build. So make sure we created certain directories if they don't
+dnl exist.
+dnl
+AC_CONFIG_COMMANDS([build-directories],
+[test -d etc || ${MKDIR_P} etc
+test -d man || ${MKDIR_P} man])
-dnl ----------------
-dnl OUTPUT MAKEFILES
-dnl ----------------
-AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
- mts/Makefile mts/smtp/Makefile \
- etc/Makefile docs/Makefile man/Makefile)
-AC_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h])
-AC_OUTPUT
+AC_CONFIG_COMMANDS_POST([
dnl These odd looking assignments are done to expand out unexpanded
-dnl variables in bindir et al (for instance mandir is '${datarootdir}/man',
+dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'),
dnl but expanding that gives '${prefix}/share/man', so we need to expand
dnl again to get the final answer.
dnl We only use the expanded versions to print the install paths in
eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
eval "nmhrpm=${nmhrpm}";
-pop_kinds=no
-if test x"$enable_pop" = x"yes"; then
- pop_kinds="yes ("
-
- if test x"$enable_apop" = x"yes"; then
- pop_kinds="${pop_kinds}APOP "
- fi
-
- pop_kinds="${pop_kinds}POP3)"
-fi
-
-echo "
+AC_MSG_NOTICE([
nmh configuration
-----------------
nmh version : AC_PACKAGE_VERSION
-target os : ${target}
+host os : ${host}
compiler : ${CC}
compiler flags : ${CFLAGS}
linker flags : ${LDFLAGS}
-definitions : ${OURDEFS}
+preprocessor flags : ${CPPFLAGS}
source code location : ${srcdir}
binary install path : ${nmhbin}
library install path : ${nmhlib}
default smtp servers : ${smtpservers}
default editor : ${editorpath}
default pager : ${pagerpath}
-email address masquerading : ${masquerade}
-pop is enabled : ${pop_kinds}
SASL support : ${sasl_support}
-TLS support : ${tls_support}"
-echo ""
+TLS support : ${tls_support}
+])])dnl
+
+dnl ---------------
+dnl OUTPUT MAKEFILE
+dnl ---------------
+AC_CONFIG_FILES([Makefile uip/spost test/common.sh])
+AC_OUTPUT