This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Remove the Makefile command to touch perlmain.c after running makedepend.
authorNicholas Clark <nick@ccl4.org>
Fri, 3 Dec 2010 21:07:17 +0000 (21:07 +0000)
committerNicholas Clark <nick@ccl4.org>
Fri, 3 Dec 2010 21:07:17 +0000 (21:07 +0000)
commitb1811a1510c616ea350802dcd28682a4b8c378ce
tree59d1ea010b4e994786e4cbeefcc5f72773317e50
parentbf5522a13a381257966e7ed6b731195a873b153e
Remove the Makefile command to touch perlmain.c after running makedepend.

Jerry D. Hedden was right to question whether this was now superfluous, because
as best I can tell it was *always* superfluous. Perl 5.000 shipped with a
Makefile rule to build perlmain.c using a shell script, with a dependency for
perlmain.c on makefile. [Lowercase makefile, now abstracted as $(FIRSTMAKEFILE).
This is generated by makedepend from Makefile, by calculating the dependency
rules to append to it.] The rule to generate perlmain.c had a prerequisite on
$(FIRSTMAKEFILE), and in turn $(FIRSTMAKEFILE) has a dependency on $(c), which
included perlmain.c. Hence there was a circular dependency, and the "solution"
to avoiding repeated rebuilds was to touch perlmain.c (if it exists), after
running makedepend.

As best I can tell there is no *actual* dependency for the correct generation
of perlmain.c on the contents of $(FIRSTMAKEFILE), as the relevant variables
are the same in both Makefile and $(FIRSTMAKEFILE). Hence this command should
have been removed, along with the dependency, years ago. However, no-one
spotted this until Jerry observed that fbcaf61123069fe4 changed the build
rules, and removed the dependency, but not the touch command.
Makefile.SH