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 compiler supports -Wextra], [nmh_cv_has_wextra],
141 [nmh_saved_cflags="$CFLAGS"
142 CFLAGS="$CFLAGS -Wextra -Werror"
143 AC_TRY_COMPILE([],[],nmh_cv_has_wextra=yes,nmh_cv_has_wextra=no)
144 CFLAGS="$nmh_saved_cflags"])
146 AC_CACHE_CHECK([whether compiler supports -Wno-clobbered], [nmh_cv_has_noclobbered],
147 [nmh_saved_cflags="$CFLAGS"
148 CFLAGS="$CFLAGS -Wno-clobbered -Werror"
149 AC_TRY_COMPILE([],[],nmh_cv_has_noclobbered=yes,nmh_cv_has_noclobbered=no)
150 CFLAGS="$nmh_saved_cflags"])
152 dnl Can't use -ansi with gcc 4.5.3 on Cygwin, at least through setup
153 dnl setup version 2.763, because it disables some features in the
154 dnl system system header files and warns about them with -Wall. Try
155 dnl to test for that generally, though still with gcc.
156 if test "$GCC" = yes; then
157 AC_CACHE_CHECK([whether we can use -ansi with gcc], [nmh_cv_has_dash_ansi],
158 [nmh_saved_cppflags="$CPPFLAGS"
159 nmh_saved_cflags="$CFLAGS"
160 CPPFLAGS="-D_GNU_SOURCE"
161 CFLAGS="-ansi -Wall -Werror"
162 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <time.h>],[tzset();])],
163 [nmh_cv_has_dash_ansi=yes],
164 [nmh_cv_has_dash_ansi=no])
165 CPPFLAGS="$nmh_saved_cppflags"
166 CFLAGS="$nmh_saved_cflags"])
168 nmh_cv_has_dash_ansi=no
171 dnl if the user hasn't specified CFLAGS, then
172 dnl if compiler is gcc, then
173 dnl use -O2 and some warning flags
175 dnl We use -Wall and -Wextra if supported. If the compiler supports it we
176 dnl also use -Wno-pointer-sign, because gcc 4 now produces a lot of new
177 dnl warnings which are probably mostly spurious and which in any case we
178 dnl don't want to deal with now.
179 if test "$nmh_cv_has_dash_ansi" = "yes"; then
180 nmh_gcc_warnflags="-ansi -pedantic -Wall"
182 nmh_gcc_warnflags="-Wall"
184 if test "$nmh_cv_has_wextra" = "yes"; then
185 nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wextra"
187 if test "$nmh_cv_has_noclobbered" = "yes"; then
188 nmh_gcc_warnflags="${nmh_gcc_warnflags} -Wno-clobbered"
191 if test -n "$auto_cflags"; then
192 if test x"$enable_debug" = x"yes"; then
193 if test -n "$GCC"; then
194 test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g"
196 test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
199 if test -z "$LDFLAGS"; then
209 if test -n "$GCC"; then
210 test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
212 test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O"
214 AC_DEFINE([NDEBUG], [1],
215 [Define to disable run-time debugging and asserts.])
219 dnl ------------------
220 dnl CHECK FOR PROGRAMS
221 dnl ------------------
222 AC_PROG_MAKE_SET dnl Does make define $MAKE
223 AC_PROG_INSTALL dnl Check for BSD compatible `install'
224 AC_PROG_RANLIB dnl Check for `ranlib'
225 AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk
226 AC_PROG_SED dnl Check for Posix-compliant sed
227 AM_PROG_LEX dnl Check for lex/flex
232 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
233 AC_PATH_PROG([cutpath], [cut], [no], [$pathtmp])
236 dnl Check for MD5 program and formatting command
238 AC_CHECK_PROGS([MD5SUM], [md5sum md5], [missing])
239 AS_CASE(["${MD5SUM}"],
240 [md5sum], [MD5FMT="cat"],
241 [md5], [[MD5FMT="${SED} -e 's/MD5 *(.*) *= \([0-9a-f]*\)/\1/'"]],
245 dnl ----------------------------------------------
246 dnl check for lclint, and lint if it doesn't exist
247 dnl ----------------------------------------------
248 AC_CHECK_PROG([linttmp1], [lclint], [lclint], [no])dnl
249 AS_IF([test x$ac_cv_prog_linttmp1 != xno],
250 [LINT=$ac_cv_prog_linttmp1
251 LINTFLAGS="-weak +posixlib -macrovarprefixexclude"],
252 [AC_CHECK_PROG([linttmp2], [lint], [lint], [no])dnl
253 AS_IF([test x$ac_cv_prog_linttmp2 != xno],
254 [LINT=$ac_cv_prog_linttmp2
256 [LINT="echo 'No lint program found'"
259 AC_SUBST([LINTFLAGS])dnl
262 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
263 AC_PATH_PROG([lspath], [ls], [no], [$pathtmp])
265 dnl See how we get ls to display the owner and the group
266 AS_IF([test "$lspath" != "no"],
267 [AC_CACHE_CHECK([how to get ls to show us the group ownership of a file],
269 [AS_IF([test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"],[
270 dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
271 dnl ls, it would seem -l gave us both the user and group. On this type of
272 dnl ls, -g makes _only_ the group be displayed (and not the user).
273 nmh_cv_ls_grpopt="-l"],[
274 dnl Looks like -l only gave us the user, so we need -g to get the group too.
275 nmh_cv_ls_grpopt="-lg"])])])
277 dnl Look for `sendmail'
278 pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
279 AC_PATH_PROG([sendmailpath], [sendmail], [/usr/sbin/sendmail], [$pathtmp])
281 dnl Cygwin FAT filesystems do not support hard links. So default to
282 dnl cp instead, even if running on an NTFS or other filesystem.
283 AS_CASE(["$host_os"],
288 dnl ----------------------------------------------------------
289 dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
290 dnl ----------------------------------------------------------
291 AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool,
292 [for mailspool in /var/mail dnl
295 /dev/null; dnl Just in case we fall through
297 test -d $mailspool && break
299 nmh_cv_mailspool=$mailspool
301 mailspool=$nmh_cv_mailspool
302 AC_SUBST([mailspool])dnl
304 dnl See whether the mail spool directory is world-writable.
305 if test "$lspath" != "no" -a "$cutpath" != "no"; then
306 AC_CACHE_CHECK(whether the mail spool is world-writable,
307 nmh_cv_mailspool_world_writable,
308 [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
309 nmh_cv_mailspool_world_writable=no
311 nmh_cv_mailspool_world_writable=yes
315 dnl Also, check for liblockfile (as found on Debian systems)
316 AC_CHECK_HEADER([lockfile.h], [AC_CHECK_LIB(lockfile, lockfile_create)])
318 dnl and whether its companion program dotlockfile is setgid
319 AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
320 if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
321 if test "$ac_cv_path_dotlockfilepath" != "no" ; then
322 AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid,
323 [ if test -g "$ac_cv_path_dotlockfilepath" ; then
324 nmh_cv_dotlockfile_setgid=yes
326 nmh_cv_dotlockfile_setgid=no
331 dnl Provide a way for distcheck to disable setgid_mail via
332 dnl DISTCHECK_CONFIGURE_FLAGS.
333 AS_IF([test x"$DISABLE_SETGID_MAIL" != x -a x"$DISABLE_SETGID_MAIL" != x0],
334 [nmh_cv_dotlockfile_setgid=yes])
336 dnl If mailspool is not world-writable and dotlockfile is not setgid,
337 dnl we need to #define MAILGROUP to 1 and make inc setgid.
338 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
339 dnl do we really need both of these?
340 AC_DEFINE(MAILGROUP,1,
341 [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
344 AC_SUBST([SETGID_MAIL])dnl
346 dnl Use ls to see which group owns the mail spool directory.
347 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
348 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
350 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
351 AC_SUBST(MAIL_SPOOL_GRP)dnl
353 dnl ------------------
354 dnl CHECK HEADER FILES
355 dnl ------------------
357 dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features,
358 dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define
359 dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns
360 dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth()
361 dnl declared; if so they should have an entry added to this case statement.
362 dnl NB that we must define this on the compiler command line, not in config.h,
363 dnl because it must be set before any system header is included and there's no
364 dnl portable way to make sure that files generated by lex include config.h
365 dnl before system header files.
367 AS_CASE(["$host_os"],
369 [# Like DEFS, but doesn't get stomped on by configure when using config.h:
370 AS_IF([test -z "$CPPFLAGS"],[CPPFLAGS="-D_GNU_SOURCE"],
371 [CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"])])
374 AC_CHECK_HEADERS([fcntl.h ncurses/termcap.h termcap.h langinfo.h \
375 wchar.h wctype.h sys/param.h sys/time.h sys/stream.h])
377 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
378 [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
379 [[#if HAVE_SYS_STREAM_H
380 # include <sys/stream.h>
387 AC_CHECK_FUNCS([wcwidth mbtowc writev lstat nl_langinfo getutxent])
389 dnl Check for multibyte character set support
390 AS_IF([test "x$ac_cv_header_wchar_h" = "xyes" -a \
391 "x$ac_cv_header_wctype_h" = "xyes" -a \
392 "x$ac_cv_func_wcwidth" = "xyes" -a \
393 "x$ac_cv_func_mbtowc" = "xyes"],
394 [AC_DEFINE([MULTIBYTE_SUPPORT], [1],
395 [Define to enable support for multibyte character sets.])
396 MULTIBYTE_ENABLED=1],
397 [MULTIBYTE_ENABLED=0])
398 AC_SUBST([MULTIBYTE_ENABLED])
400 dnl -------------------
401 dnl CHECK FOR LIBRARIES
402 dnl -------------------
403 dnl Check location of modf
404 AC_CHECK_FUNC([modf], , AC_CHECK_LIB([m], [modf]))
406 dnl Checks for network libraries (nsl, socket)
409 dnl Check for readline support
415 termcap_curses_order="termcap curses ncurses"
416 for lib in $termcap_curses_order; do
417 AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
419 AC_SUBST([TERMLIB])dnl
420 AS_IF([test "x$TERMLIB" = "x"],
421 [AC_MSG_FAILURE([Could not find tgetent in any library. Is there a curses
422 or ncurses library or package that you can install?])])
428 AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]),
429 [nmh_ndbm=$withval],[nmh_ndbm=autodetect])
430 AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include <ARG> to use ndbm]),
431 [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect])
433 if test "$nmh_ndbm" = "autodetect"; then
434 if test "$nmh_ndbmheader" != "autodetect"; then
435 AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither])
438 dnl There are at least four implementations of ndbm, and
439 dnl several of those can be in different places at the whim
440 dnl of the system integrator. A good summary of this mess
441 dnl can be found at http://www.unixpapa.com/incnote/dbm.html
443 dnl Classic ndbm with no library required (eg NetBSD): try this
444 dnl first so we don't accidentally link in a pointless but harmless
445 dnl library in one of the later ndbm.h+libfoo tests:
446 NMH_CHECK_NDBM(ndbm.h,,,
447 dnl Berkeley DBv2 emulating ndbm: header in db.h:
448 NMH_CHECK_NDBM(db.h,db,,
449 dnl Berkeley DBv1 emulating ndbm:
450 NMH_CHECK_NDBM(ndbm.h,db,,
451 NMH_CHECK_NDBM(ndbm.h,db1,,
453 NMH_CHECK_NDBM(ndbm.h,ndbm,,
454 dnl glibc2.1 systems put db1 in a subdir:
455 NMH_CHECK_NDBM(db1/ndbm.h,db1,,
456 dnl GNU gdbm emulating ndbm, with header possibly in gdbm/
457 dnl and possibly needing gbdm_compat library:
458 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,,
459 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,,
460 NMH_CHECK_NDBM(ndbm.h,gdbm,,
461 NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm))))))))))
465 dnl We don't really need to check that the user-specified values work,
466 dnl but it is a convenience to the user to bomb out early rather than
467 dnl after configure and half the compile process.
468 NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm])
471 if test "$nmh_ndbm_found" = "no"; then
472 AC_MSG_ERROR([could not find a working ndbm library/header combination])
474 dnl Now export the lib/header to our makefile/config.h:
475 if test x"$nmh_ndbmheader" != x; then
476 AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
477 [Define to the header containing the ndbm API prototypes.])
479 if test x"$nmh_ndbm" != x; then
480 NDBM_LIBS="-l$nmh_ndbm"
484 AC_SUBST([NDBM_LIBS])
487 dnl ------------------
488 dnl Set RPM build root
489 dnl ------------------
490 dnl nmhrpm is used in the final summary, see below. The default value is
491 dnl reported there as ./RPM, consistent with the reporting of the default
492 dnl source code location as ., but its absolute path is used in the Makefile.
493 AC_ARG_WITH([rpmdir],
494 [AS_HELP_STRING([--with-rpmdir=RPMDIR], [RPM build directory @<:@RPM@:>@])])
495 AS_IF([test x"$with_rpmdir" = x], [rpmdir='$(abs_srcdir)/RPM'; nmhrpm=./RPM],
496 [rpmdir="$with_rpmdir"; eval "nmhrpm=${rpmdir}"])
500 dnl --------------------
501 dnl CHECK FOR CYRUS-SASL
502 dnl --------------------
504 AS_IF([test x"$sasl_support" = x"yes"],[
505 AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])])
506 AC_CHECK_LIB([sasl2], [sasl_client_new], [SASLLIB="-lsasl2"],
507 [AC_MSG_ERROR([Cyrus SASL library not found])])],[SASLLIB=""])
510 dnl -----------------
511 dnl CHECK FOR OPENSSL
512 dnl -----------------
514 AS_IF([test x"$tls_support" = x"yes"],[
515 AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])])
516 AC_CHECK_LIB([crypto], [BIO_write], [TLSLIB="-lcrypto"],
517 [AC_MSG_ERROR([OpenSSL crypto library not found])])
518 AC_CHECK_LIB([ssl], [SSL_library_init], [TLSLIB="-lssl $TLSLIB"],
519 [AC_MSG_ERROR([OpenSSL library not found])])],
523 dnl ---------------------
524 dnl CHECK TERMCAP LIBRARY
525 dnl ---------------------
527 dnl Add the termcap library, so that the following configure
528 dnl tests will find it when it tries to link test programs.
529 nmh_save_LIBS="$LIBS"
530 LIBS="$TERMLIB $LIBS"
532 dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
533 dnl Some termcaps reportedly accept a zero buffer, but then dump core
535 dnl Under Cygwin test program crashes but exit code is still 0. So,
536 dnl we test for a file that porgram should create
537 AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
538 [Define to 1 if tgetent() accepts NULL as a buffer.])
539 AC_CACHE_CHECK(if tgetent accepts NULL,
540 nmh_cv_func_tgetent_accepts_null,
545 int r1 = tgetent(buf, "vt100");
546 int r2 = tgetent((char*)0,"vt100");
547 if (r1 >= 0 && r1 == r2) {
551 creat("conftest.tgetent", 0640);
553 exit((r1 != r2) || r2 == -1);
556 if test -f conftest.tgetent; then
557 nmh_cv_func_tgetent_accepts_null=yes
559 nmh_cv_func_tgetent_accepts_null=no
561 nmh_cv_func_tgetent_accepts_null=no,
562 nmh_cv_func_tgetent_accepts_null=no)])
563 if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
564 AC_DEFINE(TGETENT_ACCEPTS_NULL)
566 AC_CACHE_CHECK(if tgetent returns 0 on success,
567 nmh_cv_func_tgetent_zero_success,
572 int r1 = tgetent(buf, "!@#$%^&*");
573 int r2 = tgetent(buf, "vt100");
574 if (r1 < 0 && r2 == 0) {
578 creat("conftest.tgetent0", 0640);
583 if test -f conftest.tgetent0; then
584 nmh_cv_func_tgetent_zero_success=yes
586 nmh_cv_func_tgetent_zero_success=no
588 nmh_cv_func_tgetent_zero_success=no,
589 nmh_cv_func_tgetent_zero_success=no)])
590 AH_TEMPLATE([TGETENT_SUCCESS],
591 [Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
592 if test x$nmh_cv_func_tgetent_zero_success = xyes; then
593 AC_DEFINE(TGETENT_SUCCESS, 0)
595 AC_DEFINE(TGETENT_SUCCESS, 1)
598 dnl Now put the libraries back to what it was before we
599 dnl starting checking the termcap library.
600 LIBS="$nmh_save_LIBS"
615 dnl For platforms such as FreeBSD that have tm_gmtoff in struct tm.
616 dnl (FreeBSD has a timezone() function but not a timezone global
617 dnl variable that is visible).
618 AC_CHECK_MEMBERS([struct tm.tm_gmtoff],,,[#include <time.h>])
620 AC_STRUCT_DIRENT_D_TYPE
622 dnl Where is <signal.h> located? Needed as input for signames.awk
623 AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
624 [for SIGNAL_H in /usr/include/bsd/sys/signal.h dnl Next
625 /usr/include/asm/signal.h dnl Linux 1.3.0 and above
626 /usr/include/asm/signum.h dnl some versions of Linux/Alpha
627 /usr/include/linux/signal.h dnl Linux up to 1.2.11
628 /usr/include/sys/signal.h dnl Almost everybody else
629 /dev/null; dnl Just in case we fall through
631 test -f $SIGNAL_H && \
632 grep '#[ ]*define[ ][ ]*SIG[0-9A-Z]*[ ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
635 nmh_cv_path_signal_h=$SIGNAL_H
637 SIGNAL_H=$nmh_cv_path_signal_h
638 AC_SUBST(SIGNAL_H)dnl
641 dnl Sigh, this is required because under the new world order autoconf has
642 dnl nothing to create in a few of the build directories when doing an object
643 dnl tree build. So make sure we created certain directories if they don't
647 AC_CONFIG_COMMANDS([build-directories],
648 [test -d etc || AS_MKDIR_P([etc])
649 test -d man || AS_MKDIR_P([man])])
651 AC_CONFIG_COMMANDS_POST([
653 dnl These odd looking assignments are done to expand out unexpanded
654 dnl variables in bindir et al (for instance mandir is '${datarootdir}/man'),
655 dnl but expanding that gives '${prefix}/share/man', so we need to expand
656 dnl again to get the final answer.
657 dnl We only use the expanded versions to print the install paths in
658 dnl the final summary and should use them nowhere else (see the autoconf
659 dnl docs for the rationale for bindir etc being unexpanded).
660 eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}"
661 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}"
662 eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}"
663 eval "nmhman=${mandir}"; eval "nmhman=${nmhman}"
664 eval "nmhrpm=${nmhrpm}";
669 nmh version : AC_PACKAGE_VERSION
672 compiler flags : ${CFLAGS}
673 linker flags : ${LDFLAGS}
674 preprocessor flags : ${CPPFLAGS}
675 source code location : ${srcdir}
676 binary install path : ${nmhbin}
677 library install path : ${nmhlib}
678 config files install path : ${nmhsysconf}
679 man page install path : ${nmhman}
680 RPM build root : ${nmhrpm}
681 backup prefix : ${backup_prefix}
682 transport system : ${MTS}
683 file locking type : ${LOCKTYPE}
684 default smtp servers : ${smtpservers}
685 default editor : ${editorpath}
686 SASL support : ${sasl_support}
687 TLS support : ${tls_support}
693 AC_CONFIG_FILES([Makefile test/common.sh])
694 AC_CONFIG_FILES([uip/spost], [chmod +x uip/spost])