Problem with Microsoft lib.exe is that it doesn't *update* modules
in .lib archive, but creates new one upon every invocation. As result
if a source file was updated and nmake was executed, a useless archive
with only one module was created. In other words one has to always
pass all .obj modules on command line, not only recently recompiled.
[This also creates dilemma for directory targets, e.g. crypto\aes,
that were added to simplify every-day life for developer. Since
whole idea behind those targets is to minimize the re-compile time
upon single file modification, the only sensible thing to do is to
omit intended library update.]
Reviewed-by: Rich Salz <rsalz@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
return <<"EOF";
$lib$libext: $deps
\$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<<
-\$\?
+\$**
<<
EOF
}
next unless defined($unified_info{dirinfo}->{$dir}->{products}->{$type});
if ($type eq "lib") {
foreach my $lib (@{$unified_info{dirinfo}->{$dir}->{products}->{$type}}) {
- push @actions, <<"EOF";
- \$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<<
-\$\?
-<<
-EOF
+ push @actions, "";
}
} else {
foreach my $prod (@{$unified_info{dirinfo}->{$dir}->{products}->{$type}}) {