|
From: | Juergen Sauermann |
Subject: | Re: [Bug-apl] AM_MAKEFLAGS = -j 4 |
Date: | Sat, 30 Jul 2016 18:04:27 +0200 |
User-agent: | Mozilla/5.0 (X11; Linux i686; rv:31.0) Gecko/20100101 Thunderbird/31.4.0 |
Hi Kacper, I see. The all4 make target is a left over from my first attempt to solve the problem. That attempt would use different target sets for different -j values but that didn't work well. The all4 will disappear after the next commit. One reason why I did not like the -j on the initial make approach is that I have several targets for different builds and I do not want to be forced to say -j 4 for each of them. I am building GNU apl quite often and I am just to lazy to type -j 4 every time. I would also believe that for most users an automatic -j 4 is more convenient than being forced to type -j 4 or else have a slow build. /// Jürgen On 07/30/2016 04:30 PM, Kacper Gutowski
wrote:
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 |
[Prev in Thread] | Current Thread | [Next in Thread] |