Hi Shachar, On Sat, Feb 23, 2013 at 06:57:27AM +0200, Shachar Shemesh wrote: > > What I'm also interested in is why .SECONDARY made everything slow.
I've put a cut-down makefile demonstrating this here: http://urchin.earth.li/~ian/tmp/Makefile First run $ make setup (which creates some directories and touches some files). Then $ time make -nr D make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', needed by `compiler/stage1/build/Binary.o'. Stop. make -nr D 11.48s user 0.01s system 100% cpu 11.493 total Interesting also is $ time make -nr A make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', needed by `compiler/stage1/build/Binary.o'. Stop. make -nr A 28.55s user 0.00s system 100% cpu 28.552 total i.e. a lot slower than making D, despite appearing to require very little extra work. Comment out the ".SECONDARY:" and: $ time make -nr D make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', needed by `compiler/stage1/build/Binary.o'. Stop. make -nr D 0.03s user 0.00s system 97% cpu 0.033 total $ time make -nr A make: *** No rule to make target `compiler/stage1/build/Name.hi-boot', needed by `compiler/stage1/build/Binary.o'. Stop. make -nr A 0.03s user 0.00s system 97% cpu 0.033 total I can reproduce the slowness with both 3.81 and a recent git checkout. (in fact, recent git seems to be slightly slower). Thanks Ian _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make