]> diplodocus.org Git - nmh/blobdiff - configure.ac
Escape literal leading full stop in man/new.man.
[nmh] / configure.ac
index 7abb916a07fc1771ca2e857b478856bec4464ced..d1a755ca61aebaba69d84bfb269c0d252b40d3ef 100644 (file)
@@ -27,24 +27,18 @@ 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],
   [Enable SASL support via the Cyrus SASL library]))
 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]))
 
 dnl Do you want client-side support for using OAuth2 for SMTP authentication?
 AC_ARG_WITH([oauth], AS_HELP_STRING([--with-oauth],
   [Enable OAuth2 support in SMTP auth]))
 
 
 dnl Do you want client-side support for using OAuth2 for SMTP authentication?
 AC_ARG_WITH([oauth], AS_HELP_STRING([--with-oauth],
   [Enable OAuth2 support in SMTP auth]))
 
-dnl Do you want client-side support for encryption with TLS?
-AC_ARG_WITH([tls], AS_HELP_STRING([--with-tls], [Enable TLS support]))
-AS_IF([test x"$with_tls" != x"no"],[
-      AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
-      tls_support=yes],[tls_support=no])
-
 dnl Set the backup prefix
 AC_ARG_WITH([hash-backup],
   AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
 dnl Set the backup prefix
 AC_ARG_WITH([hash-backup],
   AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
@@ -65,13 +59,13 @@ AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
       [MTS="smtp"])
 AC_SUBST([MTS])dnl
 
       [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 -------------------------------------------------------------------
 dnl Default location is /usr/local/nmh/{bin,etc,libexec,man}, unless we
@@ -168,8 +162,10 @@ if test "$GCC" = yes; then
   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 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],
   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.
 fi
 
 dnl FreeBSD needs a bit of magic to bring getline() into scope.
@@ -216,6 +212,7 @@ AC_CACHE_CHECK([whether linker supports -Qunused-arguments],
                        [nmh_cv_has_q_unused_arguments=no])])
 test "$nmh_cv_has_q_unused_arguments" = "yes"  &&  \
   AM_LDFLAGS="${AM_LDFLAGS:+$AM_LDFLAGS }-Qunused-arguments"
                        [nmh_cv_has_q_unused_arguments=no])])
 test "$nmh_cv_has_q_unused_arguments" = "yes"  &&  \
   AM_LDFLAGS="${AM_LDFLAGS:+$AM_LDFLAGS }-Qunused-arguments"
+AC_SUBST([AM_LDFLAGS])
 
 dnl This hack turns off assertions by default, assuming
 dnl that configure still uses this shell variable.  Without
 
 dnl This hack turns off assertions by default, assuming
 dnl that configure still uses this shell variable.  Without
@@ -458,28 +455,67 @@ dnl --------------------
 dnl CHECK FOR CYRUS-SASL
 dnl --------------------
 
 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])
 
 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 -----------------
 
 dnl -----------------
 dnl CHECK FOR OPENSSL
 dnl -----------------
 
-AS_IF([test x"$tls_support" = x"yes"],[
-  dnl OpenBSD 5 needs the other-libraries (fourth argument) to the
+AS_IF([test x"$with_tls" != x"no"],[
+  dnl OpenBSD 5 needs the other-libraries (fifth argument) to the
   dnl AC_CHECK_LIB for SSL_new, because it doesn't
   dnl automatically append -lcrypto when linking with -lssl.
   dnl AC_CHECK_LIB for SSL_new, because it doesn't
   dnl automatically append -lcrypto when linking with -lssl.
-  AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
-  AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
-    [AC_MSG_ERROR([OpenSSL crypto library not found])])
-  AC_CHECK_LIB([ssl], [SSL_new], [TLSLIB="-lssl $TLSLIB"],
-    [AC_MSG_ERROR([OpenSSL library not found])],[$TLSLIB])],
-  [TLSLIB=])
+  AC_CHECK_HEADER([openssl/ssl.h], HAVE_SSL_H=1)
+  AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"])
+  AC_CHECK_LIB([ssl], [SSL_new], [TLSLIB="-lssl $TLSLIB"], [TLSLIB=],
+               [$TLSLIB])])
 AC_SUBST([TLSLIB])
 
 AC_SUBST([TLSLIB])
 
+dnl -----------------
+dnl Enable TLS?
+dnl -----------------
+dnl By default (with_tls=''), enable TLS if header and libs were found.
+dnl If TLS requested (--with-tls with_tls=yes), error if header/lib not found.
+dnl If TLS disabled (--without-tls with_tls=no), don't enable it.
+tls_support=no
+TLS_SUPPORT=0
+AC_SUBST([TLS_SUPPORT])
+AS_IF([test "x$with_tls" = xyes && test "x$HAVE_SSL_H" = x],
+      [AC_MSG_ERROR([TLS requested but openssl/ssl.h not found])],
+      [test "x$with_tls" = xyes && test "x$TLSLIB" = x],
+      [AC_MSG_ERROR([TLS requested but crypto or ssl library not found])],
+      [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
+       save_LIBS="$LIBS"
+       LIBS="$LIBS $TLSLIB"
+       AC_CHECK_FUNCS([X509_VERIFY_PARAM_set1_host])
+       LIBS="$save_LIBS"])
+
 dnl -----------------
 dnl CHECK FOR CURL
 dnl -----------------
 dnl -----------------
 dnl CHECK FOR CURL
 dnl -----------------
@@ -535,6 +571,8 @@ AS_IF([test "$LEX" = flex],
 '; 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 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 $@'],
+               [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 $@'])
        AC_SUBST([AM_LFLAGS])])
                [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 $@'])
        AC_SUBST([AM_LFLAGS])])
@@ -553,7 +591,12 @@ 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).
 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
 
 
 AC_STRUCT_DIRENT_D_TYPE
 
@@ -602,7 +645,7 @@ RPM build root             : ${nmhrpm}
 backup prefix              : ${backup_prefix}
 transport system           : ${MTS}
 spool default locking type : ${with_locking}
 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}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 OAuth support              : ${oauth_support}