Using GNU make, is it possible to create a set of goals that will never be planned using the --jobs option?
Reference Information:
To make this a little more specific, consider a make form file
p1: ...deps... # no parallelization conflicts (can run at the same time as p*, e*) ...rules... p2: ...deps... # no parallelization conflicts (can run at the same time as p*, e*) ...rules... p3: ...deps... # no parallelization conflicts (can run at the same time as p*, e*) ...rules... e1: ...deps... # cannot run at same time as any other e* ...rules... e2: ...deps... # cannot run at same time as any other e* ...rules... e3: ...deps... # cannot run at same time as any other e* ...rules...
The main thing I need to do is make sure that e1, e2 and e3 are never processed at the same time, because they do some work on an embedded device with limited resources. They crash if several of them are running at the same time. p1, p2 and p3 can be executed in parallel with anything, including any task e *.
Please note that the actual makefile has several thousand goals with a dependency tree, which is about 10 levels, so I hope there is a way to do this so that (a) does not require serial runs and (b) preserves the benefits of coding the dependency tree in the file makefile.
source share