2 dnl configure.ac -- autoconf template for nmh
8 AC_INIT([nmh], m4_normalize(m4_include([VERSION])), [nmh-workers@nongnu.org])
9 AC_CONFIG_SRCDIR([h/nmh.h])
10 AC_CONFIG_HEADER([config.h])
11 AM_INIT_AUTOMAKE([-Wall color-tests foreign serial-tests subdir-objects 1.12])
15 AC_MSG_NOTICE([configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION])
16 AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl
18 dnl What date of nmh are we building?
19 DATE=`cat ${srcdir}/DATE`
20 AC_MSG_NOTICE([configuring for nmh dated $DATE])
23 dnl --------------------------
24 dnl CHECK COMMAND LINE OPTIONS
25 dnl --------------------------
27 dnl Do you want to debug nmh?
28 AC_ARG_ENABLE([debug],
29 AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
31 dnl Do you want to disable use of locale functions
33 [Undefine if you don't want locale features. By default this is defined.])
34 AC_ARG_ENABLE([locale],
35 [AS_HELP_STRING([--disable-locale], [turn off locale features])],
36 [AS_IF([test x$enableval = xyes], [AC_DEFINE(LOCALE)])],
39 dnl Do you want client-side support for using SASL for authentication?
40 dnl Note that this code will be enabled for both POP and SMTP
41 AC_ARG_WITH([cyrus-sasl], AS_HELP_STRING([--with-cyrus-sasl],
42 [Enable SASL support via the Cyrus SASL library]))
43 AS_IF([test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"],[
44 AC_DEFINE([CYRUS_SASL], [1],
45 [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
46 AS_IF([test x"$with_cyrus_sasl" != xyes],[
47 AC_MSG_WARN([Arguments to --with-cyrus-sasl now ignored])
48 AC_MSG_WARN([Please pass the appropriate arguments to CPPFLAGS/LDFLAGS])])
49 sasl_support=yes], [sasl_support=no])
51 dnl Do you want client-side support for encryption with TLS?
52 AC_ARG_WITH([tls], AS_HELP_STRING([--with-tls], [Enable TLS support]))
53 AS_IF([test x"$with_tls" != x -a x"$with_tls" != x"no"],[
54 AC_DEFINE([TLS_SUPPORT], [1], [Support TLS for session encryption.])dnl
55 tls_support=yes],[tls_support=no])
57 dnl Set the backup prefix
58 AC_ARG_WITH([hash-backup],
59 AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
60 AS_IF([test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"],
61 [backup_prefix="#"], [backup_prefix=","])
62 AC_DEFINE_UNQUOTED([BACKUP_PREFIX], "$backup_prefix",
63 [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
65 dnl What method of locking to use?
67 [aix*|cygwin*|linux*],
68 [default_locktype="fcntl"; default_locking=FCNTL_LOCKING],
69 [freebsd*|openbsd*|darwin*], [default_locktype="flock"; default_locking=FLOCK_LOCKING],
70 [default_locktype="dot"; default_locking=DOT_LOCKING])
72 AC_ARG_WITH([locking],
73 AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@],
74 [specify the file locking method]))
76 AS_IF([test x"$with_locking" = x"dot"],
78 AC_DEFINE([DOT_LOCKING], [1], [Define to use dot based file locking.])],
79 [test x"$with_locking" = x"flock"],
81 AC_DEFINE([FLOCK_LOCKING], [1], [Define to use flock() based locking.])],
82 [test x"$with_locking" = x"lockf"],
84 AC_DEFINE([LOCKF_LOCKING], [1], [Define to use lockf() based locking.])],
85 [test x"$with_locking" = x"fcntl"],
87 AC_DEFINE([FCNTL_LOCKING], [1], [Define to use fnctl() based locking.])],
88 [LOCKTYPE="$default_locktype"
89 AC_DEFINE_UNQUOTED([$default_locking], [1])])
91 dnl Should we use a locking directory?
92 AC_ARG_ENABLE([lockdir],
93 [AS_HELP_STRING([--enable-lockdir=dir], [Store dot-lock files in "dir"])], [
94 AS_IF([test "x$enableval" = xyes],[
95 AC_MSG_ERROR([--enable-lockdir requires an argument])])
96 AS_IF([test "x$LOCKTYPE" != xdot],[
97 AC_MSG_ERROR([Can only use --enable-lockdir with dot locking])])
98 AC_DEFINE_UNQUOTED([LOCKDIR], ["$enableval"],
99 [Directory to store dot-locking lock files])
102 dnl What method of posting should post use?
104 AS_HELP_STRING([--with-mts=@<:@smtp|sendmail/smtp|sendmail/pipe@:>@],
105 [specify the default mail transport agent/service]))
107 AS_IF([test x"$with_mts" = x"smtp"], [MTS="smtp"],
108 [test x"$with_mts" = x"sendmail"], [MTS="sendmail/smtp"],
109 [test x"$with_mts" = x"sendmail/smtp"], [MTS="sendmail/smtp"],
110 [test x"$with_mts" = x"sendmail/pipe"], [MTS="sendmail/pipe"],
114 dnl What should be the default mail server(s)?
115 AC_ARG_WITH([smtpservers],
116 [AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
117 [specify the default SMTP server(s) @<:@localhost@:>@])])
118 AS_IF([test -n "$with_smtpservers"], [smtpservers="$with_smtpservers"],
119 [smtpservers="localhost"])
120 AC_SUBST([smtpservers])dnl
122 dnl ----------------------------------------------------
123 dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
124 dnl ----------------------------------------------------
125 AC_PREFIX_DEFAULT([/usr/local/nmh])
127 dnl ------------------
128 dnl CHECK THE COMPILER
129 dnl ------------------
130 dnl We want these before the checks,
131 dnl so the checks can modify their values.
132 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
133 if test x"$enable_debug" = x"yes"; then
134 test -z "$LDFLAGS" && LDFLAGS=-g
140 AC_CACHE_CHECK([whether preprocessor supports -Wunused-macros],
141 [nmh_cv_has_unusedmacros],
142 [nmh_saved_cppflags="$CPPFLAGS"
143 CPPFLAGS="$CPPFLAGS -Wunused-macros -Wno-unused-macros"
144 AC_TRY_COMPILE([],[],nmh_cv_has_unusedmacros=yes,nmh_cv_has_unusedmacros=no)
145 CPPFLAGS="$nmh_saved_cppflags"])
147 if test "$nmh_cv_has_unusedmacros" = 'yes'; then
148 test -z "$CPPFLAGS" && CPPFLAGS=-Wunused-macros \
149 || CPPFLAGS="$CPPFLAGS -Wunused-macros"
150 DISABLE_UNUSED_MACROS_WARNING=-Wno-unused-macros
152 AC_SUBST([DISABLE_UNUSED_MACROS_WARNING])dnl
154 AC_CACHE_CHECK([whether compiler supports -Wno-sign-compare],
155 [nmh_cv_has_nosigncompare],
156 [nmh_saved_cppflags="$CPPFLAGS"
157 CPPFLAGS="$CPPFLAGS -Wno-sign-compare"
158 AC_TRY_COMPILE([],[],nmh_cv_has_nosigncompare=yes,
159 nmh_cv_has_nosigncompare=no)
160 CPPFLAGS="$nmh_saved_cppflags"])
162 if test "$nmh_cv_has_nosigncompare" = 'yes'; then
163 DISABLE_SIGN_COMPARE_WARNING=-Wno-sign-compare
165 AC_SUBST([DISABLE_SIGN_COMPARE_WARNING])dnl
167 AC_CACHE_CHECK([whether compiler supports -Wextra], [nmh_cv_has_wextra],
168 [nmh_saved_cflags="$CFLAGS"
169 CFLAGS="$CFLAGS -Wextra -Wno-clobbered"
170 AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
171 CFLAGS="$nmh_saved_cflags"])
173 AC_CACHE_CHECK([whether compiler supports -Wno-pointer-sign], [nmh_cv_has_noptrsign],
174 [nmh_saved_cflags="$CFLAGS"
175 CFLAGS="$CFLAGS -Wno-pointer-sign"
176 AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no)
177 CFLAGS="$nmh_saved_cflags"])
179 dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
180 dnl setup version 2.763, because it disables some features in the
181 dnl system system header files and warns about them with -Wall. Try
182 dnl to test for that generally, though still with gcc.
183 if test "$GCC" = yes; then
184 AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
185 [nmh_saved_cppflags="$CPPFLAGS"
186 nmh_saved_cflags="$CFLAGS"
187 CPPFLAGS="-D_GNU_SOURCE"
188 CFLAGS="-ansi -Wall -Werror"
189 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>],[tzset();])],
190 [nmh_cv_has_dash_ansi=yes],
191 [nmh_cv_has_dash_ansi=no])
192 CPPFLAGS="$nmh_saved_cppflags"
193 CFLAGS="$nmh_saved_cflags"])
195 nmh_cv_has_dash_ansi=no
198 dnl if the user hasn't specified CFLAGS, then
199 dnl if compiler is gcc, then
200 dnl use -O2 and some warning flags
202 dnl We use -Wall and -Wextra if supported. If the compiler supports it we
203 dnl also use -Wno-pointer-sign, because gcc 4 now produces a lot of new
204 dnl warnings which are probably mostly spurious and which in any case we
205 dnl don't want to deal with now.
206 if test "$nmh_cv_has_noptrsign" = "yes"; then
207 if test "$nmh_cv_has_dash_ansi" = "yes"; then
208 nmh_gcc_common_flags="-ansi -pedantic -Wall"
210 nmh_gcc_common_flags="-Wall"
212 if test "$nmh_cv_has_wextra" = "yes"; then
213 nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered "\
216 nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wno-pointer-sign"
219 if test "$nmh_cv_has_wextra" = "yes"; then
220 nmh_gcc_warnflags="${nmh_gcc_common_flags} -Wextra -Wno-clobbered"
222 nmh_gcc_warnflags="${nmh_gcc_common_flags}"
226 if test -n "$auto_cflags"; then
227 if test x"$enable_debug" = x"yes"; then
228 if test -n "$GCC"; then
229 test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g"
231 test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
234 if test -z "$LDFLAGS"; then
244 if test -n "$GCC"; then
245 test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
247 test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O"
252 dnl ------------------
253 dnl CHECK FOR PROGRAMS
254 dnl ------------------
255 AC_PROG_MAKE_SET dnl Does make define $MAKE
256 AC_PROG_INSTALL dnl Check for BSD compatible `install'
257 AC_PROG_RANLIB dnl Check for `ranlib'
258 AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
259 AC_PROG_SED dnl Check for Posix-compliant sed
260 AM_PROG_LEX dnl Check for lex/flex
265 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
266 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
269 dnl Check for MD5 program and formatting command
271 AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
272 AS_CASE(["${MD5SUM}"],
273 [md5sum], [MD5FMT="cat"],
274 [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]],
278 dnl ----------------------------------------------
279 dnl check for lclint, and lint if it doesn't exist
280 dnl ----------------------------------------------
281 AC_CHECK_PROG([linttmp1], [lclint], [lclint], [no])dnl
282 AS_IF([test x$ac_cv_prog_linttmp1 != xno],
283 [LINT=$ac_cv_prog_linttmp1
284 LINTFLAGS="-weak +posixlib -macrovarprefixexclude"],
285 [AC_CHECK_PROG([linttmp2], [lint], [lint], [no])dnl
286 AS_IF([test x$ac_cv_prog_linttmp2 != xno],
287 [LINT=$ac_cv_prog_linttmp2
289 [LINT="echo 'No lint program found'"
292 AC_SUBST([LINTFLAGS])dnl
295 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
296 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
298 dnl See how we get ls to display the owner and the group
299 AS_IF([test "$lspath" != "no"],
300 [AC_CACHE_CHECK([how to get ls to show us the group ownership of a file],
302 [AS_IF([test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"],[
303 dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
304 dnl ls, it would seem -l gave us both the user and group. On this type of
305 dnl ls, -g makes _only_ the group be displayed (and not the user).
306 nmh_cv_ls_grpopt="-l"],[
307 dnl Looks like -l only gave us the user, so we need -g to get the group too.
308 nmh_cv_ls_grpopt="-lg"])])])
310 dnl Look for `sendmail'
311 pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
312 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
314 dnl Cygwin FAT filesystems do not support hard links. So default to
315 dnl cp instead, even if running on an NTFS or other filesystem.
316 AS_CASE(["$host_os"],
321 dnl ----------------------------------------------------------
322 dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
323 dnl ----------------------------------------------------------
324 AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool,
325 [for mailspool in /var/mail dnl
328 /dev/null; dnl Just in case we fall through
330 test -d $mailspool && break
332 nmh_cv_mailspool=$mailspool
334 mailspool=$nmh_cv_mailspool
335 AC_SUBST([mailspool])dnl
337 dnl See whether the mail spool directory is world-writable.
338 if test "$lspath" != "no" -a "$cutpath" != "no"; then
339 AC_CACHE_CHECK(whether the mail spool is world-writable,
340 nmh_cv_mailspool_world_writable,
341 [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
342 nmh_cv_mailspool_world_writable=no
344 nmh_cv_mailspool_world_writable=yes
348 dnl Also, check for liblockfile (as found on Debian systems)
349 AC_CHECK_HEADER([lockfile.h], [AC_CHECK_LIB(lockfile, lockfile_create)])
351 dnl and whether its companion program dotlockfile is setgid
352 AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
353 if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
354 if test "$ac_cv_path_dotlockfilepath" != "no" ; then
355 AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid,
356 [ if test -g "$ac_cv_path_dotlockfilepath" ; then
357 nmh_cv_dotlockfile_setgid=yes
359 nmh_cv_dotlockfile_setgid=no
364 dnl Provide a way for distcheck to disable setgid_mail via
365 dnl DISTCHECK_CONFIGURE_FLAGS.
366 AS_IF([test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0],
367 [nmh_cv_dotlockfile_setgid=yes])
369 dnl If mailspool is not world-writable and dotlockfile is not setgid,
370 dnl we need to #define MAILGROUP to 1 and make inc setgid.
371 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
372 dnl do we really need both of these?
373 AC_DEFINE(MAILGROUP,1,
374 [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
377 AC_SUBST([SETGID_MAIL])dnl
379 dnl Use ls to see which group owns the mail spool directory.
380 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
381 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
383 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
384 AC_SUBST(MAIL_SPOOL_GRP)dnl
386 dnl ------------------
387 dnl CHECK HEADER FILES
388 dnl ------------------
390 dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features,
391 dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define
392 dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns
393 dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth()
394 dnl declared; if so they should have an entry added to this case statement.
395 dnl NB that we must define this on the compiler command line, not in config.h,
396 dnl because it must be set before any system header is included and there's no
397 dnl portable way to make sure that files generated by lex include config.h
398 dnl before system header files.
400 AS_CASE(["$host_os"],
402 [# Like DEFS, but doesn't get stomped on by configure when using config.h:
403 AS_IF([test -z "$CPPFLAGS"],[CPPFLAGS="-D_GNU_SOURCE"],
404 [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
407 AC_CHECK_HEADERS([fcntl.h ncurses/termcap.h termcap.h langinfo.h \
408 wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
410 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
411 [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
412 [[#if HAVE_SYS_STREAM_H
413 # include <sys/stream.h>
420 AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
422 dnl Check for multibyte character set support
423 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
424 "x$ac_cv_header_wctype_h" = "xyes" -a \
425 "x$ac_cv_func_wcwidth" = "xyes" -a \
426 "x$ac_cv_func_mbtowc" = "xyes"],
427 [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
428 [Define to enable support for multibyte character sets.])
429 MULTIBYTE_ENABLED=1],
430 [MULTIBYTE_ENABLED=0])
431 AC_SUBST([MULTIBYTE_ENABLED])
433 dnl -------------------
434 dnl CHECK FOR LIBRARIES
435 dnl -------------------
436 dnl Check location of modf
437 AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
439 dnl Checks for network libraries (nsl, socket)
442 dnl Check for readline support
448 termcap_curses_order="termcap curses ncurses"
449 for lib in $termcap_curses_order; do
450 AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
452 AC_SUBST([TERMLIB])dnl
453 AS_IF([test "x$TERMLIB" = "x"],
454 [AC_MSG_FAILURE([Could not find tgetent in any library. Is there a curses
455 or ncurses library or package that you can install?])])
461 AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]),
462 [nmh_ndbm=$withval],[nmh_ndbm=autodetect])
463 AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include <ARG> to use ndbm]),
464 [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect])
466 if test "$nmh_ndbm" = "autodetect"; then
467 if test "$nmh_ndbmheader" != "autodetect"; then
468 AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither])
471 dnl There are at least four implementations of ndbm, and
472 dnl several of those can be in different places at the whim
473 dnl of the system integrator. A good summary of this mess
474 dnl can be found at http://www.unixpapa.com/incnote/dbm.html
476 dnl Classic ndbm with no library required (eg NetBSD): try this
477 dnl first so we don't accidentally link in a pointless but harmless
478 dnl library in one of the later ndbm.h+libfoo tests:
479 NMH_CHECK_NDBM(ndbm.h,,,
480 dnl Berkeley DBv2 emulating ndbm: header in db.h:
481 NMH_CHECK_NDBM(db.h,db,,
482 dnl Berkeley DBv1 emulating ndbm:
483 NMH_CHECK_NDBM(ndbm.h,db,,
484 NMH_CHECK_NDBM(ndbm.h,db1,,
486 NMH_CHECK_NDBM(ndbm.h,ndbm,,
487 dnl glibc2.1 systems put db1 in a subdir:
488 NMH_CHECK_NDBM(db1/ndbm.h,db1,,
489 dnl GNU gdbm emulating ndbm, with header possibly in gdbm/
490 dnl and possibly needing gbdm_compat library:
491 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,,
492 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,,
493 NMH_CHECK_NDBM(ndbm.h,gdbm,,
494 NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm))))))))))
498 dnl We don't really need to check that the user-specified values work,
499 dnl but it is a convenience to the user to bomb out early rather than
500 dnl after configure and half the compile process.
501 NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm])
504 if test "$nmh_ndbm_found" = "no"; then
505 AC_MSG_ERROR([could not find a working ndbm library/header combination])
507 dnl Now export the lib/header to our makefile/config.h:
508 if test x"$nmh_ndbmheader" != x; then
509 AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
510 [Define to the header containing the ndbm API prototypes.])
512 if test x"$nmh_ndbm" != x; then
513 NDBM_LIBS="-l$nmh_ndbm"
517 AC_SUBST([NDBM_LIBS])
520 dnl ------------------
521 dnl Set RPM build root
522 dnl ------------------
523 dnl nmhrpm is used in the final summary, see below. The default value is
524 dnl reported there as ./RPM, consistent with the reporting of the default
525 dnl source code location as ., but its absolute path is used in the Makefile.
526 AC_ARG_WITH([rpmdir],
527 [AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])])
528 AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM],
529 [rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"])
533 dnl --------------------
534 dnl CHECK FOR CYRUS-SASL
535 dnl --------------------
537 AS_IF([test x"$sasl_support" = x"yes"],[
538 AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])])
539 AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"],
540 [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
543 dnl -----------------
544 dnl CHECK FOR OPENSSL
545 dnl -----------------
547 AS_IF([test x"$tls_support" = x"yes"],[
548 AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
549 AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
550 [AC_MSG_ERROR([OpenSSL crypto library not found])])
551 AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
552 [AC_MSG_ERROR([OpenSSL library not found])])],
556 dnl ---------------------
557 dnl CHECK TERMCAP LIBRARY
558 dnl ---------------------
560 dnl Add the termcap library, so that the following configure
561 dnl tests will find it when it tries to link test programs.
562 nmh_save_LIBS="$LIBS"
563 LIBS="$TERMLIB $LIBS"
565 dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
566 dnl Some termcaps reportedly accept a zero buffer, but then dump core
568 dnl Under Cygwin test program crashes but exit code is still 0. So,
569 dnl we test for a file that porgram should create
570 AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
571 [Define to 1 if tgetent() accepts NULL as a buffer.])
572 AC_CACHE_CHECK(if tgetent accepts NULL,
573 nmh_cv_func_tgetent_accepts_null,
578 int r1 = tgetent(buf, "vt100");
579 int r2 = tgetent((char*)0,"vt100");
580 if (r1 >= 0 && r1 == r2) {
584 creat("conftest.tgetent", 0640);
586 exit((r1 != r2) || r2 == -1);
589 if test -f conftest.tgetent; then
590 nmh_cv_func_tgetent_accepts_null=yes
592 nmh_cv_func_tgetent_accepts_null=no
594 nmh_cv_func_tgetent_accepts_null=no,
595 nmh_cv_func_tgetent_accepts_null=no)])
596 if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
597 AC_DEFINE(TGETENT_ACCEPTS_NULL)
599 AC_CACHE_CHECK(if tgetent returns 0 on success,
600 nmh_cv_func_tgetent_zero_success,
605 int r1 = tgetent(buf, "!@#$%^&*");
606 int r2 = tgetent(buf, "vt100");
607 if (r1 < 0 && r2 == 0) {
611 creat("conftest.tgetent0", 0640);
616 if test -f conftest.tgetent0; then
617 nmh_cv_func_tgetent_zero_success=yes
619 nmh_cv_func_tgetent_zero_success=no
621 nmh_cv_func_tgetent_zero_success=no,
622 nmh_cv_func_tgetent_zero_success=no)])
623 AH_TEMPLATE([TGETENT_SUCCESS],
624 [Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
625 if test x$nmh_cv_func_tgetent_zero_success = xyes; then
626 AC_DEFINE(TGETENT_SUCCESS, 0)
628 AC_DEFINE(TGETENT_SUCCESS, 1)
631 dnl Now put the libraries back to what it was before we
632 dnl starting checking the termcap library.
633 LIBS="$nmh_save_LIBS"
648 dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm.
649 dnl (FreeBSD has a timezone() function but not a timezone global
650 dnl variable that is visible).
651 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
653 AC_STRUCT_DIRENT_D_TYPE
655 dnl Where is <signal.h> located? Needed as input for signames.awk
656 AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
657 [for SIGNAL_H in /usr/include/bsd/sys/signal.h dnl Next
658 /usr/include/asm/signal.h dnl Linux 1.3.0 and above
659 /usr/include/asm/signum.h dnl some versions of Linux/Alpha
660 /usr/include/linux/signal.h dnl Linux up to 1.2.11
661 /usr/include/sys/signal.h dnl Almost everybody else
662 /dev/null; dnl Just in case we fall through
664 test -f $SIGNAL_H && \
665 grep '#[ ]*define[ ][ ]*SIG[0-9A-Z]*[ ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
668 nmh_cv_path_signal_h=$SIGNAL_H
670 SIGNAL_H=$nmh_cv_path_signal_h
671 AC_SUBST(SIGNAL_H)dnl
674 dnl Sigh, this is required because under the new world order autoconf has
675 dnl nothing to create in a few of the build directories when doing an object
676 dnl tree build. So make sure we created certain directories if they don't
680 AC_CONFIG_COMMANDS([build-directories],
681 [test -d etc || AS_MKDIR_P([etc])
682 test -d man || AS_MKDIR_P([man])])
684 AC_CONFIG_COMMANDS_POST([
686 dnl These odd looking assignments are done to expand out unexpanded
687 dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'),
688 dnl but expanding that gives '${prefix}/share/man', so we need to expand
689 dnl again to get the final answer.
690 dnl We only use the expanded versions to print the install paths in
691 dnl the final summary and should use them nowhere else (see the autoconf
692 dnl docs for the rationale for bindir etc being unexpanded).
693 eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}"
694 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}"
695 eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}"
696 eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
697 eval "nmhrpm=${nmhrpm}";
702 nmh version : AC_PACKAGE_VERSION
705 compiler flags : ${CFLAGS}
706 linker flags : ${LDFLAGS}
707 preprocessor flags : ${CPPFLAGS}
708 source code location : ${srcdir}
709 binary install path : ${nmhbin}
710 library install path : ${nmhlib}
711 config files install path : ${nmhsysconf}
712 man page install path : ${nmhman}
713 RPM build root : ${nmhrpm}
714 backup prefix : ${backup_prefix}
715 transport system : ${MTS}
716 file locking type : ${LOCKTYPE}
717 default smtp servers : ${smtpservers}
718 default editor : ${editorpath}
719 SASL support : ${sasl_support}
720 TLS support : ${tls_support}
726 AC_CONFIG_FILES([Makefile test/common.sh])
727 AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost])