This is just the “job server” which you can read about in the Gnu make documentation, which is excellent.
https://www.gnu.org/software/make/manual/html_node/Job-Slots...
Basically you can specify a “-j 24” (e.g.) option to make, and it will run as many as 24 build steps in parallel. If your Makefile is correct, that’s all you need.
Because make knows the dependency graph, it can correctly handle cases where some build steps have to be done serially, while others can be fully parallelized. E.g.,
a: b;
b: c;
In which builds of b and c are serial, versus x: y;
x: z;
for which builds of y and z are parallel.It’s quite a powerful capability and it feels great to see 24 build-steps start in parallel from one simple command.