]> diplodocus.org Git - nmh/blobdiff - configure.ac
More work, but not there just yet.
[nmh] / configure.ac
index a2f0c5ed6f43c761ed94e93e12bfb73545c1c141..f8e691190319190f7d5e6caf20880af59140fc44 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])
 
            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"],[
 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"],[
@@ -480,6 +484,49 @@ AS_IF([test x"$tls_support" = x"yes"],[
   [TLSLIB=])
 AC_SUBST([TLSLIB])
 
   [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 ----------------
 dnl ----------------
 dnl CHECK FLEX FIXUP
 dnl ----------------
@@ -512,24 +559,6 @@ AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
 
 AC_STRUCT_DIRENT_D_TYPE
 
 
 AC_STRUCT_DIRENT_D_TYPE
 
-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
-                 /usr/include/asm/signal.h      dnl Linux 1.3.0 and above
-                 /usr/include/asm/signum.h      dnl some versions of Linux/Alpha
-                 /usr/include/linux/signal.h    dnl Linux up to 1.2.11
-                 /usr/include/sys/signal.h      dnl Almost everybody else
-                 /dev/null;                     dnl Just in case we fall through
-do
-  test -f $SIGNAL_H && \
-  grep '#[     ]*define[       ][      ]*SIG[0-9A-Z]*[         ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
-  break
-done
-nmh_cv_path_signal_h=$SIGNAL_H
-])
-SIGNAL_H=$nmh_cv_path_signal_h
-AC_SUBST(SIGNAL_H)dnl
-
 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
 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
@@ -578,6 +607,7 @@ spool default locking type : ${with_locking}
 default smtp servers       : ${smtpservers}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
 default smtp servers       : ${smtpservers}
 SASL support               : ${sasl_support}
 TLS support                : ${tls_support}
+OAuth support              : ${oauth_support}
 ])])dnl
 
 dnl ---------------
 ])])dnl
 
 dnl ---------------