dnl Note that this code will be enabled for both POP and SMTP
AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
[Enable SASL support via the Cyrus SASL library]))
-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])
+AS_IF([test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != xyes -a \
+ x"$with_cyrus_sasl" != xno],[
+ AC_MSG_WARN([Arguments to --with-cyrus-sasl now ignored])
+ AC_MSG_WARN([Please pass the appropriate arguments to CPPFLAGS/LDFLAGS])])
dnl Do you want client-side support for encryption with TLS?
AC_ARG_WITH([tls], AS_HELP_STRING([--with-tls], [Enable TLS support]))
[MTS="smtp"])
AC_SUBST([MTS])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@:>@])])
-AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"],
- [smtpservers="localhost"])
-AC_SUBST([smtpservers])dnl
+dnl What should be the default mail server?
+AC_ARG_WITH([smtpserver],
+ [AS_HELP_STRING([--with-smtpserver='SMTPSERVER'],
+ [specify the default SMTP server @<:@localhost@:>@])])
+AS_IF([test -n "$with_smtpserver"], [smtpserver="$with_smtpserver"],
+ [smtpserver="localhost"])
+AC_SUBST([smtpserver])dnl
dnl -------------------------------------------------------------------
dnl Default location is /usr/local/nmh/{bin,etc,libexec,man}, unless we
dnl If the user configures with a CFLAGS that contains a -O flag
dnl but then removes it a make time, they'll also have to remove
dnl -D_FORTIFY_SOURCE from AM_CPPFLAGS because it requires optimization.
+ dnl Use "\ " instead of ' ' or " " for compatiblity with posh.
AS_CASE([$CFLAGS],
- [-O*|*' -O'*],[AM_CPPFLAGS="${AM_CPPFLAGS:+$AM_CPPFLAGS }-D_FORTIFY_SOURCE=2"])
+ [-O|*\ -O|-O[[!0]]*|*\ -O[[!0]]*],
+ [AM_CPPFLAGS="${AM_CPPFLAGS:+$AM_CPPFLAGS }-D_FORTIFY_SOURCE=2"])
fi
dnl FreeBSD needs a bit of magic to bring getline() into scope.
[nmh_cv_has_q_unused_arguments=no])])
test "$nmh_cv_has_q_unused_arguments" = "yes" && \
AM_LDFLAGS="${AM_LDFLAGS:+$AM_LDFLAGS }-Qunused-arguments"
-
-dnl This hack turns off assertions by default, assuming
-dnl that configure still uses this shell variable. Without
-dnl it, AC_HEADER_ASSERT enables assertions by default.
-test -z "$enable_assert" && enable_assert=no
+AC_SUBST([AM_LDFLAGS])
AC_HEADER_ASSERT
dnl CHECK FOR CYRUS-SASL
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], [SASLLIB="-lsasl2"],
- [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
+AS_IF([test x"$with_cyrus_sasl" != x"no"],[
+ AC_CHECK_HEADER([sasl/sasl.h], HAVE_SASL_H=1)
+ AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"])])
AC_SUBST([SASLLIB])
+dnl -----------------
+dnl Enable SASL?
+dnl -----------------
+dnl By default (with_cyrus_sasl=''), enable SASL if header and lib are found.
+dnl If SASL requested (--with-cyrus-sasl with_cyrus_sasl=yes), error if header or lib not found.
+dnl If SASL disabled (--without-cyrus-sasl with_cyrus_sasl=no), don't enable it.
+sasl_support=no
+CYRUS_SASL=0
+AC_SUBST([CYRUS_SASL])
+AS_IF([test "x$with_cyrus_sasl" = xyes && test "x$HAVE_SASL_H" = x],
+ [AC_MSG_ERROR([SASL requested but sasl.h not found])],
+ [test "x$with_cyrus_sasl" = xyes && test "x$SASLLIB" = x],
+ [AC_MSG_ERROR([SASL requested but Cyrus SASL library not found])],
+ [test "x$with_cyrus_sasl" != xno && test "x$HAVE_SASL_H" = x1 &&
+ test "x$SASLLIB" != x],
+ [AC_DEFINE([CYRUS_SASL], [1],
+ [Define to use the Cyrus SASL library for authentication of POP and SMTP.])
+ CYRUS_SASL=1
+ sasl_support=yes])
+
dnl -----------------
dnl CHECK FOR OPENSSL
dnl -----------------
[test "x$with_tls" != xno && test "x$HAVE_SSL_H" = x1 && test "x$TLSLIB" != x],
[AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])
TLS_SUPPORT=1
- tls_support=yes])
+ tls_support=yes
+ save_LIBS="$LIBS"
+ LIBS="$LIBS $TLSLIB"
+ AC_CHECK_FUNCS([X509_VERIFY_PARAM_set1_host])
+ LIBS="$save_LIBS"])
dnl -----------------
dnl CHECK FOR CURL
dnl ----------------
dnl CHECK FLEX FIXUP
dnl ----------------
-dnl BUG: This stops $(LFLAGS) working as it comes after $(AM_FLAGS).
dnl Use AM_LFLAGS make variable setting to work around bugs in flex
dnl 2.5.36-37 that cause signed/unsigned mismatch,
dnl http://sourceforge.net/p/flex/bugs/140/
AS_IF([test "$LEX" = flex],
[AS_CASE([`$LEX -V`],
[flex\ 2.5.35], [AM_LFLAGS=\
-'; sed "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@'],
+'; sed "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@;'],
[flex\ 2.5.3[[67]]], [AM_LFLAGS=\
-'; sed "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@'],
+'; sed "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@;'],
+ [flex\ 2.6.0], [AM_LFLAGS=\
+'; sed "s/, num_to_read/, (size_t) num_to_read/" $@ >$@.tmp && mv -f $@.tmp $@;'],
[flex\ 2.6.1], [AM_LFLAGS=\
-'; sed '\''/\<int num_to_read\>/s/int/size_t/; s/\<yy_size_t i\>/int i/'\'' $@ >$@.tmp && mv -f $@.tmp $@'])
+'; sed '\''/\<int num_to_read\>/s/int/size_t/; \
+ s/\<yy_size_t i\>/int i/; \
+ s/int n; \\/yy_size_t n; \\/'\'' $@ >$@.tmp && mv -f $@.tmp $@;'])
AC_SUBST([AM_LFLAGS])])
dnl ------------------
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>])
+dnl On Linux, $AM_CPPFLAGS contains -D_GNU_SOURCE, which makes
+dnl tm_gmtoff visible.
+nmh_saved_CPPFLAGS="$CPPFLAGS"
+CPPFLAGS="$AM_CPPFLAGS $CPPFLAGS"
+AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[[#include <time.h>]])
+CPPFLAGS="$nmh_saved_CPPFLAGS"
AC_STRUCT_DIRENT_D_TYPE
backup prefix : ${backup_prefix}
transport system : ${MTS}
spool default locking type : ${with_locking}
-default smtp servers : ${smtpservers}
+default smtp server : ${smtpserver}
SASL support : ${sasl_support}
TLS support : ${tls_support}
OAuth support : ${oauth_support}