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 5b9a23f..8da9a4c 100644 (file)
@@ -981,7 +981,7 @@ EOF
       my $objs = join(" ", map { $_.$objext } @{$args{objs}});
       return <<"EOF";
 $lib$libext: $objs
       my $objs = join(" ", map { $_.$objext } @{$args{objs}});
       return <<"EOF";
 $lib$libext: $objs
-       \$(AR) \$\@ $objs
+       \$(AR) \$\@ \$\?
        \$(RANLIB) \$\@ || echo Never mind.
 EOF
   }
        \$(RANLIB) \$\@ || echo Never mind.
 EOF
   }
index 00149c3..b4672ab 100644 (file)
@@ -404,7 +404,7 @@ EOF
      return <<"EOF";
 $lib$libext: $deps
        \$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<<
      return <<"EOF";
 $lib$libext: $deps
        \$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<<
-$objs
+\$\?
 <<
 EOF
  }
 <<
 EOF
  }