]> diplodocus.org Git - nmh/blobdiff - docs/contrib/build_nmh
Use ToLower() instead of loop.
[nmh] / docs / contrib / build_nmh
index f17b240fb1d2ffbc163190e1f4b8d7b4261fcb46..6a9ede8cebe2cb118791fd00d3ff291eb79560c9 100755 (executable)
 #   ncurses-devel
 #   cyrus-sasl-devel, if using sasl
 #   openssl-devel, if using TLS
 #   ncurses-devel
 #   cyrus-sasl-devel, if using sasl
 #   openssl-devel, if using TLS
+#   libcurl-devel, if using oauth
 #   autoconf and automake, with -s (see docs/README.developers for versions)
 #   rpm-build, with -r
 
 
 #   autoconf and automake, with -s (see docs/README.developers for versions)
 #   rpm-build, with -r
 
 
-####
-#### OS-specific setup.
-####
-ldd=ldd
-
 ####
 #### Interpret command arguments.
 ####
 ####
 #### Interpret command arguments.
 ####
@@ -109,6 +105,7 @@ config_mts=smtp
 config_smtpservers=localhost
 config_sasl=n
 config_tls=n
 config_smtpservers=localhost
 config_sasl=n
 config_tls=n
+config_oauth=n
 config_debug=n
 
 
 config_debug=n
 
 
@@ -124,6 +121,11 @@ finddir() {
   esac
 }
 
   esac
 }
 
+#### Figure out whether or not to use -n with tail.
+case `printf 'OK\n' | tail -n 1 2>&1` in
+  OK) tail='tail -n ' ;;
+  *)  tail='tail -' ;;
+esac
 
 if install-mh -check >/dev/null 2>&1; then
   # Determine config options from installed nmh.
 
 if install-mh -check >/dev/null 2>&1; then
   # Determine config options from installed nmh.
@@ -131,7 +133,7 @@ if install-mh -check >/dev/null 2>&1; then
 
   config_prefix=`cd $mhbin/.. && pwd`
 
 
   config_prefix=`cd $mhbin/.. && pwd`
 
-  mtsconf=`dirname "$mhbin"`/etc/mts.conf
+  mtsconf=`mhparam etcdir`/mts.conf
   if [ -f "$mtsconf" ]; then
     mts_entry=`grep '^mts:' "$mtsconf"`
     if [ "$mts_entry" ]; then
   if [ -f "$mtsconf" ]; then
     mts_entry=`grep '^mts:' "$mtsconf"`
     if [ "$mts_entry" ]; then
@@ -149,12 +151,25 @@ if install-mh -check >/dev/null 2>&1; then
     fi
   fi
 
     fi
   fi
 
-  if $ldd "$mhbin/inc" | grep sasl >/dev/null; then
-    config_sasl=y
-  fi
-
-  if $ldd "$mhbin/inc" | grep ssl >/dev/null; then
-    config_tls=y
+  if test -x "$mhbin/mhparam"; then
+    if mhparam sasl >/dev/null; then
+      case `$mhbin/mhparam sasl` in
+        *sasl*) config_sasl=y ;;
+      esac
+
+      case `$mhbin/mhparam tls` in
+        *tls*) config_tls=y ;;
+      esac
+
+      case `$mhbin/mhparam oauth` in
+        *oauth*) config_oauth=y ;;
+      esac
+    else
+      tput smso
+      echo "$0: SASL, TLS, and OAuth2 detection not supported with current nmh"
+      [ $yes -eq 1 ]  &&  echo "will not configure them in"
+      tput rmso
+    fi
   fi
 fi
 
   fi
 fi
 
@@ -197,6 +212,14 @@ if [ $yes -eq 0 ]; then
     config_tls=n
   fi
 
     config_tls=n
   fi
 
+  printf 'OAuth2 support [%s]: ' $config_oauth
+  read response
+  if [ "$response" = y  -o  "$response" = Y ]; then
+    config_oauth=y
+  elif [ "$response" = n  -o  "$response" = N ]; then
+    config_oauth=n
+  fi
+
   #### Don't confirm debug here:  obey the -d option to this script.
 fi
 
   #### Don't confirm debug here:  obey the -d option to this script.
 fi
 
@@ -213,13 +236,14 @@ config_opts="--prefix=$config_prefix"
   config_opts="$config_opts --with-cyrus-sasl"
 [ "$config_tls" = y ]  &&  \
   config_opts="$config_opts --with-tls"
   config_opts="$config_opts --with-cyrus-sasl"
 [ "$config_tls" = y ]  &&  \
   config_opts="$config_opts --with-tls"
