How many jobs does make use by default when you don't pass it the -j flag?

2 Answers 2


Seems to me that it is definitely 1, if by default you mean, without the -j switch. Evidently (from the man page):

If the -j option is given without an argument, make will not limit the number of jobs that can run simultaneously.

I've always specified a number and so have not noticed this. But with no switch, by empirical observation, it's one.

"Unlimited" would be a questionable value to use as a plain default, I think.

  • You are right, unlimited was a brainfart as it's clearly not that. And yes I meant without -j specified.
    – jsj
    Commented Feb 26, 2013 at 16:46
  • Unlimited would totally make sense… if only the system was good enough to schedule tasks taking memory consumption into account (unfortunately, unixes does not require processes to provide memory consumption estimates or other resource-consumption-related guaranties). Commented Feb 26, 2013 at 16:52
  • I seem to remember the "unlimited" is really "number of CPUs", but might be totally off track.
    – vonbrand
    Commented Feb 26, 2013 at 16:59
  • @StéphaneGimenez : I can't recall hearing of an OS that does what you are talking about, but I'd be glad to be enlightened. "Requiring processes to provide memory consumption estimates" sounds like a profoundly bad idea to me, as it is simply an impossible metric to produce in a very high percentage of cases. Half your processes are going to have to report BS or random numbers, making whatever bases its operation on that prone to some kind of grotesque dysfunction...or else I'm wrong, lol.
    – goldilocks
    Commented Feb 26, 2013 at 17:10
  • None that I know of. But many processes could compute in a couple of cylcles how much memory they need according to the size of their input(s). If they were able to tell the system (simplified example: they might malloc() everything they need and claim explicitely that they now drop their privilege to malloc()), the system could then use better scheduling. Commented Feb 26, 2013 at 17:24

The default is 1.


Normally, make will execute only one recipe at a time, waiting for it to finish before executing the next.

from the section 5.4 Parallel Execution of the GNU make manual, https://www.gnu.org/software/make/manual/html_node/Parallel.html. You can also get it from the command line by typing info make parallel


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .