dnl
dnl configure.in -- autoconf template for nmh
dnl
-dnl $Id$
-dnl
-dnl 2.13 definitely chokes; 2.53 is the earliest version I've tested.
-dnl 2.58 needed for help string macro but that only affects help output
-dnl 2.50 is the major breakpoint between the old autoconf and the new,
-dnl so require that. If there are bug reports about 2.50-2.52 not working
-dnl we can always move this up a little.
-AC_PREREQ(2.50)
+dnl Move this up a bit
+AC_PREREQ(2.61)
AC_INIT(nmh, m4_normalize(m4_include([VERSION])))
AC_CONFIG_SRCDIR(h/nmh.h)
dnl CHECK COMMAND LINE OPTIONS
dnl --------------------------
-dnl Do you want client-side support for apop?
-AC_ARG_ENABLE(apop, AS_HELP_STRING([--enable-apop],
- [enable client-side support for POP3 and APOP]))
-if test x"$enable_apop" = x"yes"; then
- AC_DEFINE(APOP)dnl
- APOPLIB=md5.o
- enable_pop=yes
-fi
-AC_SUBST(APOPLIB)dnl
-
dnl Do you want to debug nmh?
AC_ARG_ENABLE(debug,
AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
masquerade="draft_from mmailid username_extension"
else
masquerade="$enable_masquerade"
- fi])
+ fi], [masquerade="draft_from mmailid username_extension"])
AC_SUBST(masquerade)dnl
dnl Do you want mhe support?
dnl mhe support is on by default, so define it unless --disable-mhe or the
dnl deprecated, undocumented --disable-nmh-mhe are specified.
if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
- AC_DEFINE(MHE)dnl
+ AC_DEFINE(MHE, 1,
+ [Define to compile in support for the Emacs front-end mh-e.])dnl
fi
dnl Do you want client-side support for pop?
enable_pop=yes
fi
+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)
+)
+
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=DIR],
- [specify location of Cyrus SASL library]))
+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)dnl
+ 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
+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
+
dnl What should be the default editor?
AC_ARG_WITH(editor,
AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor]))
else
backup_prefix=","
fi
-AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix")dnl
-
-dnl Do you want support for hesiod
-AC_ARG_WITH(hesiod,
- AS_HELP_STRING([--with-hesiod=DIR],[specify location of Hesiod]))
-if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
- AC_DEFINE(HESIOD)dnl
-fi
-
-dnl Do you want client-side support for kpop
-AC_ARG_WITH(krb4, AS_HELP_STRING([--with-krb4=DIR],
- [specify location of Kerberos V4 for KPOP support]))
-if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
- enable_pop=yes
- AC_DEFINE(KPOP)dnl
- AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl
-fi
+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)dnl
+ 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
if test x"$with_locking" = x"dot"; then
LOCKTYPE="dot"
- AC_DEFINE(DOT_LOCKING)dnl
+ AC_DEFINE(DOT_LOCKING, 1, [Define to use dot based file locking.])dnl
elif test x"$with_locking" = x"flock"; then
LOCKTYPE="flock"
- AC_DEFINE(FLOCK_LOCKING)dnl
+ AC_DEFINE(FLOCK_LOCKING, 1, [Define to use flock() based locking.])dnl
elif test x"$with_locking" = x"lockf"; then
LOCKTYPE="lockf"
- AC_DEFINE(LOCKF_LOCKING)dnl
+ AC_DEFINE(LOCKF_LOCKING, 1, [Define to use lockf() based locking.])dnl
elif test x"$with_locking" = x"fcntl"; then
LOCKTYPE="fcntl"
- AC_DEFINE(FCNTL_LOCKING)dnl
+ AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl
else
LOCKTYPE="dot"
AC_DEFINE(DOT_LOCKING)dnl
AC_SUBST(MTS)dnl
dnl Both the smtp and sendmail mail transport services use the smtp code
-AC_DEFINE(SMTPMTS)dnl
+AC_DEFINE(SMTPMTS, 1,
+ [Define if you want SMTP (simple mail transport protocol) support.])dnl
dnl What should be the default pager?
AC_ARG_WITH(pager,
AC_PROG_CC
+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 if the user hasn't specified CFLAGS, then
dnl if compiler is gcc, then
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.
+if test "$nmh_cv_has_noptrsign" = "yes"; then
+ nmh_gcc_warnflags="-Wall -Wno-pointer-sign"
+else
+ nmh_gcc_warnflags="-Wall"
+fi
+
if test -n "$auto_cflags"; then
if test x"$enable_debug" = x"yes"; then
if test -n "$GCC"; then
- test -z "$CFLAGS" && CFLAGS="-Wall -g" || CFLAGS="$CFLAGS -Wall -g"
+ test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g"
else
test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
fi
esac
fi
if test -n "$GCC"; then
- test -z "$CFLAGS" && CFLAGS="-Wall -O2" || CFLAGS="$CFLAGS -Wall -O2"
+ test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
else
test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O"
fi
fi
AC_SUBST(editorpath)dnl
-dnl Check for broken vi
-AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug,
-[if echo 'r /nonexist-file
-q' | ex > /dev/null
-then
- nmh_cv_attvibug=no
-else
- nmh_cv_attvibug=yes
-fi])
-
-if test "$nmh_cv_attvibug" = yes; then
- AC_DEFINE(ATTVIBUG)dnl
-fi
-
dnl ----------------------------------------------------------
dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
dnl ----------------------------------------------------------
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"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
+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 do we really need both of these?
- AC_DEFINE(MAILGROUP)dnl
+ AC_DEFINE(MAILGROUP,1,
+ [Define to 1 if you need to make `inc' set-group-id because your mail spool is not world writable. There are no guarantees as to the safety of doing this, but this #define will add some extra security checks.])dnl
SETGID_MAIL=1
fi
AC_SUBST(SETGID_MAIL)dnl
dnl ------------------
dnl CHECK HEADER FILES
dnl ------------------
+
+dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features,
+dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define
+dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns
+dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth()
+dnl declared; if so they should have an entry added to this case statement.
+dnl NB that we must define this on the compiler command line, not in config.h,
+dnl because it must be set before any system header is included and there's no
+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)
+
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
AC_HEADER_STAT
+AC_HEADER_TIOCGWINSZ
AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \
limits.h crypt.h termcap.h termio.h termios.h locale.h \
langinfo.h wchar.h wctype.h iconv.h netdb.h \
sys/param.h sys/time.h sys/utsname.h sys/stream.h \
arpa/inet.h arpa/ftp.h)
-
-AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios,
-[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <unistd.h>
-#include <termios.h>]],
-[[/* SunOS 4.0.3 has termios.h but not the library calls. */
-tcgetattr(0, 0);]])],
-nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)])
-
-if test $nmh_cv_sys_posix_termios = yes; then
- AC_CACHE_CHECK(TIOCGWINSZ in termios.h,
- nmh_cv_header_termios_h_tiocgwinsz,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <termios.h>]],
- [[int x = TIOCGWINSZ;]])],
- nmh_cv_header_termios_h_tiocgwinsz=yes,nmh_cv_header_termios_h_tiocgwinsz=no)])
-else
- nmh_cv_header_termios_h_tiocgwinsz=no
-fi
-
-if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
- AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h,
- nmh_cv_header_sys_ioctl_h_tiocgwinsz,
- [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
-#include <sys/ioctl.h>]],
- [[int x = TIOCGWINSZ;]])],
- nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes,nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)])
- if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then
- AC_DEFINE(GWINSZ_IN_SYS_IOCTL)dnl
- fi
-fi
dnl
dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
dnl
AC_CHECK_HEADER(libio.h, [
AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
- AC_DEFINE(LINUX_STDIO) ]) ])
+ 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),,
+AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
+ [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
[[#if HAVE_SYS_STREAM_H
# include <sys/stream.h>
#endif
AC_CHECK_LIB(mkstemp,mkstemp)
AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
sighold sigrelse writev lstat uname tzset killpg mkstemp \
- sethostent getutent nl_langinfo mbtowc wcwidth)
-
-dnl solaris screws this up
-AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)],
- AC_CHECK_LIB(nsl, gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)] ) )
+ getutent nl_langinfo mbtowc wcwidth)
dnl sigsetjmp may be a macro
AC_MSG_CHECKING(for sigsetjmp)
AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]],
- [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP) AC_MSG_RESULT(yes)],
+ [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP, 1,
+ [Define to 1 if you have the `sigsetjmp'.]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
-AC_REPLACE_FUNCS(snprintf strdup)
+AC_REPLACE_FUNCS(memmove snprintf strerror strdup)
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
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?
+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 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))
+AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
+ [Define to 1 if <stdio.h> has a prototype for snprintf().]))
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])
+ [Define to enable support for multibyte character sets.])
fi
dnl -------------------
else
dnl Now export the lib/header to our makefile/config.h:
if test x"$nmh_ndbmheader" != x; then
- AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>)
+ AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
+ [Define to the header containing the ndbm API prototypes.])
fi
if test x"$nmh_ndbm" != x; then
NDBM_LIBS="-l$nmh_ndbm"
fi
-dnl ----------------
-dnl CHECK FOR HESIOD
-dnl ----------------
-if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
- if test x"$with_hesiod" != x"yes"; then
- HESIOD_INCLUDES="-I$with_hesiod/include"
- HESIOD_LIBS="-L$with_hesiod/lib"
- fi
- AC_CHECK_FUNC(res_send,
- [AC_CHECK_LIB(hesiod, hes_resolve,
- [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"],
- [AC_MSG_ERROR(Hesiod library not found)],
- $HESIOD_LIBS)],
- [AC_CHECK_LIB(hesiod, hes_resolve,
- [HESIOD_LIBS="$HESIOD_LIBS -lhesiod -lresolv"],
- [AC_MSG_ERROR(Hesiod library not found)],
- $HESIOD_LIBS -lresolv)])
-
-fi
-AC_SUBST(HESIOD_INCLUDES)dnl
-AC_SUBST(HESIOD_LIBS)dnl
-
-dnl ----------------------------------
-dnl CHECK FOR KRB4 (Kerberos4 support)
-dnl ----------------------------------
-if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
- if test x"$with_krb4" != x"yes"; then
- KRB4_INCLUDES="-I$with_krb4/include"
- if test -d "$with_krb4/include/kerberosIV"; then
- KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV"
- fi
- KRB4_LIBS="-L$with_krb4/lib"
- elif test -d /usr/include/kerberosIV; then
- KRB4_INCLUDES="-I/usr/include/kerberosIV"
- fi
-dnl First, check if we have -lk5crypto, since that means we have a recent krb5
-
- AC_CHECK_LIB(k5crypto, krb5_encrypt,
- [AC_CHECK_LIB(krb4, krb_rd_req,
- [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
- [AC_MSG_ERROR(Kerberos 4 compatibility libraries not found)],
- $KRB4_LIBS -ldes425 -lkrb5 -lk5crypto -lcom_err)],
+dnl --------------------
+dnl CHECK FOR CYRUS-SASL
+dnl --------------------
- [AC_CHECK_LIB(krb4, krb_rd_req,
- [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"],
- [AC_CHECK_LIB(krb, krb_rd_req,
- [KRB4_LIBS="$KRB4_LIBS -lkrb -ldes"],
- [AC_MSG_ERROR(Kerberos 4 libraries not found)],
- $KRB4_LIBS -ldes)],
- $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err)],
- $KRB4_LIBS)
+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])])])
-fi
-AC_SUBST(KRB4_INCLUDES)dnl
-AC_SUBST(KRB4_LIBS)dnl
+dnl -----------------
+dnl CHECK FOR OPENSSL
+dnl -----------------
-dnl --------------------
-dnl CHECK FOR CYRUS SASL
-dnl --------------------
-if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
- if test x"$with_cyrus_sasl" != x"yes"; then
- SASL_INCLUDES="-I$with_cyrus_sasl/include"
- SASL_LIBS="-L$with_cyrus_sasl/lib"
-
- dnl Do OS-specific hardcoding of SASL shared library path into executables,
- dnl so user isn't forced to set environment variables like Solaris'
- dnl LD_LIBRARY_PATH.
- case "$target_os" in
- solaris*)
- SASL_LIBS="$SASL_LIBS -R$with_cyrus_sasl/lib"
- ;;
- esac
- fi
- save_LDFLAGS="$LDFLAGS"
- LDFLAGS="$LDFLAGS $SASL_LIBS"
- AC_CHECK_LIB(sasl2, sasl_client_new,
- [SASL_LIBS="$SASL_LIBS -lsasl2"],
- [AC_MSG_ERROR(Cyrus SASL library not found)])
- LDFLAGS="$save_LDFLAGS"
-fi
-AC_SUBST(SASL_INCLUDES)dnl
-AC_SUBST(SASL_LIBS)dnl
+AS_IF([test x"$tls_support" = x"yes"],[
+ AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
+ AC_CHECK_LIB([crypto], [BIO_write], ,
+ [AC_MSG_ERROR([OpenSSL crypto library not found])])
+ AC_CHECK_LIB([ssl], [SSL_library_init], ,
+ [AC_MSG_ERROR([OpenSSL library not found])])])
dnl ---------------------
dnl CHECK TERMCAP LIBRARY
nmh_cv_decl_ospeed_must_define=yes,nmh_cv_decl_ospeed_must_define=no)])
fi
+AH_TEMPLATE(HAVE_OSPEED, [Define to 1 if your termcap library has the ospeed variable.])
if test $nmh_cv_decl_ospeed_include_defines = yes; then
AC_DEFINE(HAVE_OSPEED)dnl
elif test $nmh_cv_decl_ospeed_must_define = yes; then
AC_DEFINE(HAVE_OSPEED)
- AC_DEFINE(MUST_DEFINE_OSPEED)
+ AC_DEFINE(MUST_DEFINE_OSPEED, 1,
+ [Define to 1 if you have ospeed, but it is not defined in termcap.h.])
+fi
+
+dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
+dnl Some termcaps reportedly accept a zero buffer, but then dump core
+dnl in tgetstr().
+dnl Under Cygwin test program crashes but exit code is still 0. So,
+dnl we test for a file that porgram should create
+AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
+[Define to 1 if tgetent() accepts NULL as a buffer.])
+AC_CACHE_CHECK(if tgetent accepts NULL,
+nmh_cv_func_tgetent_accepts_null,
+[AC_TRY_RUN([
+main()
+{
+ char buf[4096];
+ int r1 = tgetent(buf, "vt100");
+ int r2 = tgetent((char*)0,"vt100");
+ if (r1 >= 0 && r1 == r2) {
+ char tbuf[1024], *u;
+ u = tbuf;
+ tgetstr("cl", &u);
+ creat("conftest.tgetent", 0640);
+ }
+ exit((r1 != r2) || r2 == -1);
+}
+],
+ if test -f conftest.tgetent; then
+ nmh_cv_func_tgetent_accepts_null=yes
+ else
+ nmh_cv_func_tgetent_accepts_null=no
+ fi,
+ nmh_cv_func_tgetent_accepts_null=no,
+ nmh_cv_func_tgetent_accepts_null=no)])
+if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
+ AC_DEFINE(TGETENT_ACCEPTS_NULL)
+fi
+AC_CACHE_CHECK(if tgetent returns 0 on success,
+nmh_cv_func_tgetent_zero_success,
+[AC_TRY_RUN([
+main()
+{
+ char buf[4096];
+ int r1 = tgetent(buf, "!@#$%^&*");
+ int r2 = tgetent(buf, "vt100");
+ if (r1 < 0 && r2 == 0) {
+ char tbuf[1024], *u;
+ u = tbuf;
+ tgetstr("cl", &u);
+ creat("conftest.tgetent0", 0640);
+ }
+ exit(r1 == r2);
+}
+],
+ if test -f conftest.tgetent0; then
+ nmh_cv_func_tgetent_zero_success=yes
+ else
+ nmh_cv_func_tgetent_zero_success=no
+ fi,
+ nmh_cv_func_tgetent_zero_success=no,
+ nmh_cv_func_tgetent_zero_success=no)])
+AH_TEMPLATE([TGETENT_SUCCESS],
+[Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
+if test x$nmh_cv_func_tgetent_zero_success = xyes; then
+ AC_DEFINE(TGETENT_SUCCESS, 0)
+else
+ AC_DEFINE(TGETENT_SUCCESS, 1)
fi
-dnl dnl Checks if tgetent accepts NULL and will
-dnl dnl allocate its own termcap buffer.
-dnl AC_CACHE_CHECK(if tgetent accepts NULL,
-dnl nmh_cv_func_tgetent_accepts_null,
-dnl [AC_TRY_RUN([main(){int i = tgetent((char*)0,"vt100");exit(!i || i == -1);}],
-dnl nmh_cv_func_tgetent_accepts_null=yes,
-dnl nmh_cv_func_tgetent_accepts_null=no,
-dnl nmh_cv_func_tgetent_accepts_null=no)])
-dnl if test $nmh_cv_func_tgetent_accepts_null = yes; then
-dnl AC_DEFINE(TGETENT_ACCEPTS_NULL)
-dnl fi
-
dnl Now put the libraries back to what it was before we
dnl starting checking the termcap library.
LIBS="$nmh_save_LIBS"
#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)
+ AC_DEFINE(sigset_t, unsigned int,
+ [Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define.])
fi
dnl ----------------
dnl ----------------
AC_CHECK_MEMBERS(struct stat.st_blksize)
-AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff,
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#ifdef TIME_WITH_SYS_TIME
+AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
+ [#ifdef TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# else
# include <time.h>
# endif
-#endif]], [[struct tm temptm; temptm.tm_gmtoff = 0;]])],
-nmh_cv_struct_tm_gmtoff=yes,nmh_cv_struct_tm_gmtoff=no)])
-if test $nmh_cv_struct_tm_gmtoff = yes; then
- AC_DEFINE(HAVE_TM_GMTOFF)
+#endif])
+
+AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
+
+AC_MSG_CHECKING(for union wait)
+AC_CACHE_VAL(nmh_cv_union_wait, [dnl
+ AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
+#include <sys/wait.h>]],
+ [[union wait status; int pid; pid = wait (&status);
+#ifdef WEXITSTATUS
+/* Some POSIXoid systems have both the new-style macros and the old
+ union wait type, and they do not work together. If union wait
+ conflicts with WEXITSTATUS et al, we don't want to use it at all. */
+ if (WEXITSTATUS (status) != 0) pid = -1;
+#ifdef WTERMSIG
+ /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */
+ -- blow chunks here --
+#endif
+#endif
+#ifdef HAVE_WAITPID
+ /* Make sure union wait works with waitpid. */
+ pid = waitpid (-1, &status, 0);
+#endif
+ ]])],
+ [nmh_cv_union_wait=yes],
+ [nmh_cv_union_wait=no])])
+if test "$nmh_cv_union_wait" = yes; then
+ AC_DEFINE(HAVE_UNION_WAIT, 1,
+ [Define to 1 if you have the \`union wait' type in <sys/wait.h>.])
fi
+AC_MSG_RESULT($nmh_cv_union_wait)
-AC_CACHE_CHECK(for ut_type in struct utmp, nmh_cv_struct_utmp_ut_type,
-[AC_TRY_COMPILE(
-[#include <utmp.h>],
-[struct utmp temputmp; temputmp.ut_type = 0;],
- nmh_cv_struct_utmp_ut_type=yes, nmh_cv_struct_utmp_ut_type=no)])
-if test $nmh_cv_struct_utmp_ut_type = yes; then
- AC_DEFINE(HAVE_UTMP_UT_TYPE)
-fi
+CHECK_TYPE_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)
+ 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)
+ 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)
+ 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)
+ 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 ----------------
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_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h])
AC_OUTPUT
-dnl Umm, what's the point of these assignments?? -- <dan-nmh@dilvish.speed.net>
-eval "nmhbin=${bindir}"; eval "nmhbin2=${nmhbin}"
-eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}"
-eval "nmhlib=${libdir}"; eval "nmhlib2=${nmhlib}"
-eval "nmhman=${mandir}"
+dnl These odd looking assignments are done to expand out unexpanded
+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
+dnl the final summary and should use them nowhere else (see the autoconf
+dnl docs for the rationale for bindir etc being unexpanded).
+eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}"
+eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}"
+eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}"
+eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
pop_kinds=no
if test x"$enable_pop" = x"yes"; then
pop_kinds="${pop_kinds}APOP "
fi
- if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
- pop_kinds="${pop_kinds}KPOP "
- fi
-
pop_kinds="${pop_kinds}POP3)"
fi
compiler : ${CC}
compiler flags : ${CFLAGS}
linker flags : ${LDFLAGS}
+definitions : ${OURDEFS}
source code location : ${srcdir}
-binary install path : ${nmhbin2}
-libary install path : ${nmhlib2}
-config files install path : ${nmhsysconf2}
+binary install path : ${nmhbin}
+library install path : ${nmhlib}
+config files install path : ${nmhsysconf}
man page install path : ${nmhman}
backup prefix : ${backup_prefix}
transport system : ${MTS}
default pager : ${pagerpath}
email address masquerading : ${masquerade}
pop is enabled : ${pop_kinds}
-SASL support : ${sasl_support}"
+SASL support : ${sasl_support}
+TLS support : ${tls_support}"
echo ""