提交 340da949 编写于 作者: R Richard Levitte

Make generation of dependency files more efficient when possible

When building with GNU C, clang or VMS C, it's more efficient to
generate dependency file and object file in one call rather than two.
Have the dependency output in a temporary file and compare it with the
previous one if available to see if replacement is waranted, thereby
avoiding unnecessary reconstruction of Makefile / descrip.mms.

Github issue #750
Reviewed-by: NRich Salz <rsalz@openssl.org>
上级 e0b5108c
......@@ -435,19 +435,15 @@ configdata.pm : {- sourcefile("Configurations", "descrip.mms.tmpl") -} $(SRCDIR)
my $after = $unified_info{after}->{$obj.".OBJ"} || "\@ !";
return <<"EOF";
$obj.MMS : $deps
$obj.OBJ : $deps
${before}
SET DEFAULT $forward
\$(CC) \$(CFLAGS)${incs} /MMS=(FILE=${objd}${objn}.MMS,TARGET=$obj.OBJ) /NOOBJECT $srcs
SET DEFAULT $backward
${after}
- PURGE $obj.MMS
$obj.OBJ : $obj.MMS
${before}
SET DEFAULT $forward
\$(CC) \$(CFLAGS)${incs} /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs
\$(CC) \$(CFLAGS)${incs} /MMS=(FILE=${objd}${objn}.tmp-MMS,TARGET=$obj.OBJ) /OBJECT=${objd}${objn}.OBJ /REPOSITORY=$backward $srcs
SET DEFAULT $backward
${after}
\@ PIPE ( \$(PERL) -e "use File::Compare qw/compare_text/; my \$x = compare_text(""$obj.MMS"",""$obj.tmp-MMS""); exit(0x10000000 + (\$x == 0));" || -
RENAME $obj.tmp-MMS $obj.mms )
\@ IF F\$SEARCH("$obj.tmp-MMS") .NES. "" THEN DELETE $obj.tmp-MMS;*
- PURGE $obj.OBJ
EOF
}
......
......@@ -847,11 +847,12 @@ $obj$objext: $obj$depext
EOF
}
return <<"EOF";
$obj$depext: $deps
\$(CC) \$(CFLAGS) $ecflags$incs -MM -MF \$\@ -MQ $obj$objext $srcs
touch \$\@
$obj$objext: $obj$depext
\$(CC) \$(CFLAGS) $ecflags$incs -c -o \$\@ $srcs
$obj$objext: $deps
\$(CC) \$(CFLAGS) $ecflags$incs -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 \\
mv $obj$depext.tmp $obj$depext; \\
fi
EOF
}
# On Unix, we build shlibs from static libs, so we're ignoring the
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册