On Sat Apr 6 13:37:58 2013, invalid.nore...@gnu.org (Paul D. Smith) wrote: > Follow-up Comment #14, bug #30381 (project make): > > I don't think it's correct to implement this feature using a > command-line option. Makefiles need to be written in a certain way > to use this feature and if they are written that way, then you must > have the feature enabled or the build will fail. And vice versa.
A fair desciption, but only to make users who were already aware of the limitation that this feature removes. I wonder how many make users fall into that category. I used make (on and off) for 20 years without being aware of this limitation and discovered it only after a painful debugging process. Using -j also requires one's Makefiles to be written in a certain way. The main difference is that with -j, that 'certain' way isn't so easy to characterize. The reason I chose a command line option was my conviction that applying it isn't expected to break any existing Makefiles. You argue the feature should instead be treated like, say, secondary expansion. But how do I specify a numerical limit with a special target? > For situations like that we don't want to force the user to have to > specify options on the command line: these options need to be set > within the makefile so the makefile author controls them. Also > it's not clear that having the flag on the command line, where it > will be passed recursively to sub-makes, won't break those > sub-makes in some situations. The only makefiles that will break are those that at present rely on *failing* to apply an implicit rule due to not being able to use the same rule twice in the same chain, *and subsequently succeeding* in some other way. I'm not quite sure how that could happen in the first place, let alone how it would be applied as a feature when writing Makefiles. Shouldn't it at least be flagged with a warning when it occurs? And again, the same consideration applies to -j. There is a special target, .NOTPARALLEL, to override -j. Won't it be more natural to add such a target, .NOCHAINRULEREUSE or .CHAINRULEREUSE, in addition to -M? -- Reinier _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make