updated manpage's Makefile and modified the way configure tests to see whether
[mmh] / configure.in
index 14690b6..5bf050c 100644 (file)
@@ -171,6 +171,21 @@ 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
 AC_PATH_PROG(morepath, more, no, [$pathtmp])
@@ -231,34 +246,35 @@ 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 -dl $mailspool | $cutpath -c9`" = "-"; then
+  [if test "`$lspath -dlL $mailspool | $cutpath -c9`" = "-"; then
     nmh_cv_mailspool_world_writable=no
   else
     nmh_cv_mailspool_world_writable=yes
   fi])
 fi
 
-dnl see if we can determine which group owns the mail spool dir
-undefine([nmh_grp_mailspool])dnl
-AC_CACHE_CHECK(what group owns the mail spool, nmh_group_mailspool,
-[ nmh_group_mailspool=`ls -lgd $mailspool | awk '{print $4}'`
-  if test x$nmh_group_mailspool = xmail; then
-    MAILGROUP="mail"
-  elif test x$nmh_group_mailspool = xwheel; then
-    MAILGROUP="wheel"
-  else
-    MAILGROUP="'0'"
-  fi])
-AC_SUBST(MAILGROUP)
-
-dnl ...If it's not, we need to #define MAILGROUP to 1 and make inc setgid mail.
-if test "$nmh_cv_mailspool_world_writable" = "no"; then
-dnl do we really need both of these?
+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 do we really need both of these?
   AC_DEFINE(MAILGROUP)
   SETGID_MAIL=1
 fi
 AC_SUBST(SETGID_MAIL)dnl
 
+dnl see if we can determine which group owns the mail spool dir
+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}'`
+ dnl Should we just set it to whatever ls reports, rather than only allowing
+ dnl certain values...?
+ if test x$nmh_cv_ls_mail_grp = xmail; then
+   MAIL_SPOOL_GRP="mail"
+ elif test x$nmh_cv_ls_mail_grp = xwheel; then
+   MAIL_SPOOL_GRP="wheel"
+ else
+   MAIL_SPOOL_GRP="'0'"
+ fi])
+AC_SUBST(MAIL_SPOOL_GRP)dnl
+
 dnl ------------------
 dnl CHECK HEADER FILES
 dnl ------------------
@@ -272,6 +288,7 @@ AC_CHECK_HEADERS(string.h memory.h stdlib.h unistd.h errno.h fcntl.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 <sys/types.h>
 #include <unistd.h>
@@ -305,6 +322,15 @@ if test $nmh_cv_header_termios_h_tiocgwinsz = no; then
   fi
 fi
  
+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) ]) ]) 
+
 AC_CHECK_HEADER([sys/ptem.h], AC_DEFINE(WINSIZE_IN_PTEM))
 
 dnl ---------------
@@ -560,9 +586,6 @@ case "$target_os" in
     AC_DEFINE(BIND)
     AC_DEFINE(BSD42)
     ;;
-  linux*)
-    AC_DEFINE(LINUX_STDIO)
-    ;;
   freebsd*)  
     AC_DEFINE(BIND)
     AC_DEFINE(BSD42)