Makefile et al template: only modify static library with new object files
authorRichard Levitte <levitte@openssl.org>
Sun, 3 Apr 2016 12:11:12 +0000 (14:11 +0200)
committerRichard Levitte <levitte@openssl.org>
Sun, 3 Apr 2016 22:24:58 +0000 (00:24 +0200)
Previously, we updated the static libraries (libcrypto.a on Unix,
libcrypto.lib on Windows) with all the object files, regardless of if
they were rebuilt or not.  With this change, we only update them with
the object files were rebuilt.

NOTE: this does not apply on VMS, as the expansion of $? may be too
large for a command line.

Reviewed-by: Andy Polyakov <appro@openssl.org>
Configurations/unix-Makefile.tmpl
Configurations/windows-makefile.tmpl

index 5b9a23fd6da401ce65ed62f9c3576c4220c92615..8da9a4cf7921bb1686b22c1816ba44754480fe62 100644 (file)
@@ -981,7 +981,7 @@ EOF
       my $objs = join(" ", map { $_.$objext } @{$args{objs}});
       return <<"EOF";
 $lib$libext: $objs
-       \$(AR) \$\@ $objs
+       \$(AR) \$\@ \$\?
        \$(RANLIB) \$\@ || echo Never mind.
 EOF
   }
index 00149c3b676864ebe4cf45562fa5b90c41a45182..b4672ab791cafb50a8b4a43e0f40383e241237d6 100644 (file)
@@ -404,7 +404,7 @@ EOF
      return <<"EOF";
 $lib$libext: $deps
        \$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<<
-$objs
+\$\?
 <<
 EOF
  }