-
Notifications
You must be signed in to change notification settings - Fork 1.7k
Description
As long as ninja is the only build execution tool, the current ninja -jN
implementation works fine.
But when you try to convert parts of an existing recursive GNU make based SW build system to ninja, then you have the following situation:
- top-level GNU Make (with -jX, acts as job server)
- M instances of GNU make (with -j, act as job server clients)
- N instances of ninja (don't know anything about job server)
Simply calling `ninja -jY' isn't enough, because then the ninja instances will try to run Y*N jobs, plus the X jobs from the GNU make instances, causing the build host to overload. Relying on -lZ to fix this issue is sub-optimal, because load average is sometimes too slow to reflect the actual situation on the build host.
It would be nice if GNU make jobserver client support could be added to Ninja. Then the N ninja instances would cooperate with the M GNU make instances and on the build host only X jobs would be executed at one time.