+[ "$config_oauth" = y ]  &&  \
+  config_opts="$config_opts --with-oauth"
 [ $config_debug = y ]  &&  \
 [ $config_debug = y ]  &&  \
-  config_opts="$config_opts --enable-debug"
-
+  config_opts="$config_opts --enable-assert"
 
 #### dotlocking, the usual default, requires chgrp and chmod of inc.
 installpriv=
 
 #### dotlocking, the usual default, requires chgrp and chmod of inc.
 installpriv=
-if [ $install -ge 1  -a  `id -u` -ne 0 ]; then
+if [ $install -ge 1  -a  "$LOGNAME" != root ]; 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.'
   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.'
@@ -241,9 +265,7 @@ if [ -f Makefile ]; then
 fi
 
 /bin/rm -f "$logfile"
 fi
 
 /bin/rm -f "$logfile"
-if [ -f configure  -a  -f Makefile.in ]; then
-  :
-else
+if [ ! -f configure  -o  ! -f Makefile.in ]; then
   [ $verbose -ge 1 ]  &&  echo autoconfiguring . . .
   ./autogen.sh >>"$logfile" 2>&1
 fi
   [ $verbose -ge 1 ]  &&  echo autoconfiguring . . .
   ./autogen.sh >>"$logfile" 2>&1
 fi
@@ -253,8 +275,18 @@ fi
 #### Build.
 ####
 [ $verbose -ge 1 ]  &&  echo configuring . . .
 #### Build.
 ####
 [ $verbose -ge 1 ]  &&  echo configuring . . .
+if [ -z "$CFLAGS" ]; then
+  #### Only use these flags with gcc.
+  if cc -dM -E - </dev/null 2>&1 | egrep __GNUC__ >/dev/null; then
+    #### configure will supply -g -O2 with gcc, but only if CFLAGS
+    #### isn't defined.
+    CFLAGS='-g -O2 -ansi -pedantic'
+  fi
+fi
+
 echo ./configure $config_opts ${smtpservers:+"$smtpservers"} >>"$logfile" 2>&1
 echo ./configure $config_opts ${smtpservers:+"$smtpservers"} >>"$logfile" 2>&1
-./configure $config_opts ${smtpservers:+"$smtpservers"} >>"$logfile" 2>&1
+./configure CFLAGS="${CFLAGS}" \
+            $config_opts ${smtpservers:+"$smtpservers"} >>"$logfile" 2>&1
 status=$?
 
 if [ $status -eq 0 ]; then
 status=$?
 
 if [ $status -eq 0 ]; then
@@ -272,6 +304,13 @@ if [ $status -eq 0 ]; then
       fi
    fi
 
       fi
    fi
 
+    if [ -n "$CFLAGS" ]; then
+        #### Pass DISTCHECK_CONFIGURE_FLAGS through an environment
+        #### variable to avoid automake's quoting.
+        DISTCHECK_CONFIGURE_FLAGS="CFLAGS='${CFLAGS}'"
+        export DISTCHECK_CONFIGURE_FLAGS
+    fi
+
     [ $verbose -ge 1 ]  &&  echo testing . . .
     checkoutput=`make $check AM_COLOR_TESTS=always 2>>"$logfile"`
     status=$?
     [ $verbose -ge 1 ]  &&  echo testing . . .
     checkoutput=`make $check AM_COLOR_TESTS=always 2>>"$logfile"`
     status=$?
@@ -288,7 +327,7 @@ if [ $status -eq 0 ]; then
       echo "$tests_summary" >>"$logfile"
       echo '===================' >>"$logfile"
       [ "$check" = distcheck ]  &&  \
       echo "$tests_summary" >>"$logfile"
       echo '===================' >>"$logfile"
       [ "$check" = distcheck ]  &&  \
-        echo "$checkoutput" | tail -n 4 >>"$logfile"
+        echo "$checkoutput" | ${tail}4 >>"$logfile"
     fi
 
     if [ $status -eq 0 ]; then
     fi
 
     if [ $status -eq 0 ]; then
@@ -307,12 +346,14 @@ if [ $status -eq 0 ]; then
   fi
 fi
 
   fi
 fi
 
-grep 'Error' "$logfile"
-grep 'warn' "$logfile"
-if [ $status -ne 0 ]; then
+grep Error "$logfile"
+grep warn "$logfile"
+
+if [ $status -eq 0 ]; then
+  [ $verbose -ge 1 ]  &&  echo build completed successfully
+else
   echo build failed!
   echo build log is in "$logfile"
 fi
   echo build failed!
   echo build log is in "$logfile"
 fi
-[ $status -eq 0  -a  $verbose -ge 1 ]  &&  echo build completed successfully
 
 exit $status
 
 exit $status