X-Git-Url: http://git.marmaro.de/?p=mmh;a=blobdiff_plain;f=configure.in;h=70dac65fbde9e0e7f95f49b8a7d8857892793d3f;hp=e008945151d541254708ec99af6188e44423233a;hb=6c42153ad9362cc676ea66563bf400d7511b3b68;hpb=13d2614380f499b1e5a1cc3546230239afe2b1dd diff --git a/configure.in b/configure.in index e008945..70dac65 100644 --- a/configure.in +++ b/configure.in @@ -14,11 +14,13 @@ dnl define a macro or two 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 ] ) @@ -27,10 +29,25 @@ VERSION=`sed -e 's/nmh-//' ${srcdir}/VERSION` echo "configuring for nmh-$VERSION" AC_SUBST(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, +[ --enable-apop enable client-side support for POP3 and APOP]) +if test x"$enable_apop" = x"yes"; then + AC_DEFINE(APOP)dnl + APOPLIB=md5.o + enable_pop=yes +fi +AC_SUBST(APOPLIB)dnl + dnl Do you want to debug nmh? undefine([debug])dnl AC_ARG_ENABLE(debug, @@ -44,7 +61,7 @@ dnl Allow users to send email from addresses other than their default? undefine([masquerade])dnl AC_ARG_ENABLE(masquerade, [ --enable-masquerade[='draft_from mmailid username_extension'] - enable 3 types of email address masquerading [none]], + enable up to 3 types of address masquerading [none]], [if test x"$enable_masquerade" = x"yes"; then masquerade="draft_from mmailid username_extension" else @@ -66,21 +83,42 @@ fi dnl Do you want client-side support for pop? undefine([pop])dnl AC_ARG_ENABLE(pop, -[ --enable-pop enable client-side support for pop]) +[ --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 client-side support for apop? -AC_ARG_ENABLE(apop, -[ --enable-apop enable client-side support for apop]) -if test x"$enable_apop" = x"yes"; then - AC_DEFINE(APOP)dnl - APOPLIB=md5.o - enable_pop=yes +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, +[ --with-cyrus-sasl= Specify location of Cyrus SASL library for auth]) +if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then + AC_DEFINE(CYRUS_SASL)dnl + sasl_support=yes +else + sasl_support=no +fi + +dnl What should be the default editor? +undefine([editor])dnl +AC_ARG_WITH(editor, +[ --with-editor=EDITOR specify the default editor]) + +if test -n "$with_editor"; then + editorpath="$with_editor" fi -AC_SUBST(APOPLIB)dnl + +dnl Set the backup prefix +undefine([backup-prefix])dnl +AC_ARG_WITH([hash-backup], + [ --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")dnl dnl Do you want support for hesiod AC_ARG_WITH(hesiod, @@ -91,7 +129,7 @@ fi dnl Do you want client-side support for kpop AC_ARG_WITH(krb4, -[ --with-krb4=PREFIX specify location of Kerberos V4 for kpop support]) +[ --with-krb4=PREFIX specify location of Kerberos V4 for KPOP support]) if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then enable_pop=yes AC_DEFINE(KPOP)dnl @@ -109,36 +147,45 @@ fi AC_SUBST(POPLIB)dnl AC_SUBST(POPSED)dnl -dnl What should be the default editor? -undefine([editor])dnl -AC_ARG_WITH(editor, -[ --with-editor=EDITOR specify the default editor]) - -if test -n "$with_editor"; then - editorpath="$with_editor" +dnl What method of locking to use? +undefine([locking])dnl +AC_ARG_WITH(locking, +[ --with-locking=LOCKTYPE specify the file locking method + (one of dot, fcntl, flock, lockf)]) + +if test x"$with_locking" = x"dot"; then + LOCKTYPE="dot" + AC_DEFINE(DOT_LOCKING)dnl +elif test x"$with_locking" = x"flock"; then + LOCKTYPE="flock" + AC_DEFINE(FLOCK_LOCKING)dnl +elif test x"$with_locking" = x"lockf"; then + LOCKTYPE="lockf" + AC_DEFINE(LOCKF_LOCKING)dnl +elif test x"$with_locking" = x"fcntl"; then + LOCKTYPE="fcntl" + AC_DEFINE(FCNTL_LOCKING)dnl +else + LOCKTYPE="dot" + AC_DEFINE(DOT_LOCKING)dnl fi dnl What method of posting should post use? undefine([mts])dnl AC_ARG_WITH(mts, -[ --with-mts=MTS specify the mail transport agent]) +[ --with-mts=MTS specify the default mail transport agent/service]) if test x"$with_mts" = x"smtp"; then MTS="smtp" - MTSLIB="mts/smtp/libsmtp.a" - AC_DEFINE(SMTPMTS)dnl elif test x"$with_mts" = x"sendmail"; then MTS="sendmail" - MTSLIB="mts/sendmail/libsend.a" - AC_DEFINE(SENDMTS)dnl else MTS="smtp" - MTSLIB="mts/smtp/libsmtp.a" - AC_DEFINE(SMTPMTS)dnl fi - AC_SUBST(MTS)dnl -AC_SUBST(MTSLIB)dnl + +dnl Both the smtp and sendmail mail transport services use the smtp code +AC_DEFINE(SMTPMTS)dnl dnl What should be the default pager? undefine([pager])dnl @@ -153,7 +200,7 @@ dnl What should be the default mail server(s)? undefine([smtpservers])dnl AC_ARG_WITH(smtpservers, [ --with-smtpservers='SMTPSERVER1[ SMTPSERVER2...]' - specify the default smtp server(s) [localhost]]) + specify the default SMTP server(s) [localhost]]) if test -n "$with_smtpservers"; then smtpservers="$with_smtpservers" else @@ -190,9 +237,18 @@ if test -n "$auto_cflags"; then 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="-Wall -O2" || CFLAGS="$CFLAGS -Wall -O2" else test -z "$CFLAGS" && CFLAGS=-O || CFLAGS="$CFLAGS -O" fi @@ -214,6 +270,25 @@ 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]) @@ -237,6 +312,20 @@ dnl AC_SUBST(LORDER)dnl dnl AC_SUBST(TSORT)dnl fi +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]) @@ -323,8 +412,25 @@ if test "$lspath" != "no" -a "$cutpath" != "no"; then fi]) fi -dnl ...If it's not, we need to #define MAILGROUP to 1 and make inc setgid. -if test x"$nmh_cv_mailspool_world_writable" = x"no"; then +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"$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)dnl SETGID_MAIL=1 @@ -381,7 +487,7 @@ if test $nmh_cv_header_termios_h_tiocgwinsz = no; then 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) + AC_DEFINE(GWINSZ_IN_SYS_IOCTL)dnl fi fi @@ -403,7 +509,7 @@ AC_FUNC_VFORK AC_CHECK_LIB(mkstemp,mkstemp) AC_CHECK_FUNCS(waitpid wait3 sigaction sigprocmask sigblock sigsetmask \ sighold sigrelse writev lstat uname tzset killpg mkstemp \ - sethostent) + sethostent getutent) dnl solaris screws this up AC_CHECK_FUNC(gethostbyname, [AC_DEFINE(HAVE_GETHOSTBYNAME)], @@ -451,7 +557,6 @@ for lib in $termcap_curses_order; do done AC_SUBST(TERMLIB)dnl - dnl -------------- dnl CHECK FOR NDBM dnl -------------- @@ -473,10 +578,16 @@ if test x"$with_hesiod" != x -a x"$with_hesiod" != x"no"; 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 @@ -494,17 +605,54 @@ if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then 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) +dnl First, check if we have -lk5crypto, since that means we have a recent krb5 + + AC_CHECK_LIB(k5crypto, krb5_encrypt, + [AC_CHECK_LIB(krb4, krb_rd_req, + [KRB4_LIBS="$KRB4_LIBS -lkrb4 -ldes425 -lkrb5 -lk5crypto -lcom_err"], + [AC_MSG_ERROR(Kerberos 4 compatibility libraries not found)], + $KRB4_LIBS -ldes425 -lkrb5 -lk5crypto -lcom_err)], + + [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)], + $KRB4_LIBS) + fi AC_SUBST(KRB4_INCLUDES)dnl AC_SUBST(KRB4_LIBS)dnl +dnl -------------------- +dnl CHECK FOR CYRUS SASL +dnl -------------------- +if test x"$with_cyrus_sasl" != x -a x"$with_cyrus_sasl" != x"no"; then + if test x"$with_cyrus_sasl" != x"yes"; then + SASL_INCLUDES="-I$with_cyrus_sasl/include" + SASL_LIBS="-L$with_cyrus_sasl/lib" + + dnl Do OS-specific hardcoding of SASL shared library path into executables, + dnl so user isn't forced to set environment variables like Solaris' + dnl LD_LIBRARY_PATH. + case "$target_os" in + solaris*) + SASL_LIBS="$SASL_LIBS -R$with_cyrus_sasl/lib" + ;; + esac + fi + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $SASL_LIBS" + AC_CHECK_LIB(sasl, sasl_client_new, + [SASL_LIBS="$SASL_LIBS -lsasl"], + [AC_MSG_ERROR(Cyrus SASL library not found)]) + LDFLAGS="$save_LDFLAGS" +fi +AC_SUBST(SASL_INCLUDES)dnl +AC_SUBST(SASL_LIBS)dnl + dnl --------------------- dnl CHECK TERMCAP LIBRARY dnl --------------------- @@ -537,7 +685,7 @@ if test $nmh_cv_decl_ospeed_include_defines = no; then fi 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) @@ -696,10 +844,8 @@ 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, \ + mts/Makefile mts/smtp/Makefile \ + etc/Makefile docs/Makefile man/Makefile, \ [test -z "$CONFIG_HEADERS" || echo > stamp-h]) dnl Umm, what's the point of these assignments?? -- @@ -708,20 +854,19 @@ eval "nmhsysconf=${sysconfdir}"; eval "nmhsysconf2=${nmhsysconf}" eval "nmhlib=${libdir}"; eval "nmhlib2=${nmhlib}" eval "nmhman=${mandir}" -pop_kinds="no" +pop_kinds=no if test x"$enable_pop" = x"yes"; then - pop_kinds="yes (pop" - if test x"$enable_apop" = x"yes"; then - pop_kinds="${pop_kinds} apop" - fi - if test x"$with_krb4" = x"yes"; then - pop_kinds="${pop_kinds} kpop" - fi - if test "$pop_kinds" = "yes (pop"; then - pop_kinds="yes" - else - pop_kinds="${pop_kinds})" - fi + pop_kinds="yes (" + + if test x"$enable_apop" = x"yes"; then + pop_kinds="${pop_kinds}APOP " + fi + + if test x"$with_krb4" != x -a x"$with_krb4" != x"no"; then + pop_kinds="${pop_kinds}KPOP " + fi + + pop_kinds="${pop_kinds}POP3)" fi echo " @@ -737,13 +882,13 @@ binary install path : ${nmhbin2} libary install path : ${nmhlib2} config files install path : ${nmhsysconf2} 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}" +pop is enabled : ${pop_kinds} +SASL support : ${sasl_support}" echo "" - - -