2 dnl configure.ac -- autoconf template for nmh
7 AC_INIT([nmh], m4_normalize(m4_include([VERSION])), [nmh-workers@nongnu.org])
8 AC_CONFIG_SRCDIR([h/nmh.h])
9 AC_CONFIG_HEADER([config.h])
10 AM_INIT_AUTOMAKE([-Wall foreign serial-tests subdir-objects 1.12])
14 AC_MSG_NOTICE([configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION])
15 AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl
17 dnl What date of nmh are we building?
18 DATE=`cat ${srcdir}/DATE`
19 AC_MSG_NOTICE([configuring for nmh dated $DATE])
22 dnl --------------------------
23 dnl CHECK COMMAND LINE OPTIONS
24 dnl --------------------------
26 dnl Do you want to debug nmh?
27 AC_ARG_ENABLE([debug],
28 AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
30 dnl Do you want client-side support for using SASL for authentication?
31 dnl Note that this code will be enabled for both POP and SMTP
32 AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
33 [Enable SASL support via the Cyrus SASL library]))
34 AS_IF([test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"],[
35 AC_DEFINE([CYRUS_SASL], [1],
36 [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
37 AS_IF([test x"$with_cyrus_sasl" != xyes],[
38 AC_MSG_WARN([Arguments to --with-cyrus-sasl now ignored])
39 AC_MSG_WARN([Please pass the appropriate arguments to CPPFLAGS/LDFLAGS])])
40 sasl_support=yes], [sasl_support=no])
42 dnl Do you want client-side support for using OAuth2 for SMTP authentication?
43 AC_ARG_WITH([oauth], AS_HELP_STRING([--with-oauth],
44 [Enable OAuth2 support in SMTP auth]))
46 dnl Do you want client-side support for encryption with TLS?
47 AC_ARG_WITH([tls], AS_HELP_STRING([--with-tls], [Enable TLS support]))
48 AS_IF([test x"$with_tls" != x"no"],[
49 AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
50 tls_support=yes],[tls_support=no])
52 dnl Set the backup prefix
53 AC_ARG_WITH([hash-backup],
54 AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
55 AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"],
56 [backup_prefix="#"], [backup_prefix=","])
57 AC_DEFINE_UNQUOTED([BACKUP_PREFIX], "$backup_prefix",
58 [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
60 dnl What method of posting should post use?
62 AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
63 [specify the default mail transport agent/service]))
65 AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
66 [test x"$with_mts" = x"sendmail"], [MTS="sendmail/smtp"],
67 [test x"$with_mts" = x"sendmail/smtp"], [MTS="sendmail/smtp"],
68 [test x"$with_mts" = x"sendmail/pipe"], [MTS="sendmail/pipe"],
72 dnl What should be the default mail server(s)?
73 AC_ARG_WITH([smtpservers],
74 [AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
75 [specify the default SMTP server(s) @<:@localhost@:>@])])
76 AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"],
77 [smtpservers="localhost"])
78 AC_SUBST([smtpservers])dnl
80 dnl -------------------------------------------------------------------
81 dnl Default location is /usr/local/nmh/{bin,etc,libexec,man}, unless we
82 dnl find an existing installation, in which case we use its location.
83 dnl -------------------------------------------------------------------
84 AC_PREFIX_DEFAULT([/usr/local/nmh])
85 AC_PREFIX_PROGRAM([mhparam])
87 dnl ------------------
88 dnl CHECK THE COMPILER
89 dnl ------------------
94 dnl ------------------
95 dnl CHECK HEADER FILES
96 dnl ------------------
99 AC_CHECK_HEADERS([fcntl.h wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
101 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
102 [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
103 [[#if HAVE_SYS_STREAM_H
104 # include <sys/stream.h>
111 AC_CHECK_FUNCS([wcwidth mbtowc getutxent arc4random mkstemps])
113 dnl -----------------------
114 dnl CHECK MULTIBYTE SUPPORT
115 dnl -----------------------
116 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
117 "x$ac_cv_header_wctype_h" = "xyes" -a \
118 "x$ac_cv_func_wcwidth" = "xyes" -a \
119 "x$ac_cv_func_mbtowc" = "xyes"],
120 [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
121 [Define to enable support for multibyte character sets.])
122 MULTIBYTE_ENABLED=1],
123 [MULTIBYTE_ENABLED=0])
124 AC_SUBST([MULTIBYTE_ENABLED])
129 dnl The user didn't specify CFLAGS, so customize them.
131 if test "$GCC" != yes; then
132 dnl Use -v and some other options with SunStudio cc. lex produces
133 dnl code that causes unreachable-statement warnings. It might be
134 dnl better to use an autoconf test, except -v will probably succeed
135 dnl with many other compilers but have different meaning.
136 AS_CASE([`${CC} -V 2>&1`],
137 [cc:\ Sun\ C*], [AM_CFLAGS=\
138 "${AM_CFLAGS:+$AM_CFLAGS }-v -errtags=yes -erroff=E_STATEMENT_NOT_REACHED"])
141 AC_CACHE_CHECK([whether compiler supports -Wall], [nmh_cv_has_wall],
142 [nmh_saved_cflags="$CFLAGS"
143 CFLAGS="$AM_CFLAGS $CFLAGS -Wall -Werror"
144 AC_TRY_COMPILE([],[],nmh_cv_has_wall=yes,nmh_cv_has_wall=no)
145 CFLAGS="$nmh_saved_cflags"])
146 test "$nmh_cv_has_wall" = "yes" && AM_CFLAGS="${AM_CFLAGS:+$AM_CFLAGS }-Wall"
148 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
149 [nmh_saved_cflags="$CFLAGS"
150 CFLAGS="$AM_CFLAGS $CFLAGS -Wextra -Werror"
151 AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,
152 nmh_cv_has_wextra=no)
153 CFLAGS="$nmh_saved_cflags"])
154 test "$nmh_cv_has_wextra" = "yes" && AM_CFLAGS="${AM_CFLAGS:+$AM_CFLAGS }-Wextra"
156 AC_SUBST([AM_CFLAGS])
158 dnl Check for any platform-specific additional AM_CPPFLAGS. This depends on
159 dnl MULTIBYTE_ENABLED having already been set.
162 if test "$GCC" = yes; then
163 dnl Do this regardless of auto_cflags value.
164 dnl Enable _FORTIFY_SOURCE checking, which is supported by
165 dnl gcc 4.1 and later, but only when optimization is enabled.
166 dnl It shouldn't hurt with earlier versions because it's a cpp macro.
167 dnl If the user configures with a CFLAGS that contains a -O flag
168 dnl but then removes it a make time, they'll also have to remove
169 dnl -D_FORTIFY_SOURCE from AM_CPPFLAGS because it requires optimization.
171 [-O*|*' -O'*],[AM_CPPFLAGS="${AM_CPPFLAGS:+$AM_CPPFLAGS }-D_FORTIFY_SOURCE=2"])
174 dnl FreeBSD needs a bit of magic to bring getline() into scope.
175 dnl We do this here rather than in (say) h/mh.h because this macro must
176 dnl be defined before <stdio.h> is pulled in.
178 dnl And while we're here, add the packages tree to the cpp and ld search
179 dnl paths. Note that FreeBSD's pkg(8) seems to be hardwired to use /usr/local.
180 dnl If /usr/ports is installed, we use its idea of where things are installed,
181 dnl otherwise we assume /usr/local.
183 AS_IF([test `uname` = FreeBSD],
184 [CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-D_WITH_GETLINE"
185 nmh_cv_freebsd_localbase=`echo '.include <bsd.port.mk>' \
186 | make -k -f /dev/stdin -V LOCALBASE 2>/dev/null | sed 1q`
187 test -z "$nmh_cv_freebsd_localbase" && nmh_cv_freebsd_localbase=/usr/local
188 CPPFLAGS="${CPPFLAGS:+$CPPFLAGS }-I$nmh_cv_freebsd_localbase/include"
189 LDFLAGS="${LDFLAGS:+$LDFLAGS }-L$nmh_cv_freebsd_localbase/lib"
195 AS_IF([test `uname` = OpenBSD],
196 dnl Munge "often/almost always misused" warnings from OpenBSD linker
197 dnl so that they don't color the waterfall.
198 [POSTLINK="2>&1 | sed -e \
199 's/: w\(arning: s.*() is .* misused, please use\)/: W\1/'"])
202 dnl -----------------
203 dnl CUSTOMIZE LDFLAGS
204 dnl -----------------
205 dnl Disable clang complaint about unused -ansi when linking.
206 AC_CACHE_CHECK([whether linker supports -Qunused-arguments],
207 [nmh_cv_has_q_unused_arguments],
208 [AS_IF([test "$GCC" = yes && `${CC} --version 2>&1 | \
209 grep clang >/dev/null`],
210 [nmh_saved_ldflags="$LDFLAGS"
211 LDFLAGS="$AM_LDFLAGS $LDFLAGS -Qunused-arguments"
212 AC_TRY_LINK([],[],nmh_cv_has_q_unused_arguments=yes,
213 nmh_cv_has_q_unused_arguments=no)
214 LDFLAGS="$nmh_saved_ldflags"],
215 [nmh_cv_has_q_unused_arguments=no])])
216 test "$nmh_cv_has_q_unused_arguments" = "yes" && \
217 AM_LDFLAGS="${AM_LDFLAGS:+$AM_LDFLAGS }-Qunused-arguments"
219 dnl This hack turns off assertions by default, assuming
220 dnl that configure still uses this shell variable. Without
221 dnl it, AC_HEADER_ASSERT enables assertions by default.
222 test -z "$enable_assert" && enable_assert=no
226 dnl ------------------
227 dnl CHECK FOR PROGRAMS
228 dnl ------------------
229 AC_PROG_MAKE_SET dnl Does make define $MAKE
230 AC_PROG_INSTALL dnl Check for BSD compatible `install'
231 AC_PROG_RANLIB dnl Check for `ranlib'
232 AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
233 AC_PROG_SED dnl Check for Posix-compliant sed
234 AC_PROG_YACC dnl Check for yacc/bison
235 AM_PROG_LEX dnl Check for lex/flex
240 pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
241 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
244 dnl Check for MD5 program and formatting command
246 AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
247 AS_CASE(["${MD5SUM}"],
248 [md5sum], [MD5FMT="cat"],
249 [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]],
254 pathtmp=/usr/xpg4/bin:/usr/bin:/bin:/usr/local/bin:/usr/ucb
255 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
257 dnl See how we get ls to display the owner and the group
258 AS_IF([test "$lspath" != "no"],
259 [AC_CACHE_CHECK([how to get ls to show us the group ownership of a file],
261 [AS_IF([test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"],[
262 dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
263 dnl ls, it would seem -l gave us both the user and group. On this type of
264 dnl ls, -g makes _only_ the group be displayed (and not the user).
265 nmh_cv_ls_grpopt="-l"],[
266 dnl Looks like -l only gave us the user, so we need -g to get the group too.
267 nmh_cv_ls_grpopt="-lg"])])])
269 dnl Look for `sendmail'
270 pathtmp=/usr/sbin:/usr/lib:/usr/etc:/usr/ucblib:/usr/bin:/bin
271 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
273 dnl Cygwin FAT filesystems do not support hard links. So default to
274 dnl cp instead, even if running on an NTFS or other filesystem. (And
275 dnl therefore, this cannot be made into a dynamic test, in order to
276 dnl support the least common Cygwin denominator.
277 AS_CASE(["$host_os"],
282 dnl ----------------------------------------------------------
283 dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
284 dnl ----------------------------------------------------------
285 AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool,
286 [for mailspool in /var/mail dnl
289 /dev/null; dnl Just in case we fall through
291 test -d $mailspool && break
293 nmh_cv_mailspool=$mailspool
295 mailspool=$nmh_cv_mailspool
296 AC_SUBST([mailspool])dnl
298 dnl See whether the mail spool directory is world-writable.
299 if test "$lspath" != "no" -a "$cutpath" != "no"; then
300 AC_CACHE_CHECK(whether the mail spool is world-writable,
301 nmh_cv_mailspool_world_writable,
302 [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
303 nmh_cv_mailspool_world_writable=no
305 nmh_cv_mailspool_world_writable=yes
309 dnl Also, check for liblockfile (as found on Debian systems)
310 AC_CHECK_HEADER([lockfile.h], [AC_CHECK_LIB(lockfile, lockfile_create)])
312 dnl and whether its companion program dotlockfile is setgid
313 AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
314 if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
315 if test "$ac_cv_path_dotlockfilepath" != "no" ; then
316 AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid,
317 [ if test -g "$ac_cv_path_dotlockfilepath" ; then
318 nmh_cv_dotlockfile_setgid=yes
320 nmh_cv_dotlockfile_setgid=no
325 dnl Provide a way for distcheck to disable setgid_mail via
326 dnl DISTCHECK_CONFIGURE_FLAGS.
327 AS_IF([test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0],
328 [nmh_cv_dotlockfile_setgid=yes])
330 dnl If mailspool is not world-writable and dotlockfile is not setgid,
331 dnl we need to #define MAILGROUP to 1 and make inc setgid.
332 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
333 dnl do we really need both of these?
334 AC_DEFINE([MAILGROUP],[1],
335 [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
338 AC_SUBST([SETGID_MAIL])dnl
340 dnl Use ls to see which group owns the mail spool directory.
341 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
342 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
344 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
345 AC_SUBST([MAIL_SPOOL_GRP])dnl
350 dnl -------------------
351 dnl CHECK FOR LIBRARIES
352 dnl -------------------
353 dnl Checks for network libraries (nsl, socket)
356 dnl Check the locking functions supported and what we should use by default
362 dnl Check for tputs() callback argument
365 termcap_curses_order="termcap curses ncurses"
366 for lib in $termcap_curses_order; do
367 AC_CHECK_LIB([${lib}], [setupterm], [TERMLIB="-l$lib"; break])
369 AC_SUBST([TERMLIB])dnl
370 AS_IF([test "x$TERMLIB" = "x"],
371 [AC_MSG_FAILURE([Could not find setupterm in any library. Is there a
372 curses or ncurses library or package that you can install?])])
374 dnl Check for readline support
381 AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]),
382 [nmh_ndbm=$withval],[nmh_ndbm=autodetect])
383 AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include <ARG> to use ndbm]),
384 [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect])
386 if test "$nmh_ndbm" = "autodetect"; then
387 if test "$nmh_ndbmheader" != "autodetect"; then
388 AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither])
391 dnl There are at least four implementations of ndbm, and
392 dnl several of those can be in different places at the whim
393 dnl of the system integrator. A good summary of this mess
394 dnl can be found at http://www.unixpapa.com/incnote/dbm.html
396 dnl Classic ndbm with no library required (eg NetBSD): try this
397 dnl first so we don't accidentally link in a pointless but harmless
398 dnl library in one of the later ndbm.h+libfoo tests:
399 NMH_CHECK_NDBM(ndbm.h,,,
400 dnl Berkeley DBv2 emulating ndbm: header in db.h, e.g., 32-bit Cygwin:
401 NMH_CHECK_NDBM(db.h,db,,
402 dnl Berkeley DBv1 emulating ndbm:
403 NMH_CHECK_NDBM(ndbm.h,db,,
404 NMH_CHECK_NDBM(ndbm.h,db1,,
406 NMH_CHECK_NDBM(ndbm.h,ndbm,,
407 dnl glibc2.1 systems put db1 in a subdir:
408 NMH_CHECK_NDBM(db1/ndbm.h,db1,,
409 dnl GNU gdbm emulating ndbm, with header possibly in gdbm/
410 dnl and possibly needing gbdm_compat library:
411 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,,
412 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,,
413 NMH_CHECK_NDBM(ndbm.h,gdbm,,
415 NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm,,
416 dnl On Linux, libgdbm_compat.so loads libgdbm.so as well, so it doesn't
417 dnl need to be explicit:
418 NMH_CHECK_NDBM(gdbm-ndbm.h,gdbm_compat)))))))))))
421 dnl We don't really need to check that the user-specified values work,
422 dnl but it is a convenience to the user to bomb out early rather than
423 dnl after configure and half the compile process.
424 NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm])
427 if test "$nmh_ndbm_found" = "no"; then
428 AC_MSG_ERROR([could not find a working ndbm library/header combination])
430 dnl Now export the lib/header to our makefile/config.h:
431 if test x"$nmh_ndbmheader" != x; then
432 AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
433 [Define to the header containing the ndbm API prototypes.])
435 if test x"$nmh_ndbm" != x; then
436 NDBM_LIBS="-l$nmh_ndbm"
440 AC_SUBST([NDBM_LIBS])
443 dnl ------------------
444 dnl Set RPM build root
445 dnl ------------------
446 dnl nmhrpm is used in the final summary, see below. The default value is
447 dnl reported there as ./RPM, consistent with the reporting of the default
448 dnl source code location as ., but its absolute path is used in the Makefile.
449 AC_ARG_WITH([rpmdir],
450 [AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])])
451 AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM],
452 [rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"])
456 dnl --------------------
457 dnl CHECK FOR CYRUS-SASL
458 dnl --------------------
460 AS_IF([test x"$sasl_support" = x"yes"],[
461 AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])])
462 AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"],
463 [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
466 dnl -----------------
467 dnl CHECK FOR OPENSSL
468 dnl -----------------
470 AS_IF([test x"$tls_support" = x"yes"],[
471 dnl OpenBSD 5 needs the other-libraries (fourth argument) to the
472 dnl AC_CHECK_LIB for SSL_library_init, because it doesn't
473 dnl automatically append -lcrypto when linking with -lssl.
474 AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
475 AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
476 [AC_MSG_ERROR([OpenSSL crypto library not found])])
477 AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
478 [AC_MSG_ERROR([OpenSSL library not found])],[$TLSLIB])],
482 dnl -----------------
484 dnl -----------------
485 dnl Look for curl if oauth not disabled (--without-oauth).
486 AC_PATH_PROG([curl_config], [curl-config])
487 AS_IF([test "x$with_oauth" != xno && test -n "$curl_config"], [
488 save_CFLAGS="$CFLAGS"
489 CFLAGS="$AM_CPPFLAGS $AM_CFLAGS $CFLAGS `$curl_config --cflags`"
490 AC_CHECK_HEADER([curl/curl.h], [
492 AC_CHECK_LIB([curl], [curl_easy_init], [
493 CURLLIB="`$curl_config --libs`"
495 CURL_USER_AGENT="`$curl_config --version | sed 's|^libcurl *|libcurl/|; q'`"
496 AS_IF([test "x$CURL_USER_AGENT" != "x`echo $CURL_USER_AGENT | sed 's/ //'`"],
497 [AC_MSG_WARN([unexpected curl-config --version: $CURL_USER_AGENT])
498 CURL_USER_AGENT=libcurl/UNKNOWN])
499 AC_SUBST([CURL_USER_AGENT])
502 CFLAGS="$save_CFLAGS"
505 dnl -----------------
507 dnl -----------------
508 dnl By default (with_oauth=''), enable OAuth if curl is found.
509 dnl If OAuth requested (--with-oauth with_oauth=yes), error if curl not found.
510 dnl If OAuth disabled (--without-oauth with_oauth=no), don't enable it.
513 AC_SUBST([OAUTH_SUPPORT])
514 AS_IF([test "x$with_oauth" = xyes && test "x$HAVE_CURL_H" = x],
515 [AC_MSG_ERROR([OAuth requested but curl/curl.h not found])],
516 [test "x$with_oauth" = xyes && test "x$CURLLIB" = x],
517 [AC_MSG_ERROR([OAuth requested but curl library not found])],
518 [test "x$with_oauth" != xno && test "x$HAVE_CURL_H" = x1 && test "x$CURLLIB" != x],
519 [AC_DEFINE([OAUTH_SUPPORT], [1], [Support OAuth2 in SMTP auth.])
526 dnl Use AM_LFLAGS make variable setting to work around bugs in flex
527 dnl 2.5.36-37 that cause signed/unsigned mismatch,
528 dnl http://sourceforge.net/p/flex/bugs/140/
529 AS_IF([test "$LEX" = flex],
530 [AS_CASE([`$LEX -V`],
531 [flex\ 2.5.35], [AM_LFLAGS=\
532 '; sed "s/ int n;/ size_t n;/" $@ >$@.tmp && mv -f $@.tmp $@'],
533 [flex\ 2.5.3[[67]]], [AM_LFLAGS=\
534 '; sed "s/\( \)int i;/\1yy_size_t i;/" $@ >$@.tmp && mv -f $@.tmp $@'])
535 AC_SUBST([AM_LFLAGS])])
537 dnl ------------------
538 dnl FOR INTERNAL USE by the NMH test suite
539 dnl ------------------
540 AC_ARG_VAR([NMHETCDIRINST], [for internal use by nmh test suite])
541 AS_IF([test -n "$NMHETCDIRINST"], [nmhetcdirinst=$NMHETCDIRINST]
542 AC_SUBST([nmhetcdirinst]))
548 dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm.
549 dnl (FreeBSD has a timezone() function but not a timezone global
550 dnl variable that is visible).
551 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
553 AC_STRUCT_DIRENT_D_TYPE
556 dnl Sigh, this is required because under the new world order autoconf has
557 dnl nothing to create in a few of the build directories when doing an object
558 dnl tree build. So make sure we created certain directories if they don't
562 AC_CONFIG_COMMANDS([build-directories],
563 [test -d man || AS_MKDIR_P([man])])
565 AC_CONFIG_COMMANDS_POST([
567 dnl These odd looking assignments are done to expand out unexpanded
568 dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'),
569 dnl but expanding that gives '${prefix}/share/man', so we need to expand
570 dnl again to get the final answer.
571 dnl We only use the expanded versions to print the install paths in
572 dnl the final summary and should use them nowhere else (see the autoconf
573 dnl docs for the rationale for bindir etc being unexpanded).
574 eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}"
575 eval "nmhlibexec=${libexecdir}"; eval "nmhlibexec=${nmhlibexec}"
576 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}"
577 eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
578 eval "nmhdoc=${docdir}"; eval "nmhdoc=${nmhdoc}"
579 eval "nmhrpm=${nmhrpm}";
584 nmh version : AC_PACKAGE_VERSION
587 compiler flags : ${AM_CFLAGS} ${CFLAGS}
588 linker flags : ${AM_LDFLAGS} ${LDFLAGS}
589 preprocessor flags : ${AM_CPPFLAGS} ${CPPFLAGS}
590 source code location : ${srcdir}
591 binary install path : ${nmhbin}
592 libexec install path : ${nmhlibexec}/nmh
593 config files install path : ${nmhsysconf}/nmh
594 man page install path : ${nmhman}
595 docs install path : ${nmhdoc}
596 RPM build root : ${nmhrpm}
597 backup prefix : ${backup_prefix}
598 transport system : ${MTS}
599 spool default locking type : ${with_locking}
600 default smtp servers : ${smtpservers}
601 SASL support : ${sasl_support}
602 TLS support : ${tls_support}
603 OAuth support : ${oauth_support}
609 AC_CONFIG_FILES([Makefile test/common.sh])
610 AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost])