help-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: running parallel make jobs and avoiding jumbled/garbled output?


From: Per Jessen
Subject: Re: running parallel make jobs and avoiding jumbled/garbled output?
Date: Thu, 28 Feb 2008 20:35:13 +0100
User-agent: KNode/0.10.4

Eli Zaretskii wrote:

>> From: Per Jessen <address@hidden>
>> Date: Wed, 27 Feb 2008 08:56:55 +0100
>> 
>> I've not yet investigated the problem, but when running with -j4, a
>> lot of the jobs were simply not run or only partially done. I'm not
>> entirely certain about how to track this down - your thoughts would
>> be much appreciated.
> 
> Most probably, some of the dependencies are not explicitly stated in
> the Makefiles, but instead rely on serial update of the targets.  You
> need to find those dependencies and state them explicitly.

I've been reviewing the dependencies, and I'm pretty certain they're 
all explicitly stated.  It's not a very complex Makefile, it's just 
got a lot of targets. 

I'll attempt a description of my dependency setup:

TARGET.send depends on TARGET.email
pattern rule = %.send: %.email

TARGET.email depends on on TARGET.xml TARGET.html TARGET.text TARGET.data
pattern rule =  %.email: %.xml %.html %.text %.data

TARGET.xml depends on DUMMY which is .PHONY meaning TARGET.xml is 
always rebuilt.

TARGET.data depends on TARGET.xml (maybe unnecessarily) 
pattern rule = %.data: %.xml

TARGET.html depends on TARGET.xml and TARGET.data
TARGET.text depends on TARGET.xml and TARGET.data

Additionally:

TARGET.email depends on <emailtemplate> and <locale>. 
TARGET.html depends on <htmltemplate> and <locale>. 
TARGET.text depends on <texttemplate> and <locale>. 
TARGET.data depends on <label>.

The templates don't change, and label and locale are .PHONY.


A typical invocation will have "all: targetlist", and targetlist 
will list e.g. 5000 "TARGET.send" targets. 

I hope this makes sense.


/Per Jessen, Zürich





reply via email to

[Prev in Thread] Current Thread [Next in Thread]