move most remaining macros out of acconfig.h which is an obsolete feature of
[mmh] / configure.in
1 dnl
2 dnl configure.in -- autoconf template for nmh
3 dnl
4 dnl $Id$
5 dnl
6
7 dnl 2.13 definitely chokes; 2.53 is the earliest version I've tested.
8 dnl 2.58 needed for help string macro but that only affects help output
9 dnl 2.50 is the major breakpoint between the old autoconf and the new,
10 dnl so require that. If there are bug reports about 2.50-2.52 not working
11 dnl we can always move this up a little.
12 AC_PREREQ(2.50)
13
14 AC_INIT(nmh, m4_normalize(m4_include([VERSION])))
15 AC_CONFIG_SRCDIR(h/nmh.h)
16 AC_CONFIG_HEADER(config.h)
17
18 AC_CANONICAL_TARGET
19
20 dnl ---------------------
21 dnl define a macro or two
22 dnl ---------------------
23
24 AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [
25 if test -n "$LIBTOOL" ; then
26   tmptest=`$LIBTOOL --version 2>&1 | grep GNU`
27   if test x"$tmptest" != x  ; then
28     GNU_LIBTOOL=1
29     AC_SUBST(GNU_LIBTOOL)dnl
30   fi
31 fi
32 ] )
33   
34 echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION"
35 AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl
36
37 dnl What date of nmh are we building?
38 DATE=`cat ${srcdir}/DATE`
39 echo "configuring for nmh dated $DATE"
40 AC_SUBST(DATE)dnl
41
42 dnl --------------------------
43 dnl CHECK COMMAND LINE OPTIONS
44 dnl --------------------------
45
46 dnl Do you want client-side support for apop?
47 AC_ARG_ENABLE(apop, AS_HELP_STRING([--enable-apop],
48   [enable client-side support for POP3 and APOP]))
49 if test x"$enable_apop" = x"yes"; then
50   AC_DEFINE(APOP, 1,
51     [Define to compile client-side support for apop into inc and msgchk.])dnl
52   APOPLIB=md5.o
53   enable_pop=yes
54 fi
55 AC_SUBST(APOPLIB)dnl
56
57 dnl Do you want to debug nmh?
58 AC_ARG_ENABLE(debug,
59   AS_HELP_STRING([--enable-debug],[enable nmh code debugging]))
60 dnl The old redundant --enable-nmh-debug is deprecated and undocumented.
61 if test x"$enable_nmh_debug" = x"yes"; then
62   enable_debug=yes
63 fi
64
65 dnl Allow users to send email from addresses other than their default?
66 AC_ARG_ENABLE(masquerade,
67   AS_HELP_STRING([--enable-masquerade='draft_from mmailid username_extension'],
68     [enable up to 3 types of address masquerading]),
69   [if test x"$enable_masquerade" = x"yes"; then
70     masquerade="draft_from mmailid username_extension"
71   else
72     masquerade="$enable_masquerade"
73   fi])
74 AC_SUBST(masquerade)dnl
75
76 dnl Do you want mhe support?
77 AC_ARG_ENABLE(mhe,
78   AS_HELP_STRING([--disable-mhe],[disable mhe support]))
79
80 dnl mhe support is on by default, so define it unless --disable-mhe or the
81 dnl deprecated, undocumented --disable-nmh-mhe are specified.
82 if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then
83   AC_DEFINE(MHE, 1,
84     [Define to compile in support for the Emacs front-end mh-e.])dnl
85 fi
86
87 dnl Do you want client-side support for pop?
88 AC_ARG_ENABLE(pop,
89   AS_HELP_STRING([--enable-pop], [enable client-side support for plain POP3]))
90 dnl The old redundant --enable-nmh-pop is deprecated and undocumented.
91 if test x"$enable_nmh_pop" = x"yes"; then
92   enable_pop=yes
93 fi
94
95 dnl Do you want to disable use of locale functions
96 AH_TEMPLATE([LOCALE],
97 [Undefine if you don't want locale features.  By default this is defined.])
98 AC_ARG_ENABLE([locale],
99 AC_HELP_STRING([--disable-locale], [turn off locale features]),
100 [if test x$enableval = xyes; then
101   AC_DEFINE(LOCALE)
102 fi],
103 AC_DEFINE(LOCALE)
104 )
105
106 dnl Do you want client-side support for using SASL for authentication?
107 dnl Note that this code will be enabled for both POP and SMTP
108 AC_ARG_WITH(cyrus-sasl, AS_HELP_STRING([--with-cyrus-sasl=DIR],
109   [specify location of Cyrus SASL library]))
110 if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
111   AC_DEFINE(CYRUS_SASL, 1,
112     [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl
113   sasl_support=yes
114 else
115   sasl_support=no
116 fi
117
118 dnl What should be the default editor?
119 AC_ARG_WITH(editor,
120   AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor]))
121
122 if test -n "$with_editor"; then
123   editorpath="$with_editor"
124 fi
125
126 dnl Set the backup prefix
127 AC_ARG_WITH([hash-backup],
128   AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)]))
129 if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then
130   backup_prefix="#"
131 else
132   backup_prefix=","
133 fi
134 AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix",
135     [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl
136
137 dnl Do you want support for hesiod
138 AC_ARG_WITH(hesiod,
139   AS_HELP_STRING([--with-hesiod=DIR],[specify location of Hesiod]))
140 if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
141   AC_DEFINE(HESIOD,1,[Define this to compile support for using Hesiod.])dnl
142 fi
143
144 dnl Do you want client-side support for kpop
145 AC_ARG_WITH(krb4, AS_HELP_STRING([--with-krb4=DIR],
146   [specify location of Kerberos V4 for KPOP support]))
147 if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
148   enable_pop=yes
149   AC_DEFINE(KPOP, 1,
150     [Define to compile client-side support for kpop (kerberized pop) into inc and msgchk.])dnl
151   AC_DEFINE(KPOP_PRINCIPAL, "pop", [Define this to "pop" when using Kerberos V4])dnl
152 fi
153
154 dnl After we know if we're including apop and kpop support, do pop stuff
155 if test x"$enable_pop" = x"yes"; then
156   AC_DEFINE(POP, 1,
157     [Define this to compile client-side support for pop into inc and msgchk.])dnl
158   POPLIB=popsbr.o
159   POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d'
160 else
161   POPSED='/^%nmhbeginpop%/,/^%nmhendpop%/d'
162 fi
163 AC_SUBST(POPLIB)dnl
164 AC_SUBST(POPSED)dnl
165
166 dnl What method of locking to use?
167 AC_ARG_WITH(locking,
168   AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@],
169   [specify the file locking method]))
170
171 if test x"$with_locking" = x"dot"; then
172   LOCKTYPE="dot"
173   AC_DEFINE(DOT_LOCKING, 1, [Define to use dot based file locking.])dnl
174 elif test x"$with_locking" = x"flock"; then
175   LOCKTYPE="flock"
176   AC_DEFINE(FLOCK_LOCKING, 1, [Define to use flock() based locking.])dnl
177 elif test x"$with_locking" = x"lockf"; then
178   LOCKTYPE="lockf"
179   AC_DEFINE(LOCKF_LOCKING, 1, [Define to use lockf() based locking.])dnl
180 elif test x"$with_locking" = x"fcntl"; then
181   LOCKTYPE="fcntl"
182   AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl
183 else
184   LOCKTYPE="dot"
185   AC_DEFINE(DOT_LOCKING)dnl
186 fi
187
188 dnl What method of posting should post use?
189 AC_ARG_WITH(mts,
190   AS_HELP_STRING([--with-mts=@<:@smtp|sendmail@:>@],
191   [specify the default mail transport agent/service]))
192
193 if test x"$with_mts" = x"smtp"; then
194   MTS="smtp"
195 elif test x"$with_mts" = x"sendmail"; then
196   MTS="sendmail"
197 else
198   MTS="smtp"
199 fi
200 AC_SUBST(MTS)dnl
201
202 dnl Both the smtp and sendmail mail transport services use the smtp code
203 AC_DEFINE(SMTPMTS, 1,
204   [Define if you want SMTP (simple mail transport protocol) support.])dnl
205
206 dnl What should be the default pager?
207 AC_ARG_WITH(pager,
208   AS_HELP_STRING([--with-pager=PAGER],[specify the default pager]))
209
210 if test -n "$with_pager"; then
211   pagerpath="$with_pager"
212 fi
213
214 dnl What should be the default mail server(s)?
215 AC_ARG_WITH(smtpservers,
216   AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'],
217   [specify the default SMTP server(s) @<:@localhost@:>@]))
218 if test -n "$with_smtpservers"; then
219   smtpservers="$with_smtpservers"
220 else
221   smtpservers="localhost"
222 fi
223 AC_SUBST(smtpservers)dnl
224
225 dnl ----------------------------------------------------
226 dnl Default location is /usr/local/nmh/{bin,etc,lib,man}
227 dnl ----------------------------------------------------
228 AC_PREFIX_DEFAULT(/usr/local/nmh)
229
230 dnl ------------------
231 dnl CHECK THE COMPILER
232 dnl ------------------
233 dnl We want these before the checks,
234 dnl so the checks can modify their values.
235 test -z "$CFLAGS" && CFLAGS= auto_cflags=1
236 if test x"$enable_debug" = x"yes"; then
237   test -z "$LDFLAGS" && LDFLAGS=-g
238 fi
239
240 AC_PROG_CC
241
242 AC_CACHE_CHECK(whether compiler supports -Wno-pointer-sign, nmh_cv_has_noptrsign,
243 [nmh_saved_cflags="$CFLAGS"
244  CFLAGS="$CFLAGS -Wno-pointer-sign"
245  AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no)
246  CFLAGS="$nmh_saved_cflags"])
247
248 dnl if the user hasn't specified CFLAGS, then
249 dnl   if compiler is gcc, then
250 dnl     use -O2 and some warning flags
251 dnl   else use -O
252 dnl We use -Wall; if the compiler supports it we also use -Wno-pointer-sign,
253 dnl because gcc 4 now produces a lot of new warnings which are probably mostly
254 dnl spurious and which in any case we don't want to deal with now.
255 if test "$nmh_cv_has_noptrsign" = "yes"; then
256         nmh_gcc_warnflags="-Wall -Wno-pointer-sign"
257 else
258         nmh_gcc_warnflags="-Wall"
259 fi
260
261 if test -n "$auto_cflags"; then
262   if test x"$enable_debug" = x"yes"; then
263     if test -n "$GCC"; then
264       test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g"
265     else
266       test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g"
267     fi
268   else
269     if test -z "$LDFLAGS"; then
270       case "$build_os" in
271         darwin*)
272           LDFLAGS=
273           ;;
274         *)
275           LDFLAGS=-s
276           ;;
277       esac
278     fi
279     if test -n "$GCC"; then
280       test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2"
281     else
282       test -z "$CFLAGS" && CFLAGS=-O  || CFLAGS="$CFLAGS -O"
283     fi
284   fi
285 fi
286
287 AC_C_CONST              dnl Does compiler support `const'.
288
289 dnl ------------------
290 dnl CHECK FOR PROGRAMS
291 dnl ------------------
292 AC_PROG_MAKE_SET        dnl Does make define $MAKE
293 AC_PROG_INSTALL         dnl Check for BSD compatible `install'
294 AC_PROG_RANLIB          dnl Check for `ranlib'
295 AC_PROG_AWK             dnl Check for mawk,gawk,nawk, then awk
296 AC_PROG_LEX             dnl Check for lex/flex
297
298 dnl Look for `cut'
299 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
300 AC_PATH_PROG(cutpath, cut, no, [$pathtmp])
301
302 dnl ----------------------------------------------
303 dnl check for lclint, and lint if it doesn't exist
304 dnl ----------------------------------------------
305 AC_CHECK_PROG(linttmp1, lclint, lclint, no)dnl
306 if test x$ac_cv_prog_linttmp1 != xno ; then
307   LINT=$ac_cv_prog_linttmp1
308   LINTFLAGS="-weak +posixlib -macrovarprefixexclude"
309 else
310   AC_CHECK_PROG(linttmp2, lint, lint, no)dnl
311   if test x$ac_cv_prog_linttmp2 != xno ; then
312     LINT=$ac_cv_prog_linttmp2
313     LINTFLAGS=""
314   else
315     LINT="echo 'No lint program found'"
316     LINTFLAGS=""
317   fi
318 fi
319 AC_SUBST(LINT)dnl
320 AC_SUBST(LINTFLAGS)dnl
321
322 dnl try to figure out which one we've got
323 AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp])
324 NMH_PROG_GNU_LIBTOOL
325
326 dnl Check for lorder and tsort commands
327 AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl
328 AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl
329
330 dnl If either doesn't exist, replace them with echo and cat
331 if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then
332   LORDER=echo
333   TSORT=cat
334   AC_SUBST(LORDER)dnl
335   AC_SUBST(TSORT)dnl
336 dnl Mac OS X has lorder, but sh is too broken for it to work
337 dnl elif test -z "`lorder config/config.c 2>&1 | grep config/config.c`" ; then
338 dnl   LORDER=echo
339 dnl   TSORT=cat
340 dnl   AC_SUBST(LORDER)dnl
341 dnl   AC_SUBST(TSORT)dnl
342 fi
343
344 dnl Check whether tsort can deal with loops
345 AC_CACHE_CHECK(whether tsort can deal with loops, nmh_cv_tsort_loop,
346   [if test -z "`echo a b b a | tsort 2>/dev/null | grep a`" ; then
347     nmh_cv_tsort_loop=no
348   else
349     nmh_cv_tsort_loop=yes
350   fi])
351 if test x$nmh_cv_tsort_loop = xno ; then
352   LORDER=echo
353   TSORT=cat
354   AC_SUBST(LORDER)dnl
355   AC_SUBST(TSORT)dnl
356 fi
357
358 dnl Look for `ls'
359 pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb
360 AC_PATH_PROG(lspath, ls, no, [$pathtmp])
361
362 dnl See how we get ls to display the owner and the group
363 if test "$lspath" != "no"; then
364   AC_CACHE_CHECK(how to get ls to show us the group ownership of a file, 
365                  nmh_cv_ls_grpopt,
366   [if test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"; then
367     dnl There were 9 parameters, so unless this is a really bizarre, nonstandard
368     dnl ls, it would seem -l gave us both the user and group.  On this type of
369     dnl ls, -g makes _only_ the group be displayed (and not the user).
370     nmh_cv_ls_grpopt="-l"
371   else
372     dnl Looks like -l only gave us the user, so we need -g to get the group too.
373     nmh_cv_ls_grpopt="-lg"
374   fi])
375 fi
376
377 dnl Look for `more'
378 pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
379 AC_PATH_PROG(morepath, more, no, [$pathtmp])
380
381 dnl If pager is not specified yet,
382 dnl then use `more' as the default.
383 if test -z "$pagerpath"; then
384   pagerpath="$morepath"
385 fi
386 AC_SUBST(pagerpath)dnl
387
388 dnl Look for `sendmail'
389 pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin
390 AC_PATH_PROG(sendmailpath, sendmail, /usr/sbin/sendmail, [$pathtmp])
391
392 dnl Look for `vi'
393 pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin
394 AC_PATH_PROG(vipath, vi, /bin/vi, [$pathtmp])
395
396 dnl If editor is not specified yet,
397 dnl then use `vi' as the default.
398 if test -z "$editorpath"; then
399   editorpath="$vipath"
400 fi
401 AC_SUBST(editorpath)dnl
402
403 dnl ----------------------------------------------------------
404 dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL
405 dnl ----------------------------------------------------------
406 AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool,
407 [for mailspool in /var/mail        dnl
408                   /var/spool/mail  dnl
409                   /usr/spool/mail  dnl
410                   /dev/null;       dnl Just in case we fall through
411 do
412   test -d $mailspool && break
413 done
414 nmh_cv_mailspool=$mailspool
415 ])
416 mailspool=$nmh_cv_mailspool
417 AC_SUBST(mailspool)dnl
418
419 dnl See whether the mail spool directory is world-writable.
420 if test "$lspath" != "no" -a "$cutpath" != "no"; then
421   AC_CACHE_CHECK(whether the mail spool is world-writable, 
422                  nmh_cv_mailspool_world_writable,
423   [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
424     nmh_cv_mailspool_world_writable=no
425   else
426     nmh_cv_mailspool_world_writable=yes
427   fi])
428 fi
429
430 dnl Also, check for liblockfile (as found on Debian systems)
431 AC_CHECK_HEADER(lockfile.h, AC_CHECK_LIB(lockfile, lockfile_create) )
432
433 dnl and whether its companion program dotlockfile is setgid
434 AC_PATH_PROG(dotlockfilepath, dotlockfile, no)
435 if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then
436   if test "$ac_cv_path_dotlockfilepath" != "no" ; then
437     AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid,
438     [ if test -g "$ac_cv_path_dotlockfilepath" ; then
439         nmh_cv_dotlockfile_setgid=yes
440       else
441         nmh_cv_dotlockfile_setgid=no
442       fi])
443   fi
444 fi
445
446 dnl If mailspool is not world-writable and dotlockfile is not setgid,
447 dnl we need to #define MAILGROUP to 1 and make inc setgid.
448 if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then
449   dnl do we really need both of these?
450   AC_DEFINE(MAILGROUP,1,
451     [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
452   SETGID_MAIL=1
453 fi
454 AC_SUBST(SETGID_MAIL)dnl
455
456 dnl Use ls to see which group owns the mail spool directory.
457 AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp,
458 [nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'`
459 ])
460 MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp
461 AC_SUBST(MAIL_SPOOL_GRP)dnl
462
463 dnl ------------------
464 dnl CHECK HEADER FILES
465 dnl ------------------
466
467 dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features,
468 dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define
469 dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns
470 dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth()
471 dnl declared; if so they should have an entry added to this case statement.
472 dnl NB that we must define this on the compiler command line, not in config.h,
473 dnl because it must be set before any system header is included and there's no
474 dnl portable way to make sure that files generated by lex include config.h
475 dnl before system header files.
476
477 case "$target_os" in
478   linux*)
479     # Like DEFS, but doesn't get stomped on by configure when using config.h:
480     OURDEFS="$OURDEFS -D_GNU_SOURCE"
481     ;;
482 esac
483 AC_SUBST(OURDEFS)
484
485 AC_HEADER_DIRENT
486 AC_HEADER_STDC
487 AC_HEADER_TIME
488 AC_HEADER_SYS_WAIT
489 AC_HEADER_STAT
490 AC_HEADER_TIOCGWINSZ
491 AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \
492                  limits.h crypt.h termcap.h termio.h termios.h locale.h \
493                  langinfo.h wchar.h wctype.h iconv.h netdb.h \
494                  sys/param.h sys/time.h sys/utsname.h sys/stream.h \
495                  arpa/inet.h arpa/ftp.h)
496  
497 dnl
498 dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We
499 dnl really use a whole set of them, but this check should be
500 dnl sufficient.
501 dnl
502 AC_CHECK_HEADER(libio.h, [
503   AC_EGREP_HEADER(_IO_write_ptr, libio.h, [
504     AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from <libio.h>.]) ]) ]) 
505
506 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1,
507   [Define to 1 if `struct winsize' requires <sys/ptem.h>.]),,
508 [[#if HAVE_SYS_STREAM_H
509 #  include <sys/stream.h>
510 #endif
511 ]])
512
513 dnl ---------------
514 dnl CHECK FUNCTIONS
515 dnl ---------------
516 AC_FUNC_VFORK
517 AC_CHECK_LIB(mkstemp,mkstemp)
518 AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \
519                sighold sigrelse writev lstat uname tzset killpg mkstemp \
520                getutent nl_langinfo mbtowc wcwidth)
521
522 dnl solaris has these in the nsl library
523 AC_SEARCH_LIBS(gethostbyname, nsl,
524   [AC_DEFINE(HAVE_GETHOSTBYNAME,1,
525     [Define to 1 if you have the `gethostbyname' function.])])
526 AC_SEARCH_LIBS(sethostent, nsl,
527   [AC_DEFINE(HAVE_SETHOSTENT,1,
528     [Define to 1 if you have the `sethostent' function.])])
529
530 dnl sigsetjmp may be a macro
531 AC_MSG_CHECKING(for sigsetjmp)
532 AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <setjmp.h>]],
533   [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP, 1,
534     [Define to 1 if you have the `sigsetjmp'.]) AC_MSG_RESULT(yes)],
535   [AC_MSG_RESULT(no)])
536
537 AC_REPLACE_FUNCS(snprintf strdup)
538
539 dnl Look for the initgroups() declaration.  On AIX 4.[13], Solaris 4.1.3, and
540 dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in
541 dnl any system header.  
542 dnl
543 dnl On Solaris 2.[456], the declaration is in <grp.h>.  On HP-UX 9-11 and
544 dnl (reportedly) FreeBSD 3.[23], it's in <unistd.h>.  Any other locations we
545 dnl need to check?
546 AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.])
547 AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, <grp.h>),
548                 AC_EGREP_HEADER(initgroups, unistd.h, 
549                                 AC_DEFINE(INITGROUPS_HEADER, <unistd.h>)))
550
551 dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in
552 dnl <stdio.h> or elsewhere.  Apparently it's not officially supported (though it
553 dnl seems to work perfectly and IBM apparently uses it in internal code).
554 dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we
555 dnl HAVE_SNPRINTF, we get a billion warnings at compile time.  Use the C
556 dnl preprocessor to preprocess stdio.h and make sure that there's actually a 
557 dnl prototype. 
558 AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1,
559   [Define to 1 if <stdio.h> has a prototype for snprintf().]))
560
561 dnl Check for multibyte character set support
562 if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \
563     -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then
564   AC_DEFINE(MULTIBYTE_SUPPORT, 1,
565     [Define to enable support for multibyte character sets.])
566 fi
567
568 dnl -------------------
569 dnl CHECK FOR LIBRARIES
570 dnl -------------------
571 dnl Check location of modf
572 AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf))
573
574 dnl Checks for network libraries (nsl, socket)
575 AC_CHECK_NETLIBS
576
577 termcap_curses_order="termcap curses ncurses"
578 for lib in $termcap_curses_order; do
579   AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break])
580 done
581 AC_SUBST(TERMLIB)dnl
582
583 dnl ---------------
584 dnl CHECK FOR ICONV
585 dnl ---------------
586
587 dnl Find iconv. It may be in libiconv and may be iconv() or libiconv()
588 if test "x$ac_cv_header_iconv_h" = "xyes"; then
589   AC_CHECK_FUNC(iconv, ac_found_iconv=yes, ac_found_iconv=no)
590   if test "x$ac_found_iconv" = "xno"; then
591     AC_CHECK_LIB(iconv, iconv, ac_found_iconv=yes)
592     if test "x$ac_found_iconv" = "xno"; then
593       AC_CHECK_LIB(iconv, libiconv, ac_found_iconv=yes)
594     fi
595     if test "x$ac_found_iconv" != "xno"; then
596       LIBS="-liconv $LIBS"
597     fi
598   else
599     dnl Handle case where there is a native iconv but iconv.h is from libiconv
600     AC_CHECK_DECL(_libiconv_version,
601       [ AC_CHECK_LIB(iconv, libiconv, LIBS="-liconv $LIBS") ],,
602       [ #include <iconv.h> ])
603   fi
604 fi
605 if test "x$ac_found_iconv" = xyes; then
606   AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.])
607 fi
608
609 dnl Check if iconv uses const in prototype declaration
610 if test "x$ac_found_iconv" = "xyes"; then
611   AC_CACHE_CHECK(for iconv declaration, ac_cv_iconv_const,
612     [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <stdlib.h>
613         #include <iconv.h>]],
614         [[#ifdef __cplusplus
615           "C"
616           #endif
617           #if defined(__STDC__) || defined(__cplusplus)
618           size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft);
619           #else
620           size_t iconv();
621           #endif]])],
622       [ac_cv_iconv_const=],
623       [ac_cv_iconv_const=const])])
624   AC_DEFINE_UNQUOTED([ICONV_CONST], $ac_cv_iconv_const,
625     [Define as const if the declaration of iconv() needs const.])
626 fi
627
628 dnl --------------
629 dnl CHECK FOR NDBM
630 dnl --------------
631
632 AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]),
633             [nmh_ndbm=$withval],[nmh_ndbm=autodetect])
634 AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include <ARG> to use ndbm]),
635             [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect])
636
637 if test "$nmh_ndbm" = "autodetect"; then
638   if test "$nmh_ndbmheader" != "autodetect"; then
639     AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither])
640   else
641
642     dnl There are at least four implementations of ndbm, and
643     dnl several of those can be in different places at the whim
644     dnl of the system integrator. A good summary of this mess
645     dnl can be found at http://www.unixpapa.com/incnote/dbm.html
646
647     dnl Classic ndbm with no library required (eg NetBSD): try this
648     dnl first so we don't accidentally link in a pointless but harmless
649     dnl library in one of the later ndbm.h+libfoo tests:
650     NMH_CHECK_NDBM(ndbm.h,,,
651     dnl Berkeley DBv2 emulating ndbm: header in db.h:
652       NMH_CHECK_NDBM(db.h,db,,
653     dnl Berkeley DBv1 emulating ndbm:
654         NMH_CHECK_NDBM(ndbm.h,db,,
655           NMH_CHECK_NDBM(ndbm.h,db1,,
656     dnl Classic ndbm:
657             NMH_CHECK_NDBM(ndbm.h,ndbm,,
658     dnl glibc2.1 systems put db1 in a subdir:
659               NMH_CHECK_NDBM(db1/ndbm.h,db1,,
660     dnl GNU gdbm emulating ndbm, with header possibly in gdbm/
661     dnl and possibly needing gbdm_compat library:
662                 NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,,
663                   NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,,
664                     NMH_CHECK_NDBM(ndbm.h,gdbm,,
665                       NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm))))))))))
666
667   fi
668 else
669   dnl We don't really need to check that the user-specified values work,
670   dnl but it is a convenience to the user to bomb out early rather than
671   dnl after configure and half the compile process.
672   NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm])
673 fi
674
675 if test "$nmh_ndbm_found" = "no"; then
676   AC_MSG_ERROR([could not find a working ndbm library/header combination])
677 else
678   dnl Now export the lib/header to our makefile/config.h:
679   if test x"$nmh_ndbmheader" != x; then
680     AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>,
681       [Define to the header containing the ndbm API prototypes.])
682   fi
683   if test x"$nmh_ndbm" != x; then
684     NDBM_LIBS="-l$nmh_ndbm"
685   else
686     NDBM_LIBS=
687   fi
688   AC_SUBST(NDBM_LIBS)
689 fi
690
691
692 dnl ----------------
693 dnl CHECK FOR HESIOD
694 dnl ----------------
695 if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then
696   if test x"$with_hesiod" != x"yes"; then
697     HESIOD_INCLUDES="-I$with_hesiod/include"
698     HESIOD_LIBS="-L$with_hesiod/lib"
699   fi
700   AC_CHECK_FUNC(res_send,
701         [AC_CHECK_LIB(hesiod, hes_resolve,
702                 [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"],
703                 [AC_MSG_ERROR(Hesiod library not found)],
704                 $HESIOD_LIBS)],
705         [AC_CHECK_LIB(hesiod, hes_resolve,
706                 [HESIOD_LIBS="$HESIOD_LIBS -lhesiod -lresolv"],
707                 [AC_MSG_ERROR(Hesiod library not found)],
708                 $HESIOD_LIBS -lresolv)])
709
710 fi
711 AC_SUBST(HESIOD_INCLUDES)dnl
712 AC_SUBST(HESIOD_LIBS)dnl
713
714 dnl ----------------------------------
715 dnl CHECK FOR KRB4 (Kerberos4 support)
716 dnl ----------------------------------
717 if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
718   if test x"$with_krb4" != x"yes"; then
719     KRB4_INCLUDES="-I$with_krb4/include"
720     if test -d "$with_krb4/include/kerberosIV"; then
721       KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV"
722     fi
723     KRB4_LIBS="-L$with_krb4/lib"
724   elif test -d /usr/include/kerberosIV; then
725     KRB4_INCLUDES="-I/usr/include/kerberosIV"
726   fi
727 dnl First, check if we have -lk5crypto, since that means we have a recent krb5
728
729   AC_CHECK_LIB(k5crypto, krb5_encrypt,
730         [AC_CHECK_LIB(krb4, krb_rd_req,
731                 [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"],
732                 [AC_MSG_ERROR(Kerberos 4 compatibility libraries not found)],
733                 $KRB4_LIBS -ldes425 -lkrb5 -lk5crypto -lcom_err)],
734
735         [AC_CHECK_LIB(krb4, krb_rd_req,
736             [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"],
737             [AC_CHECK_LIB(krb, krb_rd_req,
738               [KRB4_LIBS="$KRB4_LIBS -lkrb -ldes"],
739               [AC_MSG_ERROR(Kerberos 4 libraries not found)],
740               $KRB4_LIBS -ldes)],
741             $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err)],
742         $KRB4_LIBS)
743
744 fi
745 AC_SUBST(KRB4_INCLUDES)dnl
746 AC_SUBST(KRB4_LIBS)dnl
747
748 dnl --------------------
749 dnl CHECK FOR CYRUS SASL
750 dnl --------------------
751 if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then
752   if test x"$with_cyrus_sasl" != x"yes"; then
753     SASL_INCLUDES="-I$with_cyrus_sasl/include"
754     SASL_LIBS="-L$with_cyrus_sasl/lib"
755
756     dnl Do OS-specific hardcoding of SASL shared library path into executables,
757     dnl so user isn't forced to set environment variables like Solaris'
758     dnl LD_LIBRARY_PATH.
759     case "$target_os" in
760       solaris*)
761         SASL_LIBS="$SASL_LIBS -R$with_cyrus_sasl/lib"
762         ;;
763     esac
764   fi
765   save_LDFLAGS="$LDFLAGS"
766   LDFLAGS="$LDFLAGS $SASL_LIBS"
767   AC_CHECK_LIB(sasl2, sasl_client_new,
768     [SASL_LIBS="$SASL_LIBS -lsasl2"],
769     [AC_MSG_ERROR(Cyrus SASL library not found)])
770   LDFLAGS="$save_LDFLAGS"
771 fi
772 AC_SUBST(SASL_INCLUDES)dnl
773 AC_SUBST(SASL_LIBS)dnl
774
775 dnl ---------------------
776 dnl CHECK TERMCAP LIBRARY
777 dnl ---------------------
778
779 dnl Add the termcap library, so that the following configure
780 dnl tests will find it when it tries to link test programs.
781 nmh_save_LIBS="$LIBS"
782 LIBS="$TERMLIB $LIBS"
783
784 dnl Checks for external variable ospeed in the termcap library.
785 AC_CACHE_CHECK(if an include file defines ospeed,
786 nmh_cv_decl_ospeed_include_defines,
787 [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
788 #if HAVE_TERMIOS_H
789 #include <termios.h>
790 #endif
791 #if HAVE_TERMCAP_H
792 #include <termcap.h>
793 #endif]], [[ospeed = 0;]])],
794 nmh_cv_decl_ospeed_include_defines=yes,nmh_cv_decl_ospeed_include_defines=no)])
795  
796 if test $nmh_cv_decl_ospeed_include_defines = no; then
797   AC_CACHE_CHECK(if you must define ospeed,
798   nmh_cv_decl_ospeed_must_define,
799   [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],
800   [[extern short ospeed; ospeed = 0;]])],
801   nmh_cv_decl_ospeed_must_define=yes,nmh_cv_decl_ospeed_must_define=no)])
802 fi
803  
804 AH_TEMPLATE(HAVE_OSPEED, [Define to 1 if your termcap library has the ospeed variable.])
805 if test $nmh_cv_decl_ospeed_include_defines = yes; then
806   AC_DEFINE(HAVE_OSPEED)dnl
807 elif test $nmh_cv_decl_ospeed_must_define = yes; then
808   AC_DEFINE(HAVE_OSPEED)
809   AC_DEFINE(MUST_DEFINE_OSPEED, 1,
810     [Define to 1 if you have ospeed, but it is not defined in termcap.h.])
811 fi
812
813 dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer)
814 dnl Some termcaps reportedly accept a zero buffer, but then dump core
815 dnl in tgetstr().
816 dnl Under Cygwin test program crashes but exit code is still 0. So,
817 dnl we test for a file that porgram should create
818 AH_TEMPLATE([TGETENT_ACCEPTS_NULL],
819 [Define to 1 if tgetent() accepts NULL as a buffer.])
820 AC_CACHE_CHECK(if tgetent accepts NULL,
821 nmh_cv_func_tgetent_accepts_null,
822 [AC_TRY_RUN([
823 main()
824 {
825     char buf[4096];
826     int r1 = tgetent(buf, "vt100");
827     int r2 = tgetent((char*)0,"vt100");
828     if (r1 >= 0 && r1 == r2) {
829         char tbuf[1024], *u;
830         u = tbuf;
831         tgetstr("cl", &u);
832         creat("conftest.tgetent", 0640);
833     }
834     exit((r1 != r2) || r2 == -1);
835 }
836 ],
837   if test -f conftest.tgetent; then
838     nmh_cv_func_tgetent_accepts_null=yes
839   else
840     nmh_cv_func_tgetent_accepts_null=no
841   fi,
842   nmh_cv_func_tgetent_accepts_null=no,
843   nmh_cv_func_tgetent_accepts_null=no)])
844 if test x$nmh_cv_func_tgetent_accepts_null = xyes; then
845   AC_DEFINE(TGETENT_ACCEPTS_NULL)
846 fi
847 AC_CACHE_CHECK(if tgetent returns 0 on success,
848 nmh_cv_func_tgetent_zero_success,
849 [AC_TRY_RUN([
850 main()
851 {
852     char buf[4096];
853     int r1 = tgetent(buf, "!@#$%^&*");
854     int r2 = tgetent(buf, "vt100");
855     if (r1 < 0 && r2 == 0) {
856         char tbuf[1024], *u;
857         u = tbuf;
858         tgetstr("cl", &u);
859         creat("conftest.tgetent0", 0640);
860     }
861     exit(r1 == r2);
862 }
863 ],
864   if test -f conftest.tgetent0; then
865     nmh_cv_func_tgetent_zero_success=yes
866   else
867     nmh_cv_func_tgetent_zero_success=no
868   fi,
869   nmh_cv_func_tgetent_zero_success=no,
870   nmh_cv_func_tgetent_zero_success=no)])
871 AH_TEMPLATE([TGETENT_SUCCESS],
872 [Define to what tgetent() returns on success (0 on HP-UX X/Open curses).])
873 if test x$nmh_cv_func_tgetent_zero_success = xyes; then
874   AC_DEFINE(TGETENT_SUCCESS, 0)
875 else
876   AC_DEFINE(TGETENT_SUCCESS, 1)
877 fi
878
879 dnl Now put the libraries back to what it was before we
880 dnl starting checking the termcap library.
881 LIBS="$nmh_save_LIBS"
882
883 dnl --------------
884 dnl CHECK TYPEDEFS
885 dnl --------------
886 AC_TYPE_SIGNAL
887 AC_TYPE_PID_T
888 AC_TYPE_OFF_T
889 AC_TYPE_UID_T
890 AC_TYPE_MODE_T
891 AC_TYPE_SIZE_T
892
893 dnl Check for sigset_t.  Currently I'm looking in
894 dnl <sys/types.h> and <signal.h>.  Others might need
895 dnl to be added.
896 AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t,
897 [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
898 #include <signal.h>]], [[sigset_t tempsigset;]])],
899 nmh_cv_type_sigset_t=yes,nmh_cv_type_sigset_t=no)])
900 if test $nmh_cv_type_sigset_t = no; then
901   AC_DEFINE(sigset_t, unsigned int,
902     [Define to `unsigned int' if <sys/types.h> or <signal.h> doesn't define.])
903 fi
904
905 dnl ----------------
906 dnl CHECK STRUCTURES
907 dnl ----------------
908 AC_CHECK_MEMBERS(struct stat.st_blksize)
909
910 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,,
911   [#ifdef TIME_WITH_SYS_TIME
912 # include <sys/time.h>
913 # include <time.h>
914 #else
915 # ifdef TM_IN_SYS_TIME
916 #  include <sys/time.h>
917 # else
918 #  include <time.h>
919 # endif
920 #endif])
921
922 AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include <utmp.h>])
923
924 AC_MSG_CHECKING(for union wait)
925 AC_CACHE_VAL(nmh_cv_union_wait, [dnl
926   AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <sys/types.h>
927 #include <sys/wait.h>]],
928     [[union wait status; int pid; pid = wait (&status);
929 #ifdef WEXITSTATUS
930 /* Some POSIXoid systems have both the new-style macros and the old
931    union wait type, and they do not work together.  If union wait
932    conflicts with WEXITSTATUS et al, we don't want to use it at all.  */
933         if (WEXITSTATUS (status) != 0) pid = -1;
934 #ifdef WTERMSIG
935         /* If we have WEXITSTATUS and WTERMSIG, just use them on ints.  */
936         -- blow chunks here --
937 #endif
938 #endif
939 #ifdef HAVE_WAITPID
940         /* Make sure union wait works with waitpid.  */
941         pid = waitpid (-1, &status, 0);
942 #endif
943       ]])],
944     [nmh_cv_union_wait=yes],
945     [nmh_cv_union_wait=no])])
946 if test "$nmh_cv_union_wait" = yes; then
947   AC_DEFINE(HAVE_UNION_WAIT, 1,
948     [Define to 1 if you have the \`union wait' type in <sys/wait.h>.])
949 fi
950 AC_MSG_RESULT($nmh_cv_union_wait)
951
952 dnl -------------
953 dnl CHECK SIGNALS
954 dnl -------------
955 dnl What style of signal do you have (POSIX, BSD, or SYSV)?
956 AH_TEMPLATE(RELIABLE_SIGNALS, [Define to 1 if you have reliable signals.])
957 AC_MSG_CHECKING(what style of signals to use)
958 if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then
959   signals_style=POSIX_SIGNALS
960   AC_DEFINE(POSIX_SIGNALS, 1,
961     [Define to 1 if you use POSIX style signal handling.])
962   AC_DEFINE(RELIABLE_SIGNALS)
963 elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then
964   signals_style=BSD_SIGNALS
965   AC_DEFINE(BSD_SIGNALS,1,
966     [Define to 1 if you use BSD style signal handling (and can block signals).])
967   AC_DEFINE(RELIABLE_SIGNALS)
968 elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then
969   signals_style=SYSV_SIGNALS
970   AC_DEFINE(SYSV_SIGNALS,1,
971     [Define to 1 if you use SYSV style signal handling (and can block signals).])
972 else
973   signals_style=NO_SIGNAL_BLOCKING
974   AC_DEFINE(NO_SIGNAL_BLOCKING,1,
975     [Define to 1 if you have no signal blocking at all (bummer).])
976 fi
977
978 AC_MSG_RESULT($signals_style)
979
980 dnl Where is <signal.h> located?  Needed as input for signames.awk
981 AC_CACHE_CHECK(where signal.h is located, nmh_cv_path_signal_h,
982 [for SIGNAL_H in /usr/include/bsd/sys/signal.h  dnl Next
983                  /usr/include/asm/signal.h      dnl Linux 1.3.0 and above
984                  /usr/include/asm/signum.h      dnl some versions of Linux/Alpha
985                  /usr/include/linux/signal.h    dnl Linux up to 1.2.11
986                  /usr/include/sys/signal.h      dnl Almost everybody else
987                  /dev/null;                     dnl Just in case we fall through
988 do
989   test -f $SIGNAL_H && \
990   grep '#[      ]*define[       ][      ]*SIG[0-9A-Z]*[         ]*[0-9][0-9]*' $SIGNAL_H > /dev/null && \
991   break
992 done
993 nmh_cv_path_signal_h=$SIGNAL_H
994 ])
995 SIGNAL_H=$nmh_cv_path_signal_h
996 AC_SUBST(SIGNAL_H)dnl
997
998 dnl ----------------
999 dnl OS SPECIFIC DEFINES
1000 dnl ----------------
1001 AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.])
1002 AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.])
1003 AH_TEMPLATE(BSD44, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody; only used in vmh.c which is not built.])
1004 AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?])
1005 AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.])
1006
1007 case "$target_os" in
1008
1009   solaris2*)
1010     AC_DEFINE(SYS5)
1011     AC_DEFINE(SVR4)
1012     ;;
1013   irix*)
1014     AC_DEFINE(SYS5)
1015     AC_DEFINE(SVR4)
1016     ;;
1017   osf*)
1018     AC_DEFINE(SYS5)
1019     AC_DEFINE(SVR4)
1020     ;;
1021   aix*)
1022     AC_DEFINE(SYS5)
1023     AC_DEFINE(SVR4)
1024     ;;
1025   sunos4*)
1026     AC_DEFINE(BSD42)
1027     ;;
1028   freebsd*)  
1029     AC_DEFINE(BSD42)
1030     AC_DEFINE(BSD44)
1031     ;;
1032   netbsd*)
1033     AC_DEFINE(BSD42)
1034     AC_DEFINE(BSD44)
1035     ;;
1036   openbsd*)
1037     AC_DEFINE(BSD42)
1038     AC_DEFINE(BSD44)
1039     ;;
1040   bsd/os*)
1041     AC_DEFINE(BSD42)
1042     AC_DEFINE(BSD44)
1043     ;;
1044   sco5*)
1045     AC_DEFINE(SYS5)
1046     AC_DEFINE(SCO_5_STDIO)
1047     ;;
1048 esac
1049
1050
1051 dnl ----------------
1052 dnl OUTPUT MAKEFILES
1053 dnl ----------------
1054 AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \
1055                 mts/Makefile mts/smtp/Makefile \
1056                 etc/Makefile docs/Makefile man/Makefile)
1057 AC_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h])
1058 AC_OUTPUT
1059
1060 dnl Umm, what's the point of these assignments??  -- <dan-nmh@dilvish.speed.net>
1061 eval "nmhbin=${bindir}";         eval "nmhbin2=${nmhbin}"
1062 eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}"
1063 eval "nmhlib=${libdir}";         eval "nmhlib2=${nmhlib}"
1064 eval "nmhman=${mandir}"
1065
1066 pop_kinds=no
1067 if test x"$enable_pop" = x"yes"; then
1068   pop_kinds="yes ("
1069
1070   if test x"$enable_apop" = x"yes"; then
1071     pop_kinds="${pop_kinds}APOP "
1072   fi
1073
1074   if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then
1075     pop_kinds="${pop_kinds}KPOP "
1076   fi
1077
1078   pop_kinds="${pop_kinds}POP3)"
1079 fi
1080
1081 echo "
1082 nmh configuration
1083 -----------------
1084 nmh version                : AC_PACKAGE_VERSION
1085 target os                  : ${target}
1086 compiler                   : ${CC}
1087 compiler flags             : ${CFLAGS}
1088 linker flags               : ${LDFLAGS}
1089 definitions                : ${OURDEFS}
1090 source code location       : ${srcdir}
1091 binary install path        : ${nmhbin2}
1092 libary install path        : ${nmhlib2}
1093 config files install path  : ${nmhsysconf2}
1094 man page install path      : ${nmhman}
1095 backup prefix              : ${backup_prefix}
1096 transport system           : ${MTS}
1097 file locking type          : ${LOCKTYPE}
1098 default smtp servers       : ${smtpservers}
1099 default editor             : ${editorpath}
1100 default pager              : ${pagerpath}
1101 email address masquerading : ${masquerade}
1102 pop is enabled             : ${pop_kinds}
1103 SASL support               : ${sasl_support}"
1104 echo ""