]> diplodocus.org Git - nmh/blobdiff - build_nmh
Replace GNUism with standard touch flag in test-scan-file.
[nmh] / build_nmh
index 49af380aa64d2b7c3051d62daf5cd906d374fba7..ef6037c10b8156c17f88e6bcbd57b15db7e244a6 100755 (executable)
--- a/build_nmh
+++ b/build_nmh
@@ -122,7 +122,7 @@ download_sources() {
     [ "$verbose" -eq 0 ]  &&  git_opts=--quiet
     [ "$branch" = master ]  ||
       git_opts="${git_opts:+$git_opts }--branch $branch"
-    if "$gitdir"/git clone --depth 1 $git_opts "git://$gitrepo/nmh.git" >&3
+    if "$gitdir"/git clone $git_opts "git://$gitrepo/nmh.git" >&3
     then
       directory=nmh
       cd "$directory"  ||  die "failed to clone $directory"
@@ -257,7 +257,7 @@ if install-mh -check >/dev/null 2>&1; then
     fi
   fi
 
-  if test -x "$mhbin/mhparam"; then
+  if test $yes -eq 1  -a  -x "$mhbin/mhparam"; then
     if mhparam sasl >/dev/null; then
       case `$mhbin/mhparam sasl` in
         *sasl*) config_sasl=y ;;
@@ -315,8 +315,16 @@ config_opts="--prefix=$config_prefix"
   config_opts="$config_opts --with-mts=$config_mts"
 [ "$config_smtpserver"  -a  "$config_smtpserver" != localhost ]  &&
   config_opts="$config_opts --with-smtpserver=$config_smtpserver"
-[ "$config_sasl" = y ]  &&  config_opts="$config_opts --with-cyrus-sasl"
-[ "$config_tls" = y ]  &&  config_opts="$config_opts --with-tls"
+if [ "$config_sasl" = y ]; then
+    config_opts="$config_opts --with-cyrus-sasl"
+elif [ "$config_sasl" != 'determined by configure' ]; then
+    config_opts="$config_opts --with-cyrus-sasl=no"
+fi
+if [ "$config_tls" = y ]; then
+    config_opts="$config_opts --with-tls"
+elif [ "$config_tls" != 'determined by configure' ]; then
+    config_opts="$config_opts --with-tls=no"
+fi
 
 #### dotlocking, the usual default, requires chgrp and chmod of inc.
 installpriv=
@@ -362,18 +370,26 @@ if [ -z "$CFLAGS" ]; then
   #### Only use these flags with gcc.
   if cc -dM -E - </dev/null 2>&1 | grep __GNUC__ >/dev/null; then
     #### configure will supply -g -O2 with gcc, but only if CFLAGS
-    #### isn't defined.
-    CFLAGS='-g -std=c99 -pedantic'
+    #### isn't defined.  Always add -g here.
+    #### Try all this, borrowed from Fedora 32 build.
+    CFLAGS="-g -std=c99 -pedantic -Wall -Werror=format-security \
+-Wp,-D_GLIBCXX_ASSERTIONS -fexceptions -fstack-protector-strong \
+-grecord-gcc-switches -fasynchronous-unwind-tables \
+-fstack-clash-protection -fcf-protection"
+    if ! cc -x c -c $CFLAGS /dev/null -o /dev/null 2>/dev/null; then
+        #### All that wasn't supported.  The following should be.
+        CFLAGS='-g -std=c99 -pedantic'
+    fi
     if [ "$config_debug" = n ]; then
-      CFLAGS="$CFLAGS -O2 -D_FORTIFY_SOURCE=2"
+      CFLAGS="$CFLAGS -O2 -Wp,-D_FORTIFY_SOURCE=2"
     else
       CFLAGS="$CFLAGS -O0"
     fi
   fi
 fi
 
-printf "\n./configure ${CFLAGS:+CFLAGS=\"${CFLAGS}\" }$config_opts\n"
-./configure ${CFLAGS:+CFLAGS="${CFLAGS}"" "}$config_opts
+printf "\n./configure $config_opts${CFLAGS:+ CFLAGS=\"${CFLAGS}\"}\n"
+./configure $config_opts ${CFLAGS:+CFLAGS="${CFLAGS}"}
 status=$?
 
 if [ $status -eq 0 ]; then