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 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]*\)/\2 \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])
411 dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
412 dnl really use a whole set of them, but this check should be
415 AC_CHECK_HEADER(libio.h, [
416 AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
417 AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ])
419 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
420 [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
421 [[#if HAVE_SYS_STREAM_H
422 # include <sys/stream.h>
429 AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
431 dnl Check for multibyte character set support
432 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
433 "x$ac_cv_header_wctype_h" = "xyes" -a \
434 "x$ac_cv_func_wcwidth" = "xyes" -a \
435 "x$ac_cv_func_mbtowc" = "xyes"],
436 [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
437 [Define to enable support for multibyte character sets.])
438 MULTIBYTE_ENABLED=1],
439 [MULTIBYTE_ENABLED=0])
440 AC_SUBST([MULTIBYTE_ENABLED])
442 dnl -------------------
443 dnl CHECK FOR LIBRARIES
444 dnl -------------------
445 dnl Check location of modf
446 AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
448 dnl Checks for network libraries (nsl, socket)
451 dnl Check for readline support
457 termcap_curses_order="termcap curses ncurses"
458 for lib in $termcap_curses_order; do
459 AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
461 AC_SUBST([TERMLIB])dnl
462 AS_IF([test "x$TERMLIB" = "x"],
463 [AC_MSG_FAILURE([Could not find tgetent in any library. Is there a curses
464 or ncurses library or package that you can install?])])
470 AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]),
471 [nmh_ndbm=$withval],[nmh_ndbm=autodetect])
472 AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include <ARG> to use ndbm]),
473 [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect])
475 if test "$nmh_ndbm" = "autodetect"; then
476 if test "$nmh_ndbmheader" != "autodetect"; then
477 AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither])
480 dnl There are at least four implementations of ndbm, and
481 dnl several of those can be in different places at the whim
482 dnl of the system integrator. A good summary of this mess
483 dnl can be found at http://www.unixpapa.com/incnote/dbm.html
485 dnl Classic ndbm with no library required (eg NetBSD): try this
486 dnl first so we don't accidentally link in a pointless but harmless
487 dnl library in one of the later ndbm.h+libfoo tests:
488 NMH_CHECK_NDBM(ndbm.h,,,
489 dnl Berkeley DBv2 emulating ndbm: header in db.h:
490 NMH_CHECK_NDBM(db.h,db,,
491 dnl Berkeley DBv1 emulating ndbm:
492 NMH_CHECK_NDBM(ndbm.h,db,,
493 NMH_CHECK_NDBM(ndbm.h,db1,,
495 NMH_CHECK_NDBM(ndbm.h,ndbm,,
496 dnl glibc2.1 systems put db1 in a subdir:
497 NMH_CHECK_NDBM(db1/ndbm.h,db1,,
498 dnl GNU gdbm emulating ndbm, with header possibly in gdbm/
499 dnl and possibly needing gbdm_compat library:
500 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,,
501 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,,
502 NMH_CHECK_NDBM(ndbm.h,gdbm,,
503 NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm))))))))))
507 dnl We don't really need to check that the user-specified values work,
508 dnl but it is a convenience to the user to bomb out early rather than
509 dnl after configure and half the compile process.
510 NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm])
513 if test "$nmh_ndbm_found" = "no"; then
514 AC_MSG_ERROR([could not find a working ndbm library/header combination])
516 dnl Now export the lib/header to our makefile/config.h:
517 if test x"$nmh_ndbmheader" != x; then
518 AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
519 [Define to the header containing the ndbm API prototypes.])
521 if test x"$nmh_ndbm" != x; then
522 NDBM_LIBS="-l$nmh_ndbm"
526 AC_SUBST([NDBM_LIBS])
529 dnl ------------------
530 dnl Set RPM build root
531 dnl ------------------
532 dnl nmhrpm is used in the final summary, see below. The default value is
533 dnl reported there as ./RPM, consistent with the reporting of the default
534 dnl source code location as ., but its absolute path is used in the Makefile.
535 AC_ARG_WITH([rpmdir],
536 [AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])])
537 AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM],
538 [rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"])
542 dnl --------------------
543 dnl CHECK FOR CYRUS-SASL
544 dnl --------------------
546 AS_IF([test x"$sasl_support" = x"yes"],[
547 AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])])
548 AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"],
549 [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
552 dnl -----------------
553 dnl CHECK FOR OPENSSL
554 dnl -----------------
556 AS_IF([test x"$tls_support" = x"yes"],[
557 AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
558 AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
559 [AC_MSG_ERROR([OpenSSL crypto library not found])])
560 AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
561 [AC_MSG_ERROR([OpenSSL library not found])])],
565 dnl ---------------------
566 dnl CHECK TERMCAP LIBRARY
567 dnl ---------------------
569 dnl Add the termcap library, so that the following configure
570 dnl tests will find it when it tries to link test programs.
571 nmh_save_LIBS="$LIBS"
572 LIBS="$TERMLIB $LIBS"
574 dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
575 dnl Some termcaps reportedly accept a zero buffer, but then dump core
577 dnl Under Cygwin test program crashes but exit code is still 0. So,
578 dnl we test for a file that porgram should create
579 AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
580 [Define to 1 if tgetent() accepts NULL as a buffer.])
581 AC_CACHE_CHECK(if tgetent accepts NULL,
582 nmh_cv_func_tgetent_accepts_null,
587 int r1 = tgetent(buf, "vt100");
588 int r2 = tgetent((char*)0,"vt100");
589 if (r1 >= 0 && r1 == r2) {
593 creat("conftest.tgetent", 0640);
595 exit((r1 != r2) || r2 == -1);
598 if test -f conftest.tgetent; then
599 nmh_cv_func_tgetent_accepts_null=yes
601 nmh_cv_func_tgetent_accepts_null=no
603 nmh_cv_func_tgetent_accepts_null=no,
604 nmh_cv_func_tgetent_accepts_null=no)])
605 if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
606 AC_DEFINE(TGETENT_ACCEPTS_NULL)
608 AC_CACHE_CHECK(if tgetent returns 0 on success,
609 nmh_cv_func_tgetent_zero_success,
614 int r1 = tgetent(buf, "!@#$%^&*");
615 int r2 = tgetent(buf, "vt100");
616 if (r1 < 0 && r2 == 0) {
620 creat("conftest.tgetent0", 0640);
625 if test -f conftest.tgetent0; then
626 nmh_cv_func_tgetent_zero_success=yes
628 nmh_cv_func_tgetent_zero_success=no
630 nmh_cv_func_tgetent_zero_success=no,
631 nmh_cv_func_tgetent_zero_success=no)])
632 AH_TEMPLATE([TGETENT_SUCCESS],
633 [Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
634 if test x$nmh_cv_func_tgetent_zero_success = xyes; then
635 AC_DEFINE(TGETENT_SUCCESS, 0)
637 AC_DEFINE(TGETENT_SUCCESS, 1)
640 dnl Now put the libraries back to what it was before we
641 dnl starting checking the termcap library.
642 LIBS="$nmh_save_LIBS"
657 dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm.
658 dnl (FreeBSD has a timezone() function but not a timezone global
659 dnl variable that is visible).
660 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
662 AC_STRUCT_DIRENT_D_TYPE
664 dnl Where is <signal.h> located? Needed as input for signames.awk
665 AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
666 [for SIGNAL_H in /usr/include/bsd/sys/signal.h dnl Next
667 /usr/include/asm/signal.h dnl Linux 1.3.0 and above
668 /usr/include/asm/signum.h dnl some versions of Linux/Alpha
669 /usr/include/linux/signal.h dnl Linux up to 1.2.11
670 /usr/include/sys/signal.h dnl Almost everybody else
671 /dev/null; dnl Just in case we fall through
673 test -f $SIGNAL_H && \
674 grep '#[ ]*define[ ][ ]*SIG[0-9A-Z]*[ ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
677 nmh_cv_path_signal_h=$SIGNAL_H
679 SIGNAL_H=$nmh_cv_path_signal_h
680 AC_SUBST(SIGNAL_H)dnl
683 dnl Sigh, this is required because under the new world order autoconf has
684 dnl nothing to create in a few of the build directories when doing an object
685 dnl tree build. So make sure we created certain directories if they don't
689 AC_CONFIG_COMMANDS([build-directories],
690 [test -d etc || AS_MKDIR_P([etc])
691 test -d man || AS_MKDIR_P([man])])
693 AC_CONFIG_COMMANDS_POST([
695 dnl These odd looking assignments are done to expand out unexpanded
696 dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'),
697 dnl but expanding that gives '${prefix}/share/man', so we need to expand
698 dnl again to get the final answer.
699 dnl We only use the expanded versions to print the install paths in
700 dnl the final summary and should use them nowhere else (see the autoconf
701 dnl docs for the rationale for bindir etc being unexpanded).
702 eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}"
703 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}"
704 eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}"
705 eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
706 eval "nmhrpm=${nmhrpm}";
711 nmh version : AC_PACKAGE_VERSION
714 compiler flags : ${CFLAGS}
715 linker flags : ${LDFLAGS}
716 preprocessor flags : ${CPPFLAGS}
717 source code location : ${srcdir}
718 binary install path : ${nmhbin}
719 library install path : ${nmhlib}
720 config files install path : ${nmhsysconf}
721 man page install path : ${nmhman}
722 RPM build root : ${nmhrpm}
723 backup prefix : ${backup_prefix}
724 transport system : ${MTS}
725 file locking type : ${LOCKTYPE}
726 default smtp servers : ${smtpservers}
727 default editor : ${editorpath}
728 SASL support : ${sasl_support}
729 TLS support : ${tls_support}
735 AC_CONFIG_FILES([Makefile test/common.sh])
736 AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost])