]> diplodocus.org Git - nmh/blobdiff - configure.ac
Removed unnecessary memset on fmt_mnull: it gets initialized to
[nmh] / configure.ac
index 02f0a04474f3a8d476a4270a8819de53477a4e38..8f731557b26dc58bc7fbdad36879e3756c448184 100644 (file)
@@ -40,6 +40,10 @@ AS_IF([test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"],[
            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 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"],[
@@ -84,9 +88,6 @@ AC_PREFIX_PROGRAM([mhparam])
 dnl ------------------
 dnl CHECK THE COMPILER
 dnl ------------------
-dnl We want these before the checks,
-dnl so the checks can modify their values.
-test -z "$CFLAGS"  &&  auto_cflags=1
 
 AC_PROG_CC([cc gcc])
 AM_PROG_CC_C_O
@@ -94,51 +95,32 @@ AM_PROG_CC_C_O
 dnl ----------------
 dnl CUSTOMIZE CFLAGS
 dnl ----------------
-if test -n "$auto_cflags"; then
-  dnl The user didn't specify CFLAGS, so customize them.
-  if test "$GCC" = yes; then
-    dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
-    dnl version 2.763, because it disables some features in the system
-    dnl header files and warns about them with -Wall.  Try to test for
-    dnl that generally, with gcc.
-    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"])
-    test "$nmh_cv_has_dash_ansi" = "yes"  &&  \
-      CFLAGS="${CFLAGS:+$CFLAGS }-ansi -pedantic"
-  else
-    dnl Use -v and some other options with SunStudio cc.  lex produces
-    dnl code that causes unreachable-statement warnings.  It might be
-    dnl better to use an autoconf test, except -v will probably succeed
-    dnl with many other compilers but have different meaning.
-    AS_CASE([`${CC} -V 2>&1`],
-            [cc:\ Sun\ C*], [CFLAGS=\
+dnl The user didn't specify CFLAGS, so customize them.
+if test "$GCC" != yes; then
+  dnl Use -v and some other options with SunStudio cc.  lex produces
+  dnl code that causes unreachable-statement warnings.  It might be
+  dnl better to use an autoconf test, except -v will probably succeed
+  dnl with many other compilers but have different meaning.
+  AS_CASE([`${CC} -V 2>&1`],
+          [cc:\ Sun\ C*], [CFLAGS=\
 "${CFLAGS:+$CFLAGS }-v -errtags=yes -erroff=E_STATEMENT_NOT_REACHED"])
-  fi
-
-  AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall],
-                 [nmh_saved_cflags="$CFLAGS"
-                 CFLAGS="$CFLAGS -Wall -Werror"
-                 AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no)
-                 CFLAGS="$nmh_saved_cflags"])
-  test "$nmh_cv_has_wall" = "yes"  &&  CFLAGS="${CFLAGS:+$CFLAGS }-Wall"
-
-  AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
-                 [nmh_saved_cflags="$CFLAGS"
-                 CFLAGS="$CFLAGS -Wextra -Werror"
-                 AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,
-                                nmh_cv_has_wextra=no)
-                 CFLAGS="$nmh_saved_cflags"])
-  test "$nmh_cv_has_wextra" = "yes"  &&  CFLAGS="${CFLAGS:+$CFLAGS }-Wextra"
 fi
 
+AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall],
+               [nmh_saved_cflags="$CFLAGS"
+               CFLAGS="$CFLAGS -Wall -Werror"
+               AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no)
+               CFLAGS="$nmh_saved_cflags"])
+test "$nmh_cv_has_wall" = "yes"  &&  CFLAGS="${CFLAGS:+$CFLAGS }-Wall"
+
+AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
+               [nmh_saved_cflags="$CFLAGS"
+               CFLAGS="$CFLAGS -Wextra -Werror"
+               AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,
+                              nmh_cv_has_wextra=no)
+               CFLAGS="$nmh_saved_cflags"])
+test "$nmh_cv_has_wextra" = "yes"  &&  CFLAGS="${CFLAGS:+$CFLAGS }-Wextra"
+
 if test "$GCC" = yes; then
   dnl Do this regardless of auto_cflags value.
   dnl Enable _FORTIFY_SOURCE checking, which is supported by
@@ -206,11 +188,12 @@ AC_HEADER_ASSERT
 dnl ------------------
 dnl CHECK FOR PROGRAMS
 dnl ------------------
-AC_PROG_MAKE_SET       dnl Does make define $MAKE
-AC_PROG_INSTALL                dnl Check for BSD compatible `install'
-AC_PROG_RANLIB         dnl Check for `ranlib'
+AC_PROG_MAKE_SET        dnl Does make define $MAKE
+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_SED             dnl Check for Posix-compliant sed
+AC_PROG_YACC            dnl Check for yacc/bison
 AM_PROG_LEX             dnl Check for lex/flex
 
 AM_PROG_AR
@@ -306,7 +289,7 @@ AS_IF([test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0],
 
 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
+if test x"$with_locking" = 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],[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
@@ -501,6 +484,49 @@ AS_IF([test x"$tls_support" = x"yes"],[
   [TLSLIB=])
 AC_SUBST([TLSLIB])
 
+dnl -----------------
+dnl CHECK FOR CURL
+dnl -----------------
+dnl Look for curl if oauth not disabled (--without-oauth).
+AC_PATH_PROG([curl_config], [curl-config])
+AS_IF([test "x$with_oauth" != xno && test -n "$curl_config"], [
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS `$curl_config --cflags`"
+    AC_CHECK_HEADER([curl/curl.h], [
+        HAVE_CURL_H=1
+        AC_CHECK_LIB([curl], [curl_easy_init], [
+            CURLLIB="`$curl_config --libs`"
+            AC_SUBST([CURLLIB])
+            CURL_USER_AGENT="`$curl_config --version | sed 's|^libcurl  *|libcurl/|; q'`"
+            AS_IF([test "x$CURL_USER_AGENT" != "x`echo $CURL_USER_AGENT | sed 's/ //'`"],
+                  [AC_MSG_WARN([unexpected curl-config --version: $CURL_USER_AGENT])
+                   CURL_USER_AGENT=libcurl/UNKNOWN])
+                   echo "HEYEPG ($CURL_USER_AGENT)"
+            AC_SUBST([CURL_USER_AGENT])
+          ])
+      ], [
+        CFLAGS="$save_CFLAGS"
+      ])
+  ])
+
+dnl -----------------
+dnl Enable OAuth?
+dnl -----------------
+dnl By default (with_oauth=''), enable OAuth if curl is found.
+dnl If OAuth requested (--with-oauth with_oauth=yes), error if curl not found.
+dnl If OAuth disabled (--without-oauth with_oauth=no), don't enable it.
+oauth_support=no
+OAUTH_SUPPORT=0
+AC_SUBST([OAUTH_SUPPORT])
+AS_IF([test "x$with_oauth" = xyes && test "x$HAVE_CURL_H" = x],
+      [AC_MSG_ERROR([OAuth requested but curl/curl.h not found])],
+      [test "x$with_oauth" = xyes && test "x$CURLLIB" = x],
+      [AC_MSG_ERROR([OAuth requested but curl library not found])],
+      [test "x$with_oauth" != xno && test "x$HAVE_CURL_H" = x1 && test "x$CURLLIB" != x],
+      [AC_DEFINE([OAUTH_SUPPORT], [1], [Support OAuth2 in SMTP auth.])
+       OAUTH_SUPPORT=1
+       oauth_support=yes])
+
 dnl ----------------
 dnl CHECK FLEX FIXUP
 dnl ----------------
@@ -597,6 +623,7 @@ spool default locking type : ${with_locking}
 default smtp servers       : ${smtpservers}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
+OAuth support              : ${oauth_support}
 ])])dnl
 
 dnl ---------------