From cfef7e9e681bb981ebd5af08eac3432eec336032 Mon Sep 17 00:00:00 2001 From: Andy Polyakov Date: Sun, 26 Jun 2016 14:40:35 +0200 Subject: [PATCH] windows-makefile.tmpl: don't use $? in library targets. 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 Reviewed-by: Richard Levitte --- Configurations/windows-makefile.tmpl | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/Configurations/windows-makefile.tmpl b/Configurations/windows-makefile.tmpl index 0d21c50f03..aae7de3655 100644 --- a/Configurations/windows-makefile.tmpl +++ b/Configurations/windows-makefile.tmpl @@ -484,7 +484,7 @@ EOF return <<"EOF"; $lib$libext: $deps \$(AR) \$(ARFLAGS) \$(AROUTFLAG)$lib$libext @<< -\$\? +\$** << EOF } @@ -530,11 +530,7 @@ 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}}) { -- 2.34.1