Make target reordering to avoid pointless re-makes.
Nicholas Clark [Sat, 28 Oct 2000 00:31:02 +0000 (01:31 +0100)]
Subject: Re: Total re-make of 'make okfile' after 7451 ?
Message-ID: <20001028003101.A54517@plum.flirble.org>

p4raw-id: //depot/perl@7468

Makefile.SH

index 55ffb2c..14170b3 100644 (file)
@@ -642,10 +642,17 @@ CHMOD_W = chmod +w
 keywords.h:    keywords.pl
        -perl keywords.pl
 
-opcode.h opnames.h pp_proto.h pp.sym: opcode.pl
+OPCODE_PL_OUTPUT = opcode.h opnames.h pp_proto.h pp.sym
+
+$(OPCODE_PL_OUTPUT): opcode.pl
        -perl opcode.pl
 
-proto.h embed.h embedvar.h global.sym objXSUB.h perlapi.h perlapi.c pod/perlintern.pod pod/perlapi.pod: embed.pl pp.sym
+# Really the prerequisites for the next rule  should only be "embed.pl pp.sym"
+# Writing it this way gives make a big hint to always run opcode.pl before
+# embed.pl. The alternative - running embed.pl then opcode.pl causes embed.pl
+# to be re-run next make invocation, and then all object files get recompiled.
+
+proto.h embed.h embedvar.h global.sym objXSUB.h perlapi.h perlapi.c pod/perlintern.pod pod/perlapi.pod: embed.pl $(OPCODE_PL_OUTPUT)
        -perl embed.pl
 
 ext/ByteLoader/byterun.h ext/ByteLoader/byterun.c ext/B/B/Asmdata.pm: bytecode.pl