From 578dc1cea3e2d725987d78ad21a5a86bfb0cef82 Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Sun, 4 Sep 2016 08:10:22 +0200 Subject: [PATCH] Unix build: have the makedepend and cc actions in one recipe In the case of using an independent makedepend, we had split that into two separate recipes, one depending on the other. However, there are cases where the makedepend recipe was always trying, but doesn't update the time stamp of the .d file because there are no actual changes, and thereby causing constant updates of the object files. This change makes one recipe that takes care of both makedepend och cc, thereby avoiding these extra updates. Reviewed-by: Andy Polyakov (cherry picked from commit 7e5b8b93f2ffa8300b992d2e79c50f0e5266c61b) --- Configurations/unix-Makefile.tmpl | 35 ++++++++++++++----------------- 1 file changed, 16 insertions(+), 19 deletions(-) diff --git a/Configurations/unix-Makefile.tmpl b/Configurations/unix-Makefile.tmpl index 608c20417f..1392295607 100644 --- a/Configurations/unix-Makefile.tmpl +++ b/Configurations/unix-Makefile.tmpl @@ -944,38 +944,35 @@ EOF dso => '$(DSO_CFLAGS)', bin => '$(BIN_CFLAGS)' } -> {$args{intent}}; my $makedepprog = $config{makedepprog}; - my $recipe = ""; - if (!$disabled{makedepend} && $makedepprog =~ /\/makedepend/) { + my $recipe = <<"EOF"; +$obj$objext: $deps +EOF + if (!$disabled{makedepend} && $makedepprog !~ /\/makedepend/) { $recipe .= <<"EOF"; -$obj$depext: $deps - -\$(MAKEDEPEND) -f- -o"|$obj$objext" -- $incs \$(CFLAGS) $ecflags -- $srcs \\ - >\$\@.tmp 2>/dev/null - -\$(PERL) -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//; \$\$_ = undef if (/: *\$\$/ || /^(#.*| *)\$\$/); \$\$_.="\\n" unless !defined(\$\$_) or /\\R\$\$/g;' \$\@.tmp - \@if cmp \$\@.tmp \$\@ > /dev/null 2> /dev/null; then \\ - rm -f \$\@.tmp; \\ + \$(CC) $incs \$(CFLAGS) $ecflags -MMD -MF $obj$depext.tmp -MT \$\@ -c -o \$\@ $srcs + \@touch $obj$depext.tmp + \@if cmp $obj$depext.tmp $obj$depext > /dev/null 2> /dev/null; then \\ + rm -f $obj$depext.tmp; \\ else \\ - mv \$\@.tmp \$\@; \\ + mv $obj$depext.tmp $obj$depext; \\ fi EOF - $deps = $obj.$depext; - } - if ($disabled{makedepend} || $makedepprog =~ /\/makedepend/) { + } else { $recipe .= <<"EOF"; -$obj$objext: $deps \$(CC) $incs \$(CFLAGS) $ecflags -c -o \$\@ $srcs EOF - } - if (!$disabled{makedepend} && $makedepprog !~ /\/makedepend/) { - $recipe .= <<"EOF"; -$obj$objext: $deps - \$(CC) $incs \$(CFLAGS) $ecflags -MMD -MF $obj$depext.tmp -MT \$\@ -c -o \$\@ $srcs - \@touch $obj$depext.tmp + if (!$disabled{makedepend} && $makedepprog =~ /\/makedepend/) { + $recipe .= <<"EOF"; + -\$(MAKEDEPEND) -f- -o"|\$\@" -- $incs \$(CFLAGS) $ecflags -- $srcs \\ + >$obj$depext.tmp 2>/dev/null + -\$(PERL) -i -pe 's/^.*\\|//; s/ \\/(\\\\.|[^ ])*//; \$\$_ = undef if (/: *\$\$/ || /^(#.*| *)\$\$/); \$\$_.="\\n" unless !defined(\$\$_) or /\\R\$\$/g;' $obj$depext.tmp \@if cmp $obj$depext.tmp $obj$depext > /dev/null 2> /dev/null; then \\ rm -f $obj$depext.tmp; \\ else \\ mv $obj$depext.tmp $obj$depext; \\ fi EOF + } } return $recipe; } -- 2.25.1