Replaced compiled mhmail with script that was formerly named mhmail.in.
[mmh] / docs / contrib / build_nmh
index 344815d..335e042 100755 (executable)
 ####
 which=which
 ldd=ldd
-locking=dot
-
-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.
@@ -122,21 +103,10 @@ 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  -a  "$OSTYPE" != cygwin ]; 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
@@ -160,7 +130,7 @@ if install-mh -check >/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"
@@ -199,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"
 
@@ -207,9 +177,7 @@ if [ $yes -eq 0 ]; then
   read mts
   [ "$mts" ]  &&  config_mts="$mts"
 
-  if [ "$mts"  -o  "$mts" = smtp ]; then
-    :
-  else
+  if [ "$config_mts" = smtp ]; then
     printf 'SMTP server(s), space separated [%s]: ' $config_smtpservers
     read response
     servers=`echo $response | sed -e 's/ /\\\ /g'`
@@ -264,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.
 ####
@@ -299,6 +278,15 @@ if [ $status -eq 0 ]; then
   status=$?
 
   if [ $status -eq 0 ]; then
+    if [ "${TESTS_SHELL}"x = x ]; then
+      #### Bonus:  use heirloom shell to test, if available, and if
+      #### TESTS_SHELL hadn't already been set.
+      heirloom_shell=/usr/lib/heirloom/5bin/sh
+      if [ -x "${heirloom_shell}" ]; then
+        TESTS_SHELL="${heirloom_shell}"; export TESTS_SHELL
+      fi
+   fi
+
     [ $verbose -ge 1 ]  &&  echo testing . . .
     checkoutput=`make $check 2>>$logfile`
     status=$?
@@ -330,7 +318,10 @@ fi
 
 grep 'Error' $logfile
 grep 'warn' $logfile
-[ $status -ne 0 ]  &&  echo build failed!
+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