Changed remaining uses of MAXPATHLEN to PATH_MAX.
[mmh] / docs / contrib / build_nmh
index cc83974..e367da5 100755 (executable)
 ####
 which=which
 ldd=ldd
-locking=
-
-os=${OSTYPE:-`uname -s`}
-#### It'd be nice to have configure decide what locking style to use.
-#### In the meantime, select it manually.  To determine what style
-#### locking your system uses by default, try something like this,
-#### assuming that strace is installed:
-####   $ echo test | strace -o /tmp/mail.strace mail -s test $LOGNAME
-#### Then look in /tmp/mail.strace for fcntl, flock, and lockf system
-#### calls and opens of dot files in the mail spool.
-#### These might help but are old:
-####   https://bugzilla.mozilla.org/show_bug.cgi?id=239013#c9
-####   http://www.jwz.org/doc/movemail.html
-case "$os" in
-  aix) locking=fcntl ;;
-  freebsd*) locking=flock ;;
-  linux* ) locking=fcntl ;;
-esac
-
 
 ####
 #### Interpret command arguments.
@@ -110,7 +91,9 @@ if [ $# -gt 0 ]; then
 fi
 
 #### Check to see that we're in a nmh source directory.
-if ! grep 'the authors of nmh' COPYRIGHT >/dev/null; then
+if grep 'the authors of nmh' COPYRIGHT >/dev/null; then
+  :
+else
   echo "$0: not in nmh source directory"
   exit 1
 fi
@@ -120,30 +103,24 @@ fi
 #### spaces (currently just smtpservers) specially.
 ####
 
-#### dotlocking, the usual default, requires chgrp and chmod of inc.
-installpriv=
-if [ $install -ge 1  -a  `id -u` -ne 0 ]; then
-  if [ "x$locking" = x  -o  "$locking" = dot ]; then
-    echo "$0: "'install requires chgrp and chmod 2755'
-    echo 'so will sudo to install.  Terminate with Ctrl-C if unacceptable.'
-    installpriv=sudo
-  fi
-fi
-
-
 #### Here are the config options that we will try to detect, then
 #### confirm, and finally set.
 config_prefix=/usr/local/nmh
-config_locking="$locking"
+config_locking=
 config_mts=smtp
 config_smtpservers=localhost
 config_sasl=n
 config_tls=n
 config_editor=vi
-config_pager=more
+for i in more less most cat; do
+  if which $i >/dev/null 2>&1; then
+    config_pager=$i
+    break
+  fi
+done
 config_debug=n
 
-if mhparam >/dev/null 2>&1; then
+if install-mh -check >/dev/null 2>&1; then
   # Determine config options from installed nmh.
   mhparam=`which mhparam`
   mhbin=`dirname "$mhparam"`
@@ -153,7 +130,7 @@ if mhparam >/dev/null 2>&1; then
   mtsconf=`dirname "$mhbin"`/etc/mts.conf
   if [ -f "$mtsconf" ]; then
     mts_entry=`grep '^mts:' $mtsconf`
-    if [ "mts_entry" ]; then
+    if [ "$mts_entry" ]; then
       mts=`echo $mts_entry | sed -e 's/^mts: *//'`
       if [ "$mts"  -a  "$mts" != smtp ]; then
         config_mts="$mts"
@@ -192,7 +169,7 @@ if [ $yes -eq 0 ]; then
   read prefix
   [ "$prefix" ]  &&  config_prefix="$prefix"
 
-  printf 'Locking type (dot|fcntl|flock|lockf) [%s]: ' $config_locking
+  printf 'Locking type (dot|fcntl|flock|lockf) [determined by configure]: '
   read locking
   [ "$locking" ]  &&  config_locking="$locking"
 
@@ -200,7 +177,7 @@ if [ $yes -eq 0 ]; then
   read mts
   [ "$mts" ]  &&  config_mts="$mts"
 
-  if [ ! "$mts"  -o  "$mts" = smtp ]; then
+  if [ "$config_mts" = smtp ]; then
     printf 'SMTP server(s), space separated [%s]: ' $config_smtpservers
     read response
     servers=`echo $response | sed -e 's/ /\\\ /g'`
@@ -255,6 +232,17 @@ config_opts="--prefix=$config_prefix"
   config_opts="$config_opts --enable-debug"
 
 
+#### dotlocking, the usual default, requires chgrp and chmod of inc.
+installpriv=
+if [ $install -ge 1  -a  `id -u` -ne 0 ]; then
+  if [ "$config_locking" = dot ]; then
+    echo "$0: "'install requires chgrp and chmod 2755'
+    echo 'so will sudo to install.  Terminate with Ctrl-C if unacceptable.'
+    installpriv=sudo
+  fi
+fi
+
+
 ####
 #### Clean up, and set up with autoconfig if necessary.
 ####
@@ -291,7 +279,7 @@ if [ $status -eq 0 ]; then
 
   if [ $status -eq 0 ]; then
     [ $verbose -ge 1 ]  &&  echo testing . . .
-    checkoutput=`make $check SETGID_MAIL= 2>>$logfile`
+    checkoutput=`make $check 2>>$logfile`
     status=$?
 
     tests_summary=`echo "$checkoutput" | grep tests`
@@ -319,8 +307,12 @@ if [ $status -eq 0 ]; then
   fi
 fi
 
-grep -E 'Error|warn' $logfile
-[ $status -ne 0 ]  &&  echo build failed!
+grep 'Error' $logfile
+grep 'warn' $logfile
+if [ $status -ne 0 ]; then
+  echo build failed!
+  echo build log is in $logfile
+fi
 [ $status -eq 0  -a  $verbose -ge 1 ]  &&  echo build completed successfully
 
 exit $status