[openssl-commits] [openssl] master update

Richard Levitte levitte at openssl.org
Sun Feb 21 19:23:27 UTC 2016


The branch master has been updated
       via  f8d9d6e48b7ce50aee32d151e5dc7253594e01ed (commit)
      from  380f047707de4f8c22eeaec63f481d4734efe7a5 (commit)


- Log -----------------------------------------------------------------
commit f8d9d6e48b7ce50aee32d151e5dc7253594e01ed
Author: Richard Levitte <levitte at openssl.org>
Date:   Sun Feb 21 16:09:36 2016 +0100

    Check that any dependency file is newer than Makefile before concatenating
    
    On slower file systems, this makes a huge difference
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>

-----------------------------------------------------------------------

Summary of changes:
 Configurations/unix-Makefile.tmpl | 38 ++++++++++++++++++++++++++++++--------
 1 file changed, 30 insertions(+), 8 deletions(-)

diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl
index 47608f7..b591c4d 100644
--- a/Configurations/unix-Makefile.tmpl
+++ b/Configurations/unix-Makefile.tmpl
@@ -249,17 +249,39 @@ clean: libclean
 	rm -f $(TARFILE)
 
 # This exists solely for those who still type 'make depend'
+#
+# We check if any depfile is newer than Makefile and decide to
+# concatenate only if that is true, or if 'test' (a.k.a [ )
+# doesn't have the option to figure it out (-nt).
+#
+# To check if test has the file age comparison operator, we
+# simply try, and rely test to exit with 0 if the comparison
+# was true, 1 if false, and most importantly, 2 if it doesn't
+# recognise the operator.
 depend:
-	@( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \
-	  echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \
-	  echo; \
+	@catdepends=false; \
+	if [ Makefile -nt Makefile ] 2>/dev/null || [ $$? = 1 ]; then \
 	  for d in $(DEPS); do \
-	    if [ -f $$d ]; then cat $$d; fi; \
-	  done ) > Makefile.new
-	@if ! cmp Makefile.new Makefile >/dev/null 2>&1; then \
-		mv -f Makefile.new Makefile; \
+	    if [ $$d -nt Makefile ]; then \
+	      catdepends=true; \
+	      break; \
+	    fi; \
+	  done; \
 	else \
-		rm -f Makefile.new; \
+	  catdepends=true; \
+	fi; \
+	if [ $$catdepends = true ]; then \
+	  ( sed -e '/^# DO NOT DELETE THIS LINE.*/,$$d' < Makefile; \
+	    echo '# DO NOT DELETE THIS LINE -- make depend depends on it.'; \
+	    echo; \
+	    for d in $(DEPS); do \
+	      if [ -f $$d ]; then cat $$d; fi; \
+	    done ) > Makefile.new; \
+	  if ! cmp Makefile.new Makefile >/dev/null 2>&1; then \
+	    mv -f Makefile.new Makefile; \
+	  else \
+	    rm -f Makefile.new; \
+	  fi; \
 	fi
 
 # Install helper targets #############################################


More information about the openssl-commits mailing list