help-make
[Top][All Lists]
Advanced

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

Advanced Auto-Dependency Generation and Parallel Execution


From: Josh Davidson
Subject: Advanced Auto-Dependency Generation and Parallel Execution
Date: Sun, 30 Nov 2008 01:17:17 -0700

 

I’ve been using Paul D. Smith’s dependency approach detailed in his article Advanced Auto-Dependency Generation ( http://make.paulandlesley.org/autodep.html ) for a while now.  However, I’m wondering if the use of sed in creating the dependency files could create potential problems under parallel builds (-j).

 

From “5.4 Parallel Execution” of the GNU Make Manual:

 

“Another problem is that two processes cannot both take input from the same device; so to make sure that only one command tries to take input from the terminal at once, make will invalidate the standard input streams of all but one running command. This means that attempting to read from standard input will usually be a fatal error (a `Broken pipe' signal) for most child processes if there are several. It is unpredictable which command will have a valid standard input stream (which will come from the terminal, or wherever you redirect the standard input of make). The first command run will always get it first, and the first command started after that one finishes will get it next, and so on.”

 

Since sed is reading from STDIN to generate the dependency problem, doesn’t it violate the rule above?  I was thinking another alternative would be to implement similar functionality through a script that opens a file handle on the dependency file to perform the transformation.  Thoughts?

 

Thanks,

Josh


reply via email to

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