X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.in;h=8e8fb1c956a0c3fc4946d220257ebd02d9369b9b;hp=dd5ebdc6eed5bae622195049b1fbb5a6fedfe555;hb=e056446589e2fee53f823e0da1fb34076018c3dd;hpb=3f2164f3652497ab2a07373b4fb1d41e3a57da34 diff --git a/configure.in b/configure.in index dd5ebdc..8e8fb1c 100644 --- a/configure.in +++ b/configure.in @@ -4,74 +4,153 @@ dnl dnl $Id$ dnl -AC_INIT(h/nmh.h) +dnl Move this up a bit +AC_PREREQ(2.61) + +AC_INIT(nmh, m4_normalize(m4_include([VERSION]))) +AC_CONFIG_SRCDIR(h/nmh.h) AC_CONFIG_HEADER(config.h) -dnl What version of nmh are we building? -VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION` -echo "configuring for nmh-$VERSION" -AC_SUBST(VERSION)dnl +AC_CANONICAL_TARGET -dnl ------------------------- -dnl CHECK COMMAND LINE OPTION -dnl ------------------------- -dnl What method of posting should post use? -undefine([mts])dnl -AC_ARG_WITH(mts, -[ --with-mts=MTS specify the mail transport agent]) +dnl --------------------- +dnl define a macro or two +dnl --------------------- -if test x$with_mts = xsmtp; then - MTS="smtp" - MTSLIB="mts/smtp/libsmtp.a" - AC_DEFINE(SMTPMTS)dnl -elif test x$with_mts = xsendmail; then - MTS="sendmail" - MTSLIB="mts/sendmail/libsend.a" - AC_DEFINE(SENDMTS)dnl +AC_DEFUN(NMH_PROG_GNU_LIBTOOL, [ +if test -n "$LIBTOOL" ; then + tmptest=`$LIBTOOL --version 2>&1 | grep GNU` + if test x"$tmptest" != x ; then + GNU_LIBTOOL=1 + AC_SUBST(GNU_LIBTOOL)dnl + fi +fi +] ) + +echo "configuring for AC_PACKAGE_NAME-AC_PACKAGE_VERSION" +AC_SUBST(VERSION,AC_PACKAGE_VERSION)dnl + +dnl What date of nmh are we building? +DATE=`cat ${srcdir}/DATE` +echo "configuring for nmh dated $DATE" +AC_SUBST(DATE)dnl + +dnl -------------------------- +dnl CHECK COMMAND LINE OPTIONS +dnl -------------------------- + +dnl Do you want client-side support for apop? +AC_ARG_ENABLE(apop, AS_HELP_STRING([--enable-apop], + [enable client-side support for POP3 and APOP])) +if test x"$enable_apop" = x"yes"; then + AC_DEFINE(APOP, 1, + [Define to compile client-side support for apop into inc and msgchk.])dnl + APOPLIB=md5.o + enable_pop=yes +fi +AC_SUBST(APOPLIB)dnl + +dnl Do you want to debug nmh? +AC_ARG_ENABLE(debug, + AS_HELP_STRING([--enable-debug],[enable nmh code debugging])) +dnl The old redundant --enable-nmh-debug is deprecated and undocumented. +if test x"$enable_nmh_debug" = x"yes"; then + enable_debug=yes +fi + +dnl Allow users to send email from addresses other than their default? +AC_ARG_ENABLE(masquerade, + AS_HELP_STRING([--enable-masquerade='draft_from mmailid username_extension'], + [enable up to 3 types of address masquerading]), + [if test x"$enable_masquerade" = x"yes"; then + masquerade="draft_from mmailid username_extension" + else + masquerade="$enable_masquerade" + fi], + masquerade="draft_from mmailid username_extension") +AC_SUBST(masquerade)dnl + +dnl Do you want mhe support? +AC_ARG_ENABLE(mhe, + AS_HELP_STRING([--disable-mhe],[disable mhe support])) + +dnl mhe support is on by default, so define it unless --disable-mhe or the +dnl deprecated, undocumented --disable-nmh-mhe are specified. +if test x"$enable_mhe" != x"no" -a x"$enable_nmh_mhe" != x"no"; then + AC_DEFINE(MHE, 1, + [Define to compile in support for the Emacs front-end mh-e.])dnl +fi + +dnl Do you want client-side support for pop? +AC_ARG_ENABLE(pop, + AS_HELP_STRING([--enable-pop], [enable client-side support for plain POP3])) +dnl The old redundant --enable-nmh-pop is deprecated and undocumented. +if test x"$enable_nmh_pop" = x"yes"; then + enable_pop=yes +fi + +dnl Do you want to disable use of locale functions +AH_TEMPLATE([LOCALE], +[Undefine if you don't want locale features. By default this is defined.]) +AC_ARG_ENABLE([locale], +AC_HELP_STRING([--disable-locale], [turn off locale features]), +[if test x$enableval = xyes; then + AC_DEFINE(LOCALE) +fi], +AC_DEFINE(LOCALE) +) + +dnl Do you want client-side support for using SASL for authentication? +dnl Note that this code will be enabled for both POP and SMTP +AC_ARG_WITH(cyrus-sasl, AS_HELP_STRING([--with-cyrus-sasl], + [Enable SASL support via the Cyrus SASL library])) +if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then + AC_DEFINE(CYRUS_SASL, 1, + [Define to use the Cyrus SASL library for authentication of POP and SMTP.])dnl + sasl_support=yes else - MTS="smtp" - MTSLIB="mts/smtp/libsmtp.a" - AC_DEFINE(SMTPMTS)dnl + sasl_support=no fi -AC_SUBST(MTS) -AC_SUBST(MTSLIB) +dnl Do you want client-side support for encryption with TLS? +AC_ARG_WITH(tls, AS_HELP_STRING([--with-tls], [Enable TLS support])) +if test x"$with_tls" != x -a x"$with_tls" != x"no"; then + AC_DEFINE(TLS_SUPPORT, 1, [Support TLS for session encryption.])dnl + tls_support=yes +else + tls_support=no +fi dnl What should be the default editor? -undefine([editor])dnl AC_ARG_WITH(editor, -[ --with-editor=EDITOR specify the default editor]) + AS_HELP_STRING([--with-editor=EDITOR],[specify the default editor])) if test -n "$with_editor"; then editorpath="$with_editor" fi -dnl What should be the default pager? -undefine([pager])dnl -AC_ARG_WITH(pager, -[ --with-pager=PAGER specify the default pager]) +dnl Set the backup prefix +AC_ARG_WITH([hash-backup], + AS_HELP_STRING([--with-hash-backup],[use # as the backup prefix (default: ,)])) +if test x"$with_hash_backup" != x -a x"$with_hash_backup" != x"no"; then + backup_prefix="#" +else + backup_prefix="," +fi +AC_DEFINE_UNQUOTED(BACKUP_PREFIX, "$backup_prefix", + [The prefix that is prepended to the name of message files when they are "removed" by rmm. This should typically be `,' or `#'.])dnl -if test -n "$with_pager"; then - pagerpath="$with_pager" +dnl Do you want support for hesiod +AC_ARG_WITH(hesiod, + AS_HELP_STRING([--with-hesiod=DIR],[specify location of Hesiod])) +if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then + AC_DEFINE(HESIOD,1,[Define this to compile support for using Hesiod.])dnl fi -dnl Do you want mhe support? -undefine([nmh-mhe])dnl -AC_ARG_ENABLE(nmh-mhe, -[ --enable-nmh-mhe enable mhe support (DEFAULT)]) - -dnl mhe support is on by default, so define it unless -dnl explicitly disabled. -if test x$enable_nmh_mhe != xno; then - AC_DEFINE(MHE)dnl -fi - -dnl Do you want client-side support for pop -undefine([nmh-pop])dnl -AC_ARG_ENABLE(nmh-pop, -[ --enable-nmh-pop enable client-side support for pop]) -if test x$enable_nmh_pop = xyes; then - AC_DEFINE(POP)dnl +dnl After we know if we're including apop and kpop support, do pop stuff +if test x"$enable_pop" = x"yes"; then + AC_DEFINE(POP, 1, + [Define this to compile client-side support for pop into inc and msgchk.])dnl POPLIB=popsbr.o POPSED='/^%nmhbeginpop%/d;/^%nmhendpop%/d' else @@ -80,25 +159,64 @@ fi AC_SUBST(POPLIB)dnl AC_SUBST(POPSED)dnl -dnl Do you want client-side support for kpop -AC_ARG_WITH(krb4, -[ --with-krb4=PREFIX specify location of Kerberos V4 for kpop support]) -if test x$with_krb4 != x -a x$with_krb4 != xno; then - AC_DEFINE(KPOP)dnl - AC_DEFINE(KPOP_PRINCIPAL, "pop")dnl +dnl What method of locking to use? +AC_ARG_WITH(locking, + AS_HELP_STRING([--with-locking=@<:@dot|fcntl|flock|lockf@:>@], + [specify the file locking method])) + +if test x"$with_locking" = x"dot"; then + LOCKTYPE="dot" + AC_DEFINE(DOT_LOCKING, 1, [Define to use dot based file locking.])dnl +elif test x"$with_locking" = x"flock"; then + LOCKTYPE="flock" + AC_DEFINE(FLOCK_LOCKING, 1, [Define to use flock() based locking.])dnl +elif test x"$with_locking" = x"lockf"; then + LOCKTYPE="lockf" + AC_DEFINE(LOCKF_LOCKING, 1, [Define to use lockf() based locking.])dnl +elif test x"$with_locking" = x"fcntl"; then + LOCKTYPE="fcntl" + AC_DEFINE(FCNTL_LOCKING, 1, [Define to use fnctl() based locking.])dnl +else + LOCKTYPE="dot" + AC_DEFINE(DOT_LOCKING)dnl fi -dnl Do you want support for hesiod -AC_ARG_WITH(hesiod, -[ --with-hesiod=PREFIX specify location of Hesiod]) -if test x$with_hesiod != x -a x$with_hesiod != xno; then - AC_DEFINE(HESIOD)dnl +dnl What method of posting should post use? +AC_ARG_WITH(mts, + AS_HELP_STRING([--with-mts=@<:@smtp|sendmail@:>@], + [specify the default mail transport agent/service])) + +if test x"$with_mts" = x"smtp"; then + MTS="smtp" +elif test x"$with_mts" = x"sendmail"; then + MTS="sendmail" +else + MTS="smtp" fi +AC_SUBST(MTS)dnl -dnl Do you want to debug nmh? -undefine([nmh-debug])dnl -AC_ARG_ENABLE(nmh-debug, -[ --enable-nmh-debug enable nmh code debugging]) +dnl Both the smtp and sendmail mail transport services use the smtp code +AC_DEFINE(SMTPMTS, 1, + [Define if you want SMTP (simple mail transport protocol) support.])dnl + +dnl What should be the default pager? +AC_ARG_WITH(pager, + AS_HELP_STRING([--with-pager=PAGER],[specify the default pager])) + +if test -n "$with_pager"; then + pagerpath="$with_pager" +fi + +dnl What should be the default mail server(s)? +AC_ARG_WITH(smtpservers, + AS_HELP_STRING([--with-smtpservers='SMTPSERVER1@<:@ SMTPSERVER2...@:>@'], + [specify the default SMTP server(s) @<:@localhost@:>@])) +if test -n "$with_smtpservers"; then + smtpservers="$with_smtpservers" +else + smtpservers="localhost" +fi +AC_SUBST(smtpservers)dnl dnl ---------------------------------------------------- dnl Default location is /usr/local/nmh/{bin,etc,lib,man} @@ -111,27 +229,51 @@ dnl ------------------ dnl We want these before the checks, dnl so the checks can modify their values. test -z "$CFLAGS" && CFLAGS= auto_cflags=1 -if test x$enable_nmh_debug = xyes; then +if test x"$enable_debug" = x"yes"; then test -z "$LDFLAGS" && LDFLAGS=-g fi AC_PROG_CC +AC_CACHE_CHECK(whether compiler supports -Wno-pointer-sign, nmh_cv_has_noptrsign, +[nmh_saved_cflags="$CFLAGS" + CFLAGS="$CFLAGS -Wno-pointer-sign" + AC_TRY_COMPILE([],[],nmh_cv_has_noptrsign=yes,nmh_cv_has_noptrsign=no) + CFLAGS="$nmh_saved_cflags"]) + dnl if the user hasn't specified CFLAGS, then dnl if compiler is gcc, then dnl use -O2 and some warning flags dnl else use -O +dnl We use -Wall; if the compiler supports it we also use -Wno-pointer-sign, +dnl because gcc 4 now produces a lot of new warnings which are probably mostly +dnl spurious and which in any case we don't want to deal with now. +if test "$nmh_cv_has_noptrsign" = "yes"; then + nmh_gcc_warnflags="-Wall -Wno-pointer-sign" +else + nmh_gcc_warnflags="-Wall" +fi + if test -n "$auto_cflags"; then - if test x$enable_nmh_debug = xyes; then + if test x"$enable_debug" = x"yes"; then if test -n "$GCC"; then - test -z "$CFLAGS" && CFLAGS="-Wall -g" || CFLAGS="$CFLAGS -Wall -g" + test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -g" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -g" else test -z "$CFLAGS" && CFLAGS=-g || CFLAGS="$CFLAGS -g" fi else - test -z "$LDFLAGS" && LDFLAGS=-s + if test -z "$LDFLAGS"; then + case "$build_os" in + darwin*) + LDFLAGS= + ;; + *) + LDFLAGS=-s + ;; + esac + fi if test -n "$GCC"; then - test -z "$CFLAGS" && CFLAGS=-O2 || CFLAGS="$CFLAGS -O2" + test -z "$CFLAGS" && CFLAGS="$nmh_gcc_warnflags -O2" || CFLAGS="$CFLAGS $nmh_gcc_warnflags -O2" else test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O" fi @@ -149,6 +291,34 @@ AC_PROG_RANLIB dnl Check for `ranlib' AC_PROG_AWK dnl Check for mawk,gawk,nawk, then awk AC_PROG_LEX dnl Check for lex/flex +dnl Look for `cut' +pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb +AC_PATH_PROG(cutpath, cut, no, [$pathtmp]) + +dnl ---------------------------------------------- +dnl check for lclint, and lint if it doesn't exist +dnl ---------------------------------------------- +AC_CHECK_PROG(linttmp1, lclint, lclint, no)dnl +if test x$ac_cv_prog_linttmp1 != xno ; then + LINT=$ac_cv_prog_linttmp1 + LINTFLAGS="-weak +posixlib -macrovarprefixexclude" +else + AC_CHECK_PROG(linttmp2, lint, lint, no)dnl + if test x$ac_cv_prog_linttmp2 != xno ; then + LINT=$ac_cv_prog_linttmp2 + LINTFLAGS="" + else + LINT="echo 'No lint program found'" + LINTFLAGS="" + fi +fi +AC_SUBST(LINT)dnl +AC_SUBST(LINTFLAGS)dnl + +dnl try to figure out which one we've got +AC_CHECK_PROG(LIBTOOL, libtool, libtool, , [$pathtmp]) +NMH_PROG_GNU_LIBTOOL + dnl Check for lorder and tsort commands AC_CHECK_PROG(LORDER, lorder, lorder, no)dnl AC_CHECK_PROG(TSORT, tsort, tsort, no)dnl @@ -159,11 +329,46 @@ if test x$ac_cv_prog_LORDER != xlorder -o x$ac_cv_prog_TSORT != xtsort; then TSORT=cat AC_SUBST(LORDER)dnl AC_SUBST(TSORT)dnl +dnl Mac OS X has lorder, but sh is too broken for it to work +dnl elif test -z "`lorder config/config.c 2>&1 | grep config/config.c`" ; then +dnl LORDER=echo +dnl TSORT=cat +dnl AC_SUBST(LORDER)dnl +dnl AC_SUBST(TSORT)dnl fi -dnl Look for `sendmail' -pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin -AC_PATH_PROG(sendmailpath, sendmail, no, [$pathtmp]) +dnl Check whether tsort can deal with loops +AC_CACHE_CHECK(whether tsort can deal with loops, nmh_cv_tsort_loop, + [if test -z "`echo a b b a | tsort 2>/dev/null | grep a`" ; then + nmh_cv_tsort_loop=no + else + nmh_cv_tsort_loop=yes + fi]) +if test x$nmh_cv_tsort_loop = xno ; then + LORDER=echo + TSORT=cat + AC_SUBST(LORDER)dnl + AC_SUBST(TSORT)dnl +fi + +dnl Look for `ls' +pathtmp=/usr/bin:/bin:/usr/local/bin:/usr/xpg4/bin:/usr/ucb +AC_PATH_PROG(lspath, ls, no, [$pathtmp]) + +dnl See how we get ls to display the owner and the group +if test "$lspath" != "no"; then + AC_CACHE_CHECK(how to get ls to show us the group ownership of a file, + nmh_cv_ls_grpopt, + [if test x"`$lspath -dl / | $AWK '{print $9}'`" = x"/"; then + dnl There were 9 parameters, so unless this is a really bizarre, nonstandard + dnl ls, it would seem -l gave us both the user and group. On this type of + dnl ls, -g makes _only_ the group be displayed (and not the user). + nmh_cv_ls_grpopt="-l" + else + dnl Looks like -l only gave us the user, so we need -g to get the group too. + nmh_cv_ls_grpopt="-lg" + fi]) +fi dnl Look for `more' pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin @@ -176,9 +381,13 @@ if test -z "$pagerpath"; then fi AC_SUBST(pagerpath)dnl +dnl Look for `sendmail' +pathtmp=/usr/lib:/usr/sbin:/usr/etc:/usr/ucblib:/usr/bin:/bin +AC_PATH_PROG(sendmailpath, sendmail, /usr/sbin/sendmail, [$pathtmp]) + dnl Look for `vi' pathtmp=/usr/bin:/bin:/usr/ucb:/usr/local/bin -AC_PATH_PROG(vipath, vi, no, [$pathtmp]) +AC_PATH_PROG(vipath, vi, /bin/vi, [$pathtmp]) dnl If editor is not specified yet, dnl then use `vi' as the default. @@ -187,23 +396,9 @@ if test -z "$editorpath"; then fi AC_SUBST(editorpath)dnl -dnl Check for broken vi -AC_CACHE_CHECK(for broken vi, nmh_cv_attvibug, -[if echo 'r /nonexist-file -q' | ex > /dev/null 2>&1 -then - nmh_cv_attvibug=no -else - nmh_cv_attvibug=yes -fi]) - -if test "$nmh_cv_attvibug" = yes; then - AC_DEFINE(ATTVIBUG) -fi - -dnl --------------- -dnl FIND MAIL SPOOL -dnl --------------- +dnl ---------------------------------------------------------- +dnl FIND MAIL SPOOL AND SEE IF WE NEED TO MAKE inc SETGID MAIL +dnl ---------------------------------------------------------- AC_CACHE_CHECK(where mail spool is located, nmh_cv_mailspool, [for mailspool in /var/mail dnl /var/spool/mail dnl @@ -217,63 +412,146 @@ nmh_cv_mailspool=$mailspool mailspool=$nmh_cv_mailspool AC_SUBST(mailspool)dnl +dnl See whether the mail spool directory is world-writable. +if test "$lspath" != "no" -a "$cutpath" != "no"; then + AC_CACHE_CHECK(whether the mail spool is world-writable, + nmh_cv_mailspool_world_writable, + [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then + nmh_cv_mailspool_world_writable=no + else + nmh_cv_mailspool_world_writable=yes + fi]) +fi + +dnl Also, check for liblockfile (as found on Debian systems) +AC_CHECK_HEADER(lockfile.h, AC_CHECK_LIB(lockfile, lockfile_create) ) + +dnl and whether its companion program dotlockfile is setgid +AC_PATH_PROG(dotlockfilepath, dotlockfile, no) +if test "$ac_cv_lib_lockfile_lockfile_create" != "no" ; then + if test "$ac_cv_path_dotlockfilepath" != "no" ; then + AC_CACHE_CHECK(whether dotlockfile is setgid, nmh_cv_dotlockfile_setgid, + [ if test -g "$ac_cv_path_dotlockfilepath" ; then + nmh_cv_dotlockfile_setgid=yes + else + nmh_cv_dotlockfile_setgid=no + fi]) + fi +fi + +dnl If mailspool is not world-writable and dotlockfile is not setgid, +dnl we need to #define MAILGROUP to 1 and make inc setgid. +if test x"$LOCKTYPE" = x"dot" -a x"$nmh_cv_mailspool_world_writable" = x"no" -a x"$nmh_cv_dotlockfile_setgid" != x"yes" ; then + dnl do we really need both of these? + AC_DEFINE(MAILGROUP,1, + [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 + SETGID_MAIL=1 +fi +AC_SUBST(SETGID_MAIL)dnl + +dnl Use ls to see which group owns the mail spool directory. +AC_CACHE_CHECK(what group owns the mail spool, nmh_cv_ls_mail_grp, +[nmh_cv_ls_mail_grp=`$lspath -dL $nmh_cv_ls_grpopt $mailspool|$AWK '{print $4}'` +]) +MAIL_SPOOL_GRP=$nmh_cv_ls_mail_grp +AC_SUBST(MAIL_SPOOL_GRP)dnl + dnl ------------------ dnl CHECK HEADER FILES dnl ------------------ + +dnl On glibc we need to define at least the '_XOPEN_SOURCE' level of features, +dnl or wchar.h doesn't declare a prototype for wcwidth(). But if we only define +dnl that level then db.h won't compile. So we define _GNU_SOURCE which turns +dnl on everything. Perhaps other OSes need some feature switch set to get wcwidth() +dnl declared; if so they should have an entry added to this case statement. +dnl NB that we must define this on the compiler command line, not in config.h, +dnl because it must be set before any system header is included and there's no +dnl portable way to make sure that files generated by lex include config.h +dnl before system header files. + +case "$target_os" in + linux*) + # Like DEFS, but doesn't get stomped on by configure when using config.h: + OURDEFS="$OURDEFS -D_GNU_SOURCE" + ;; +esac +AC_SUBST(OURDEFS) + AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_TIME AC_HEADER_SYS_WAIT AC_HEADER_STAT +AC_HEADER_TIOCGWINSZ AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.h \ limits.h crypt.h termcap.h termio.h termios.h locale.h \ - sys/param.h sys/time.h sys/utsname.h arpa/inet.h \ - arpa/ftp.h) - -AC_CACHE_CHECK(POSIX termios, nmh_cv_sys_posix_termios, -[AC_TRY_LINK([#include -#include -#include ], -[/* SunOS 4.0.3 has termios.h but not the library calls. */ -tcgetattr(0, 0);], - nmh_cv_sys_posix_termios=yes, nmh_cv_sys_posix_termios=no)]) - -if test $nmh_cv_sys_posix_termios = yes; then - AC_CACHE_CHECK(TIOCGWINSZ in termios.h, - nmh_cv_header_termios_h_tiocgwinsz, - [AC_TRY_LINK([#include -#include ], - [int x = TIOCGWINSZ;], - nmh_cv_header_termios_h_tiocgwinsz=yes, - nmh_cv_header_termios_h_tiocgwinsz=no)]) -else - nmh_cv_header_termios_h_tiocgwinsz=no -fi + langinfo.h wchar.h wctype.h iconv.h netdb.h \ + sys/param.h sys/time.h sys/utsname.h sys/stream.h \ + arpa/inet.h arpa/ftp.h) -if test $nmh_cv_header_termios_h_tiocgwinsz = no; then - AC_CACHE_CHECK(TIOCGWINSZ in sys/ioctl.h, - nmh_cv_header_sys_ioctl_h_tiocgwinsz, - [AC_TRY_LINK([#include -#include ], - [int x = TIOCGWINSZ;], - nmh_cv_header_sys_ioctl_h_tiocgwinsz=yes, - nmh_cv_header_sys_ioctl_h_tiocgwinsz=no)]) - if test $nmh_cv_header_sys_ioctl_h_tiocgwinsz = yes; then - AC_DEFINE(GWINSZ_IN_SYS_IOCTL) - fi -fi - -AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM)) +dnl +dnl Checks for _IO_write_ptr. A Linuxism used by nmh on linux. We +dnl really use a whole set of them, but this check should be +dnl sufficient. +dnl +AC_CHECK_HEADER(libio.h, [ + AC_EGREP_HEADER(_IO_write_ptr, libio.h, [ + AC_DEFINE(LINUX_STDIO,1,[Use the Linux _IO_*_ptr defines from .]) ]) ]) + +AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM,1, + [Define to 1 if `struct winsize' requires .]),, +[[#if HAVE_SYS_STREAM_H +# include +#endif +]]) dnl --------------- dnl CHECK FUNCTIONS dnl --------------- AC_FUNC_VFORK +AC_CHECK_LIB(mkstemp,mkstemp) AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \ - sighold sigrelse writev lstat uname tzset killpg \ - sigsetjmp) + sighold sigrelse writev lstat uname tzset killpg mkstemp \ + getutent nl_langinfo mbtowc wcwidth) + +dnl sigsetjmp may be a macro +AC_MSG_CHECKING(for sigsetjmp) +AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[sigsetjmp((void *)0, 0);]])],[AC_DEFINE(HAVE_SIGSETJMP, 1, + [Define to 1 if you have the `sigsetjmp'.]) AC_MSG_RESULT(yes)], + [AC_MSG_RESULT(no)]) + +AC_REPLACE_FUNCS(memmove snprintf strerror strdup) + +dnl Look for the initgroups() declaration. On AIX 4.[13], Solaris 4.1.3, and +dnl ULTRIX 4.2A the function is defined in libc but there's no declaration in +dnl any system header. +dnl +dnl On Solaris 2.[456], the declaration is in . On HP-UX 9-11 and +dnl (reportedly) FreeBSD 3.[23], it's in . Any other locations we +dnl need to check? +AH_TEMPLATE(INITGROUPS_HEADER, [Define to the header containing the declaration of `initgroups'.]) +AC_EGREP_HEADER(initgroups, grp.h, AC_DEFINE(INITGROUPS_HEADER, ), + AC_EGREP_HEADER(initgroups, unistd.h, + AC_DEFINE(INITGROUPS_HEADER, ))) -AC_REPLACE_FUNCS(snprintf strerror strdup) +dnl On AIX 4.1, snprintf() is defined in libc.a but there's no prototype in +dnl or elsewhere. Apparently it's not officially supported (though it +dnl seems to work perfectly and IBM apparently uses it in internal code). +dnl Anyhow, if we omit our own snprintf() and vsnprintf() prototypes when we +dnl HAVE_SNPRINTF, we get a billion warnings at compile time. Use the C +dnl preprocessor to preprocess stdio.h and make sure that there's actually a +dnl prototype. +AC_EGREP_HEADER(snprintf, stdio.h, AC_DEFINE(HAVE_SNPRINTF_PROTOTYPE,1, + [Define to 1 if has a prototype for snprintf().])) + +dnl Check for multibyte character set support +if test "x$ac_cv_header_wchar_h" = "xyes" -a "x$ac_cv_header_wctype_h" = "xyes" \ + -a "x$ac_cv_func_wcwidth" = "xyes" -a "x$ac_cv_func_mbtowc" = "xyes"; then + AC_DEFINE(MULTIBYTE_SUPPORT, 1, + [Define to enable support for multibyte character sets.]) +fi dnl ------------------- dnl CHECK FOR LIBRARIES @@ -284,63 +562,162 @@ AC_CHECK_FUNC(modf, , AC_CHECK_LIB(m, modf)) dnl Checks for network libraries (nsl, socket) AC_CHECK_NETLIBS -dnl Check for bug in libraries such that ruserpass -dnl needs to be linked as _ruserpass. -AC_CHECK_RUSERPASS - termcap_curses_order="termcap curses ncurses" for lib in $termcap_curses_order; do AC_CHECK_LIB(${lib}, tgetent, [TERMLIB="-l$lib"; break]) done AC_SUBST(TERMLIB)dnl +dnl --------------- +dnl CHECK FOR ICONV +dnl --------------- + +dnl Find iconv. It may be in libiconv and may be iconv() or libiconv() +if test "x$ac_cv_header_iconv_h" = "xyes"; then + AC_CHECK_FUNC(iconv, ac_found_iconv=yes, ac_found_iconv=no) + if test "x$ac_found_iconv" = "xno"; then + AC_CHECK_LIB(iconv, iconv, ac_found_iconv=yes) + if test "x$ac_found_iconv" = "xno"; then + AC_CHECK_LIB(iconv, libiconv, ac_found_iconv=yes) + fi + if test "x$ac_found_iconv" != "xno"; then + LIBS="-liconv $LIBS" + fi + else + dnl Handle case where there is a native iconv but iconv.h is from libiconv + AC_CHECK_DECL(_libiconv_version, + [ AC_CHECK_LIB(iconv, libiconv, LIBS="-liconv $LIBS") ],, + [ #include ]) + fi +fi +if test "x$ac_found_iconv" = xyes; then + AC_DEFINE(HAVE_ICONV, 1, [Define if you have the iconv() function.]) +fi + +dnl Check if iconv uses const in prototype declaration +if test "x$ac_found_iconv" = "xyes"; then + AC_CACHE_CHECK(for iconv declaration, ac_cv_iconv_const, + [AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include + #include ]], + [[#ifdef __cplusplus + "C" + #endif + #if defined(__STDC__) || defined(__cplusplus) + size_t iconv (iconv_t cd, char * *inbuf, size_t *inbytesleft, char * *outbuf, size_t *outbytesleft); + #else + size_t iconv(); + #endif]])], + [ac_cv_iconv_const=], + [ac_cv_iconv_const=const])]) + AC_DEFINE_UNQUOTED([ICONV_CONST], $ac_cv_iconv_const, + [Define as const if the declaration of iconv() needs const.]) +fi + dnl -------------- dnl CHECK FOR NDBM dnl -------------- -dnl Checks for ndbm -AC_CHECK_FUNC(dbm_open, , - AC_CHECK_LIB(ndbm, dbm_open, , - AC_CHECK_LIB(dbm, dbm_open))) + +AC_ARG_WITH([ndbm],AS_HELP_STRING([--with-ndbm=ARG],[use -lARG to link with ndbm]), + [nmh_ndbm=$withval],[nmh_ndbm=autodetect]) +AC_ARG_WITH([ndbmheader],AS_HELP_STRING([--with-ndbmheader=ARG],[#include to use ndbm]), + [nmh_ndbmheader=$withval],[nmh_ndbmheader=autodetect]) + +if test "$nmh_ndbm" = "autodetect"; then + if test "$nmh_ndbmheader" != "autodetect"; then + AC_MSG_ERROR([must specify both --with-ndbm and --with-ndbmheader or neither]) + else + + dnl There are at least four implementations of ndbm, and + dnl several of those can be in different places at the whim + dnl of the system integrator. A good summary of this mess + dnl can be found at http://www.unixpapa.com/incnote/dbm.html + + dnl Classic ndbm with no library required (eg NetBSD): try this + dnl first so we don't accidentally link in a pointless but harmless + dnl library in one of the later ndbm.h+libfoo tests: + NMH_CHECK_NDBM(ndbm.h,,, + dnl Berkeley DBv2 emulating ndbm: header in db.h: + NMH_CHECK_NDBM(db.h,db,, + dnl Berkeley DBv1 emulating ndbm: + NMH_CHECK_NDBM(ndbm.h,db,, + NMH_CHECK_NDBM(ndbm.h,db1,, + dnl Classic ndbm: + NMH_CHECK_NDBM(ndbm.h,ndbm,, + dnl glibc2.1 systems put db1 in a subdir: + NMH_CHECK_NDBM(db1/ndbm.h,db1,, + dnl GNU gdbm emulating ndbm, with header possibly in gdbm/ + dnl and possibly needing gbdm_compat library: + NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm,, + NMH_CHECK_NDBM(gdbm/ndbm.h,gdbm_compat -lgdbm,, + NMH_CHECK_NDBM(ndbm.h,gdbm,, + NMH_CHECK_NDBM(ndbm.h,gdbm_compat -lgdbm)))))))))) + + fi +else + dnl We don't really need to check that the user-specified values work, + dnl but it is a convenience to the user to bomb out early rather than + dnl after configure and half the compile process. + NMH_CHECK_NDBM([$nmh_ndbmheader],[$nmh_ndbm]) +fi + +if test "$nmh_ndbm_found" = "no"; then + AC_MSG_ERROR([could not find a working ndbm library/header combination]) +else + dnl Now export the lib/header to our makefile/config.h: + if test x"$nmh_ndbmheader" != x; then + AC_DEFINE_UNQUOTED(NDBM_HEADER, <$nmh_ndbmheader>, + [Define to the header containing the ndbm API prototypes.]) + fi + if test x"$nmh_ndbm" != x; then + NDBM_LIBS="-l$nmh_ndbm" + else + NDBM_LIBS= + fi + AC_SUBST(NDBM_LIBS) +fi + dnl ---------------- dnl CHECK FOR HESIOD dnl ---------------- -if test x$with_hesiod != x -a x$with_hesiod != xno; then - if test x$with_hesiod != xyes; then +if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; then + if test x"$with_hesiod" != x"yes"; then HESIOD_INCLUDES="-I$with_hesiod/include" HESIOD_LIBS="-L$with_hesiod/lib" fi - AC_CHECK_FUNC(res_send, , - AC_CHECK_LIB(resolv, res_send)) - AC_CHECK_LIB(hesiod, hes_resolve, [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"], - [AC_MSG_ERROR(Hesiod library not found)], $HESIOD_LIBS) + AC_CHECK_FUNC(res_send, + [AC_CHECK_LIB(hesiod, hes_resolve, + [HESIOD_LIBS="$HESIOD_LIBS -lhesiod"], + [AC_MSG_ERROR(Hesiod library not found)], + $HESIOD_LIBS)], + [AC_CHECK_LIB(hesiod, hes_resolve, + [HESIOD_LIBS="$HESIOD_LIBS -lhesiod -lresolv"], + [AC_MSG_ERROR(Hesiod library not found)], + $HESIOD_LIBS -lresolv)]) + fi AC_SUBST(HESIOD_INCLUDES)dnl AC_SUBST(HESIOD_LIBS)dnl -dnl ---------------------------------- -dnl CHECK FOR KRB4 (Kerberos4 support) -dnl ---------------------------------- -if test x$with_krb4 != x -a x$with_krb4 != xno; then - if test x$with_krb4 != xyes; then - KRB4_INCLUDES="-I$with_krb4/include" - if test -d "$with_krb4/include/kerberosIV"; then - KRB4_INCLUDES="$KRB4_INCLUDES -I$with_krb4/include/kerberosIV" - fi - KRB4_LIBS="-L$with_krb4/lib" - elif test -d /usr/include/kerberosIV; then - KRB4_INCLUDES="-I/usr/include/kerberosIV" - fi - AC_CHECK_LIB(krb4, krb_rd_req, - [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lcrypto -lcom_err"], - [AC_CHECK_LIB(krb, krb_rd_req, - [KRB4_LIBS="$KRB4_LIBS -lkrb -ldes"], - [AC_MSG_ERROR(Kerberos 4 libraries not found)], - $KRB4_LIBS -ldes)], - $KRB4_LIBS -ldes425 -lkrb5 -lcrypto -lcom_err) -fi -AC_SUBST(KRB4_INCLUDES)dnl -AC_SUBST(KRB4_LIBS)dnl +dnl -------------------- +dnl CHECK FOR CYRUS-SASL +dnl -------------------- + +AS_IF([test x"$sasl_support" = x"yes"],[ + AC_CHECK_HEADER([sasl/sasl.h], , [AC_MSG_ERROR([sasl.h not found])]) + AC_CHECK_LIB([sasl2], [sasl_client_new], , + [AC_MSG_ERROR([Cyrus SASL library not found])])]) + +dnl ----------------- +dnl CHECK FOR OPENSSL +dnl ----------------- + +AS_IF([test x"$tls_support" = x"yes"],[ + AC_CHECK_HEADER([openssl/ssl.h], , [AC_MSG_ERROR([openssl/ssl.h not found])]) + AC_CHECK_LIB([crypto], [BIO_write], , + [AC_MSG_ERROR([OpenSSL crypto library not found])]) + AC_CHECK_LIB([ssl], [SSL_library_init], , + [AC_MSG_ERROR([OpenSSL library not found])])]) dnl --------------------- dnl CHECK TERMCAP LIBRARY @@ -354,43 +731,97 @@ LIBS="$TERMLIB $LIBS" dnl Checks for external variable ospeed in the termcap library. AC_CACHE_CHECK(if an include file defines ospeed, nmh_cv_decl_ospeed_include_defines, -[AC_TRY_LINK( -[#include +[AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include #if HAVE_TERMIOS_H #include #endif #if HAVE_TERMCAP_H #include -#endif], [ospeed = 0;], -nmh_cv_decl_ospeed_include_defines=yes, -nmh_cv_decl_ospeed_include_defines=no)]) +#endif]], [[ospeed = 0;]])], +nmh_cv_decl_ospeed_include_defines=yes,nmh_cv_decl_ospeed_include_defines=no)]) if test $nmh_cv_decl_ospeed_include_defines = no; then AC_CACHE_CHECK(if you must define ospeed, nmh_cv_decl_ospeed_must_define, - [AC_TRY_LINK( ,[extern short ospeed; ospeed = 0;], - nmh_cv_decl_ospeed_must_define=yes, - nmh_cv_decl_ospeed_must_define=no)]) + [AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], + [[extern short ospeed; ospeed = 0;]])], + nmh_cv_decl_ospeed_must_define=yes,nmh_cv_decl_ospeed_must_define=no)]) fi +AH_TEMPLATE(HAVE_OSPEED, [Define to 1 if your termcap library has the ospeed variable.]) if test $nmh_cv_decl_ospeed_include_defines = yes; then - AC_DEFINE(HAVE_OSPEED) + AC_DEFINE(HAVE_OSPEED)dnl elif test $nmh_cv_decl_ospeed_must_define = yes; then AC_DEFINE(HAVE_OSPEED) - AC_DEFINE(MUST_DEFINE_OSPEED) + AC_DEFINE(MUST_DEFINE_OSPEED, 1, + [Define to 1 if you have ospeed, but it is not defined in termcap.h.]) fi -dnl dnl Checks if tgetent accepts NULL and will -dnl dnl allocate its own termcap buffer. -dnl AC_CACHE_CHECK(if tgetent accepts NULL, -dnl nmh_cv_func_tgetent_accepts_null, -dnl [AC_TRY_RUN([main(){int i = tgetent((char*)0,"vt100");exit(!i || i == -1);}], -dnl nmh_cv_func_tgetent_accepts_null=yes, -dnl nmh_cv_func_tgetent_accepts_null=no, -dnl nmh_cv_func_tgetent_accepts_null=no)]) -dnl if test $nmh_cv_func_tgetent_accepts_null = yes; then -dnl AC_DEFINE(TGETENT_ACCEPTS_NULL) -dnl fi +dnl Check if tgetent accepts NULL (and will allocate its own termcap buffer) +dnl Some termcaps reportedly accept a zero buffer, but then dump core +dnl in tgetstr(). +dnl Under Cygwin test program crashes but exit code is still 0. So, +dnl we test for a file that porgram should create +AH_TEMPLATE([TGETENT_ACCEPTS_NULL], +[Define to 1 if tgetent() accepts NULL as a buffer.]) +AC_CACHE_CHECK(if tgetent accepts NULL, +nmh_cv_func_tgetent_accepts_null, +[AC_TRY_RUN([ +main() +{ + char buf[4096]; + int r1 = tgetent(buf, "vt100"); + int r2 = tgetent((char*)0,"vt100"); + if (r1 >= 0 && r1 == r2) { + char tbuf[1024], *u; + u = tbuf; + tgetstr("cl", &u); + creat("conftest.tgetent", 0640); + } + exit((r1 != r2) || r2 == -1); +} +], + if test -f conftest.tgetent; then + nmh_cv_func_tgetent_accepts_null=yes + else + nmh_cv_func_tgetent_accepts_null=no + fi, + nmh_cv_func_tgetent_accepts_null=no, + nmh_cv_func_tgetent_accepts_null=no)]) +if test x$nmh_cv_func_tgetent_accepts_null = xyes; then + AC_DEFINE(TGETENT_ACCEPTS_NULL) +fi +AC_CACHE_CHECK(if tgetent returns 0 on success, +nmh_cv_func_tgetent_zero_success, +[AC_TRY_RUN([ +main() +{ + char buf[4096]; + int r1 = tgetent(buf, "!@#$%^&*"); + int r2 = tgetent(buf, "vt100"); + if (r1 < 0 && r2 == 0) { + char tbuf[1024], *u; + u = tbuf; + tgetstr("cl", &u); + creat("conftest.tgetent0", 0640); + } + exit(r1 == r2); +} +], + if test -f conftest.tgetent0; then + nmh_cv_func_tgetent_zero_success=yes + else + nmh_cv_func_tgetent_zero_success=no + fi, + nmh_cv_func_tgetent_zero_success=no, + nmh_cv_func_tgetent_zero_success=no)]) +AH_TEMPLATE([TGETENT_SUCCESS], +[Define to what tgetent() returns on success (0 on HP-UX X/Open curses).]) +if test x$nmh_cv_func_tgetent_zero_success = xyes; then + AC_DEFINE(TGETENT_SUCCESS, 0) +else + AC_DEFINE(TGETENT_SUCCESS, 1) +fi dnl Now put the libraries back to what it was before we dnl starting checking the termcap library. @@ -410,22 +841,21 @@ dnl Check for sigset_t. Currently I'm looking in dnl and . Others might need dnl to be added. AC_CACHE_CHECK(for sigset_t, nmh_cv_type_sigset_t, -[AC_TRY_COMPILE( -[#include -#include ], [sigset_t tempsigset;], - nmh_cv_type_sigset_t=yes, nmh_cv_type_sigset_t=no)]) +[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], [[sigset_t tempsigset;]])], +nmh_cv_type_sigset_t=yes,nmh_cv_type_sigset_t=no)]) if test $nmh_cv_type_sigset_t = no; then - AC_DEFINE(sigset_t, unsigned int) + AC_DEFINE(sigset_t, unsigned int, + [Define to `unsigned int' if or doesn't define.]) fi dnl ---------------- dnl CHECK STRUCTURES dnl ---------------- -AC_STRUCT_ST_BLKSIZE +AC_CHECK_MEMBERS(struct stat.st_blksize) -AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff, -[AC_TRY_COMPILE( -[#ifdef TIME_WITH_SYS_TIME +AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, + [#ifdef TIME_WITH_SYS_TIME # include # include #else @@ -434,32 +864,64 @@ AC_CACHE_CHECK(for tm_gmtoff in struct tm, nmh_cv_struct_tm_gmtoff, # else # include # endif -#endif], -[struct tm temptm; temptm.tm_gmtoff = 0;], - nmh_cv_struct_tm_gmtoff=yes, nmh_cv_struct_tm_gmtoff=no)]) -if test $nmh_cv_struct_tm_gmtoff = yes; then - AC_DEFINE(HAVE_TM_GMTOFF) +#endif]) + +AC_CHECK_MEMBERS(struct utmp.ut_type,,,[#include ]) + +AC_MSG_CHECKING(for union wait) +AC_CACHE_VAL(nmh_cv_union_wait, [dnl + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include +#include ]], + [[union wait status; int pid; pid = wait (&status); +#ifdef WEXITSTATUS +/* Some POSIXoid systems have both the new-style macros and the old + union wait type, and they do not work together. If union wait + conflicts with WEXITSTATUS et al, we don't want to use it at all. */ + if (WEXITSTATUS (status) != 0) pid = -1; +#ifdef WTERMSIG + /* If we have WEXITSTATUS and WTERMSIG, just use them on ints. */ + -- blow chunks here -- +#endif +#endif +#ifdef HAVE_WAITPID + /* Make sure union wait works with waitpid. */ + pid = waitpid (-1, &status, 0); +#endif + ]])], + [nmh_cv_union_wait=yes], + [nmh_cv_union_wait=no])]) +if test "$nmh_cv_union_wait" = yes; then + AC_DEFINE(HAVE_UNION_WAIT, 1, + [Define to 1 if you have the \`union wait' type in .]) fi +AC_MSG_RESULT($nmh_cv_union_wait) + +CHECK_TYPE_STRUCT_DIRENT_D_TYPE() dnl ------------- dnl CHECK SIGNALS dnl ------------- dnl What style of signal do you have (POSIX, BSD, or SYSV)? +AH_TEMPLATE(RELIABLE_SIGNALS, [Define to 1 if you have reliable signals.]) AC_MSG_CHECKING(what style of signals to use) if test $ac_cv_func_sigaction = yes -a $ac_cv_func_sigprocmask = yes; then signals_style=POSIX_SIGNALS - AC_DEFINE(POSIX_SIGNALS) + AC_DEFINE(POSIX_SIGNALS, 1, + [Define to 1 if you use POSIX style signal handling.]) AC_DEFINE(RELIABLE_SIGNALS) elif test $ac_cv_func_sigblock = yes -a $ac_cv_func_sigsetmask = yes; then signals_style=BSD_SIGNALS - AC_DEFINE(BSD_SIGNALS) + AC_DEFINE(BSD_SIGNALS,1, + [Define to 1 if you use BSD style signal handling (and can block signals).]) AC_DEFINE(RELIABLE_SIGNALS) elif test $ac_cv_func_sighold = yes -a $ac_cv_func_sigrelse = yes; then signals_style=SYSV_SIGNALS - AC_DEFINE(SYSV_SIGNALS) + AC_DEFINE(SYSV_SIGNALS,1, + [Define to 1 if you use SYSV style signal handling (and can block signals).]) else signals_style=NO_SIGNAL_BLOCKING - AC_DEFINE(NO_SIGNAL_BLOCKING) + AC_DEFINE(NO_SIGNAL_BLOCKING,1, + [Define to 1 if you have no signal blocking at all (bummer).]) fi AC_MSG_RESULT($signals_style) @@ -483,33 +945,112 @@ SIGNAL_H=$nmh_cv_path_signal_h AC_SUBST(SIGNAL_H)dnl dnl ---------------- +dnl OS SPECIFIC DEFINES +dnl ---------------- +AH_TEMPLATE(SYS5, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX, SCO5; only used in vmh.c which is not built.]) +AH_TEMPLATE(SVR4, [Defined for Solaris 2.x, Irix, OSF/1, HP-UX, AIX; only used in vmh.c which is not built.]) +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.]) +AH_TEMPLATE(BSD42, [Defined for SunOS 4, FreeBSD, NetBSD, OpenBSD, BSD/OS, Mac OS X/Rhapsody -- does PicoBSD have uname?]) +AH_TEMPLATE(SCO_5_STDIO, [Defined for SCO5.]) + +case "$target_os" in + + solaris2*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + irix*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + osf*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + aix*) + AC_DEFINE(SYS5) + AC_DEFINE(SVR4) + ;; + sunos4*) + AC_DEFINE(BSD42) + ;; + freebsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + netbsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + openbsd*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + bsd/os*) + AC_DEFINE(BSD42) + AC_DEFINE(BSD44) + ;; + sco5*) + AC_DEFINE(SYS5) + AC_DEFINE(SCO_5_STDIO) + ;; +esac + + +dnl ---------------- dnl OUTPUT MAKEFILES dnl ---------------- -AC_OUTPUT(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \ - zotnet/Makefile zotnet/mts/Makefile zotnet/tws/Makefile \ - zotnet/mf/Makefile zotnet/bboards/Makefile mts/Makefile \ - mts/smtp/Makefile mts/sendmail/Makefile mts/mmdf/Makefile \ - etc/Makefile man/Makefile, \ - [test -z "$CONFIG_HEADERS" || echo > stamp-h]) - -eval "nmhbin=${bindir}"; eval "nmhbin2=${nmhbin}" -eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}" -eval "nmhlib=${libdir}"; eval "nmhlib2=${nmhlib}" -eval "nmhman=${mandir}" +AC_CONFIG_FILES(Makefile config/Makefile h/Makefile sbr/Makefile uip/Makefile \ + mts/Makefile mts/smtp/Makefile \ + etc/Makefile docs/Makefile man/Makefile) +AC_CONFIG_COMMANDS([stamp],[test -z "$CONFIG_HEADERS" || echo > stamp-h]) +AC_OUTPUT + +dnl These odd looking assignments are done to expand out unexpanded +dnl variables in bindir et al (for instance mandir is '${datarootdir}/man', +dnl but expanding that gives '${prefix}/share/man', so we need to expand +dnl again to get the final answer. +dnl We only use the expanded versions to print the install paths in +dnl the final summary and should use them nowhere else (see the autoconf +dnl docs for the rationale for bindir etc being unexpanded). +eval "nmhbin=${bindir}"; eval "nmhbin=${nmhbin}" +eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf=${nmhsysconf}" +eval "nmhlib=${libdir}"; eval "nmhlib=${nmhlib}" +eval "nmhman=${mandir}"; eval "nmhman=${nmhman}" + +pop_kinds=no +if test x"$enable_pop" = x"yes"; then + pop_kinds="yes (" + + if test x"$enable_apop" = x"yes"; then + pop_kinds="${pop_kinds}APOP " + fi + + pop_kinds="${pop_kinds}POP3)" +fi echo " nmh configuration ----------------- -nmh version : ${VERSION} -compiler : ${CC} -compiler flags : ${CFLAGS} -linker flags : ${LDFLAGS} -source code location : ${srcdir} -binary install path : ${nmhbin2} -libary install path : ${nmhlib2} -config files install path : ${nmhsysconf2} -man page install path : ${nmhman} -transport system : ${MTS} -default editor : ${editorpath} -default pager : ${pagerpath}" +nmh version : AC_PACKAGE_VERSION +target os : ${target} +compiler : ${CC} +compiler flags : ${CFLAGS} +linker flags : ${LDFLAGS} +definitions : ${OURDEFS} +source code location : ${srcdir} +binary install path : ${nmhbin} +library install path : ${nmhlib} +config files install path : ${nmhsysconf} +man page install path : ${nmhman} +backup prefix : ${backup_prefix} +transport system : ${MTS} +file locking type : ${LOCKTYPE} +default smtp servers : ${smtpservers} +default editor : ${editorpath} +default pager : ${pagerpath} +email address masquerading : ${masquerade} +pop is enabled : ${pop_kinds} +SASL support : ${sasl_support} +TLS support : ${tls_support}" echo ""