we're grownups now. don't care about stupid OS'es that don't know what an
[apps/madmutt.git] / configure.in
index 6d22bdd..705402d 100644 (file)
@@ -7,9 +7,11 @@ AC_PREREQ([2.50])
 AC_INIT([mutt.h])
 AM_CONFIG_HEADER(config.h)
 
-mutt_cv_version=`cat $srcdir/VERSION`
+mutt_cv_version=`cat "$srcdir/VERSION.in"`
 
 AM_INIT_AUTOMAKE(muttng, $mutt_cv_version)
+AC_SUBST([CONFIGURE_DEPENDENCIES], ['$(top_srcdir)/VERSION.in'])
+
 dnl AC_GNU_SOURCE
 
 ifdef([AC_LIBOBJ], , [define([AC_LIBOBJ], [LIB[]OBJS="$LIBOBJS $1.o"])])
@@ -42,6 +44,8 @@ AC_C_INLINE
 AC_C_CONST
 
 AC_SYS_LARGEFILE
+AC_FUNC_FSEEKO
+AC_CHECK_SIZEOF(off_t)
 
 AC_PATH_PROG(DBX, dbx, no)
 AC_PATH_PROG(GDB, gdb, no)
@@ -246,7 +250,7 @@ main ()
 
        AC_CHECK_FUNC(initscr,,[
        cf_ncurses="ncurses"
-       for lib in ncurses ncursesw
+       for lib in ncursesw ncurses
        do
                AC_CHECK_LIB($lib, waddnwstr, [cf_ncurses="$lib"; break])
        done
@@ -257,6 +261,7 @@ main ()
                 fi
                
                 if test "$cf_ncurses" = ncursesw; then
+                       AC_CHECK_HEADERS(ncurses/ncurses.h,[cf_cv_ncurses_header="ncurses/ncurses.h"])
                        AC_CHECK_HEADERS(ncursesw/ncurses.h,[cf_cv_ncurses_header="ncursesw/ncurses.h"])
                else
                        AC_CHECK_HEADERS(ncurses.h,[cf_cv_ncurses_header="ncurses.h"])
@@ -322,7 +327,7 @@ dnl AC_CHECK_TYPE(ssize_t, int)
 
 AC_CHECK_FUNCS(fgetpos memmove setegid srand48 strerror)
 
-AC_REPLACE_FUNCS(strcasecmp strdup)
+AC_REPLACE_FUNCS(strcasecmp strdup setenv)
 
 AC_CHECK_FUNC(getopt)
 if test $ac_cv_func_getopt = yes; then
@@ -459,7 +464,7 @@ AC_SUBST(DOTLOCK_TARGET)
 AC_MSG_CHECKING(where to put the documentation)
 AC_ARG_WITH(docdir, AC_HELP_STRING([--with-docdir=PATH], [Specify where to put the documentation]),
         [mutt_cv_docdir=$withval],
-        [mutt_cv_docdir="$mutt_cv_prefix/doc/muttng"])
+        [mutt_cv_docdir="${prefix}/doc/muttng"])
 AC_MSG_RESULT($mutt_cv_docdir)
 
 docdir=$mutt_cv_docdir
@@ -477,7 +482,9 @@ AC_SUBST(DOTLOCK_PERMISSION)
 
 AC_ARG_WITH(domain, AC_HELP_STRING([--with-domain=DOMAIN], [Specify your DNS domain name]),
         [if test $withval != yes; then
-                AC_DEFINE_UNQUOTED(DOMAIN,"$withval",[ Define your domain name. ])
+         if test $withval != no; then
+           AC_DEFINE_UNQUOTED(DOMAIN,"$withval",[ Define your domain name. ])
+         fi
         fi])
 
 need_socket="no"
@@ -510,7 +517,7 @@ AM_CONDITIONAL(BUILD_IMAP, test x$need_imap = xyes)
 
 AC_ARG_ENABLE(nntp, [  --enable-nntp              Enable NNTP support],
 [      if test x$enableval = xyes ; then
-               AC_DEFINE(USE_NNTP)
+               AC_DEFINE(USE_NNTP,1,[ Compiling with newsreading support with NNTP ])
                 LIBNNTP="-Lnntp -lnntp"
                 LIBNNTPDEPS="\$(top_srcdir)/nntp/nntp.h nntp/libnntp.a"
                 need_nntp="yes"
@@ -595,31 +602,6 @@ AC_ARG_WITH(ssl, AC_HELP_STRING([--with-ssl[=PFX]], [Compile in SSL support for
 
         fi
 ])
-AM_CONDITIONAL(USE_SSL, test x$need_ssl = xyes)
-
-dnl SSL support via NSS
-AC_ARG_WITH(nss, AC_HELP_STRING([--with-nss[=PFX]], [Compile in SSL support for POP/IMAP via NSS]),
-[       if test "$with_nss" != no
-        then
-          if test "$need_socket" != "yes"; then
-           AC_MSG_ERROR([SSL support is only useful with POP or IMAP support])
-          fi
-
-          if test "$with_nss" != "yes"
-          then
-           LDFLAGS="$LDFLAGS -L$withval/lib"
-           CPPFLAGS="$CPPFLAGS -I$withval/include -I$withval/public/security"
-          fi
-
-          AC_DEFINE(USE_NSS,1,[ Define if you want support for SSL via the NSS library. ])
-          MUTTLIBS="$MUTTLIBS -lssl -lnss -lcertdb -lcerthi -lcryptohi"
-          MUTTLIBS="$MUTTLIBS -lpk11wrap -lsoftoken -lsecutil -ldbm -lplds4 -lplc4 -lfreebl"
-          MUTTLIBS="$MUTTLIBS -lnspr4"
-
-          MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_ssl_nss.o"
-          need_ssl=yes
-        fi
-])
 
 AC_ARG_WITH([gnutls], AC_HELP_STRING([--with-gnutls[=PFX]], [Enable SSL support using gnutls]),
     [gnutls_prefix="$withval"], [gnutls_prefix="no"])
@@ -629,6 +611,10 @@ then
   then
     AC_MSG_ERROR([SSL support is only useful with POP or IMAP support])
   fi
+  if test x"$need_ssl" = x"yes"
+  then
+    AC_MSG_ERROR([Only either OpenSSL or GNUTLS may be used])
+  fi
   MUTT_AM_PATH_GNUTLS([$gnutls_prefix],
     [dnl GNUTLS found
     CPPFLAGS="$CPPFLAGS $LIBGNUTLS_CFLAGS"
@@ -642,35 +628,7 @@ then
     ])
 fi
 
-AC_ARG_WITH(sasl, AC_HELP_STRING([--with-sasl[=PFX]], [Use Cyrus SASL library for POP/IMAP authentication]),
-        [
-        if test "$with_sasl" != "no" -a "$need_imap" != "yes" -a "$need_pop" != "yes"
-        then
-          AC_MSG_ERROR([SASL support is only useful with POP or IMAP support])
-        fi
-
-        if test "$with_sasl" != "no"
-        then
-          if test "$with_sasl" != "yes"
-          then
-            CPPFLAGS="$CPPFLAGS -I$with_sasl/include"
-            LDFLAGS="$LDFLAGS -L$with_sasl/lib"
-          fi
-
-          saved_LIBS="$LIBS"
-
-          AC_CHECK_LIB(sasl, sasl_client_init,,
-            AC_MSG_ERROR([could not find libsasl]),)
-
-          MUTT_LIB_OBJECTS="$MUTT_LIB_OBJECTS mutt_sasl.o"
-          MUTTLIBS="$MUTTLIBS -lsasl"
-          LIBS="$saved_LIBS"
-          AC_DEFINE(USE_SASL,1,
-                  [ Define if want to use the Cyrus SASL library for POP/IMAP authentication. ])
-          need_sasl=yes
-        fi
-        ])
-AM_CONDITIONAL(USE_SASL, test x$need_sasl = xyes)
+AM_CONDITIONAL(USE_SSL, test x$need_ssl = xyes)
 
 AC_ARG_WITH(sasl2, AC_HELP_STRING([--with-sasl2[=PFX]], [Use Cyrus SASL library version 2 for POP/IMAP authentication]),
         [
@@ -696,8 +654,6 @@ AC_ARG_WITH(sasl2, AC_HELP_STRING([--with-sasl2[=PFX]], [Use Cyrus SASL library
           MUTTLIBS="$MUTTLIBS -lsasl2"
           LIBS="$saved_LIBS"
           AC_DEFINE(USE_SASL,1,
-                  [ Define if want to use the Cyrus SASL library for POP/IMAP authentication. ])
-          AC_DEFINE(USE_SASL2,1,
                   [ Define if want to use version 2 of the Cyrus SASL library. ])
           need_sasl=yes
         fi
@@ -743,11 +699,20 @@ if test $mutt_cv_fcntl = yes; then
         AC_DEFINE(USE_FCNTL,1, [ Define to use fcntl() to lock folders. ])
 fi
 
+AC_MSG_CHECKING(whether struct dirent defines d_ino)
+ac_cv_dirent_d_ino=no
+AC_TRY_LINK([#include <dirent.h>],[struct dirent dp; (void)dp.d_ino],[ac_cv_dirent_d_ino=yes])
+if test x$ac_cv_dirent_d_ino = xyes ; then
+  AC_DEFINE(HAVE_DIRENT_D_INO,1,
+            [Define to 1 if your system has the dirent::d_ino member])
+fi
+AC_MSG_RESULT($ac_cv_dirent_d_ino)
+
 dnl This may look cumbersome -- please keep it that way, so we can
 dnl quickly change the default to "yes" again.
 mutt_cv_inodesort=no
 AC_ARG_ENABLE(inodesort,  AC_HELP_STRING([--enable-inodesort], [Read files in maildir folders sorted by inode.]),
-       [if test x$enableval = xyes ; then mutt_cv_inodesort=yes; fi])
+       [if test x$enableval = xyes -a x$ac_cv_dirent_d_ino = xyes ; then mutt_cv_inodesort=yes; fi])
 
 if test $mutt_cv_inodesort = yes; then
        AC_DEFINE(USE_INODESORT, 1, [ Define to sort files in a maildir by inode number. ])
@@ -783,7 +748,7 @@ AC_ARG_ENABLE(mailtool, AC_HELP_STRING([--enable-mailtool], [Enable Sun mailtool
 
 AC_ARG_ENABLE(compressed, [  --enable-compressed        Enable compressed folders support ],
         [if test x$enableval = xyes; then
-                AC_DEFINE(USE_COMPRESSED)
+                AC_DEFINE(USE_COMPRESSED,1,[ The compressed mailboxes support ])
         fi])
 
 AC_ARG_ENABLE(locales-fix, AC_HELP_STRING([--enable-locales-fix], [The result of isprint() is unreliable ]),
@@ -892,7 +857,7 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
                                 break
                             ])
                         done
-                        test x$ac_dbcreate = xyes && break
+                        test x$ac_cv_dbcreate = xyes && break
                     fi
                 fi
             done
@@ -918,7 +883,7 @@ AC_ARG_ENABLE(hcache, AC_HELP_STRING([--enable-hcache], [Enable header caching])
         LIBS="$OLDLIBS -L$BDB_LIB_DIR -l$BDB_LIB"
         AC_DEFINE(HAVE_DB4, 1, [Sleepycat DB4 Support])
     else
-        AC_MSG_ERROR(You need QDBM, GDBM or Sleepycat DB4 for --enable-hcache)
+        AC_MSG_ERROR([You need one of: QDBM, GDBM or Sleepycat DB4 for --enable-hcache])
     fi
 fi])
 dnl -- end cache --
@@ -1147,33 +1112,68 @@ fi
 dnl -- end libesmtp --
 
 dnl -- sgml tools --
-AC_MSG_CHECKING([for SGML Tools style])
-SGML2TXT_CMD="true"
-SGML2PS_CMD="true"
-SGML2HTML_CMD="true"
-case "`uname -s`" in
-  FreeBSD)
-    SGML2TXT_CMD="sgmlfmt -f ascii manual.sgml && uniq < manual.ascii | expand > manual.txt && rm -rf manual.ascii || true"
-    SGML2PS_CMD="sgmlfmt -f ps manual.sgml || true"
-    SGML2HTML_CMD="sgmlfmt -f html manual.sgml || true"
-    AC_MSG_RESULT(FreeBSD)
+
+dnl Documentation tools
+have_openjade="no"
+AC_PATH_PROG([OSPCAT], [ospcat], [none])
+if test "$OSPCAT" != "none"
+then
+  AC_MSG_CHECKING([for openjade docbook stylesheets])
+  dslosfile=`ospcat --public-id="-//Norman Walsh//DOCUMENT DocBook Print Stylesheet//EN"`
+  DSLROOT=`echo $dslosfile | sed -n -e "s/.*SOIBASE='\(@<:@^'@:>@*\)\/catalog'.*/\1/p"`
+  # ospcat may spit out an absolute path without an SOIBASE
+  if test -z "$DSLROOT"
+  then
+    DSLROOT=`echo $dslosfile | sed -e 's|<OSFILE>\(.*\)/print/docbook.dsl|\1|'`
+  fi
+  if test -f $DSLROOT/print/docbook.dsl
+  then
+    AC_MSG_RESULT([in $DSLROOT])
+    have_openjade="yes"
+  else
+    AC_MSG_RESULT([not found: PDF documentation will not be built.])
+  fi
+fi
+AC_SUBST(DSLROOT)
+
+AC_MSG_CHECKING([for lynx])
+AC_PATH_PROG([HTML2TXT_CMD], [lynx], [none])
+if test x"$HTML2TXT_CMD" = x"none"
+then
+  AC_MSG_CHECKING([for w3m])
+  AC_PATH_PROG([HTML2TXT_CMD], [w3m], [none])
+fi
+if test x"$HTML2TXT_CMD" = x"none"
+then
+  AC_MSG_CHECKING([for elinks])
+  AC_PATH_PROG([HTML2TXT_CMD], [elinks], [none])
+fi
+case "$HTML2TXT_CMD" in
+  *elinks*)
+    HTML2TXT_CMD="$HTML2TXT_CMD -dump -no-numbering -no-references \$^ > \$@"
+    ;;
+  *lynx*)
+    HTML2TXT_CMD="$HTML2TXT_CMD -dump -nolist -with_backspaces \$^ > \$@"
     ;;
-  SunOS)
-    SGML2TXT_CMD="sgml2txt manual || true"
-    SGML2PS_CMD="sgml2latex -p manual || true"
-    SGML2HTML_CMD="sgml2html manual || true"
-    AC_MSG_RESULT(Solaris)
+  *w3m*)
+    HTML2TXT_CMD="$HTML2TXT_CMD -dump \$^ > \$@"
     ;;
   *)
-    SGML2TXT_CMD="if linuxdoc -B txt --pass='-P -c' manual ; then uniq < manual.txt | expand > _manual.txt ; rm manual.txt ; col -b < _manual.txt > manual.txt ; rm -rf _manual.txt ; fi || true"
-    SGML2PS_CMD="sgml2latex --output=ps manual || true"
-    SGML2HTML_CMD="sgml2html manual || true"
-    AC_MSG_RESULT(Linux (default))
+    HTML2TXT_CMD="true"
     ;;
 esac
-AC_SUBST(SGML2TXT_CMD)
-AC_SUBST(SGML2PS_CMD)
-AC_SUBST(SGML2HTML_CMD)
+AC_SUBST(HTML2TXT_CMD)
+
+AC_MSG_CHECKING([for tidy])
+AC_PATH_PROG([HTMLCLEAN_CMD], [tidy], [none])
+
+if test x"$HTMLCLEAN_CMD" != x"none"
+then
+  HTMLCLEAN_CMD="$HTMLCLEAN_CMD -q -i -m -asxml -utf8 "
+else
+  HTMLCLEAN_CMD="echo "
+fi
+AC_SUBST(HTMLCLEAN_CMD)
 
 AC_OUTPUT(Makefile intl/Makefile m4/Makefile
         po/Makefile.in doc/Makefile contrib/Makefile