domd: Preserve Makefile time when it is unchanged
authorOrgad Shaneh <orgads@gmail.com>
Mon, 19 Sep 2016 12:12:08 +0000 (15:12 +0300)
committerOrgad Shaneh <orgads@gmail.com>
Wed, 16 Nov 2016 07:08:27 +0000 (09:08 +0200)
also on systems with makedepend that does not report its version, or that
its version does not contain "gcc" or "clang".

Some versions of makedepends just overwrite Makefile. Preserve the
timestamp of the previous Makefile, and copy it back if it is unchanged.

Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/1370)

util/domd

index 3ac4950c4293658b82993cc93fb55fffb6b4ffe8..bc2a85f7dd5076331c5fbad31bd8ed244498d40d 100755 (executable)
--- a/util/domd
+++ b/util/domd
@@ -11,7 +11,9 @@ if [ "$1" = "-MD" ]; then
 fi
 if [ "$MAKEDEPEND" = "" ]; then MAKEDEPEND=makedepend; fi
 
-cp Makefile Makefile.save
+# Preserve Makefile timestamp by moving instead of copying (cp -p is GNU only)
+mv Makefile Makefile.save
+cp Makefile.save Makefile
 # fake the presence of Kerberos
 touch $TOP/krb5.h
 if ${MAKEDEPEND} --version 2>&1 | grep "clang" > /dev/null ||
@@ -32,9 +34,10 @@ else
     ${PERL} $TOP/util/clean-depend.pl < Makefile > Makefile.new
     RC=$?
 fi
-if ! cmp -s Makefile Makefile.new; then
+if ! cmp -s Makefile.save Makefile.new; then
     mv Makefile.new Makefile
 else
+    mv Makefile.save Makefile
     rm -f Makefile.new
 fi
 # unfake the presence of Kerberos