On 29 July 2016 at 19:54, Juergen Sauermann wrote: > After removing the AM_MAKEFLAGS = -j 4, I never saw more than one cc1plus > process, even though > I did make -j 4 clean all at the top level. This might as well be caused by > the way how automake > constructs the makefiles rather than by make itself. No idea what exactly is > happening. But I suppose that > everybody is happy with the current solution.
I don't have anything against the current solution; it probably allows parallel builds even in environments that don't support make's communication. But I was just wondering why wouldn't it work, so I did a clean checkout of r782 and removed MAKE_J altogether: for f in src/Makefile.in src/APs/Makefile.in src/native/Makefile.in do printf '%s\n' g/MAKE_J/d w q | ed $f done ./configure MAKE_J=invalid #just to be sure After which I got a makefile which ran sequentially when executed without options. But when running make -j4 I saw it spawning 4 tasks (yes, 4 cc1plus processes showed up on top for me). So looks like it simply does work exactly as advertised for me. Whatever the reason it doesn't work for you is, I don't think it's a problem with automake (as I changed your generated *.in files rather than regenerating them with different version of automake). Anyway, I saw you introduced some new targets that explicitly call make with -j and was wondering maybe there's something wrong with calling it this way, but no, they appear to work as well for me. Except that I found a small mistake in Makefile.am where you declared a new target all4 as phony, but forgot to write “all4:” so the recipe is actually for the .PHONY target itself (meaningless) whereas all4 has its recipe empty: .PHONY: all4 make -j 4 all -k