The short answer is because I wanna use 8 cpus. There is no sensible way Automake can know how many cpus I wanna use.
Just a some idle speculation, Automake knows two things at this point, that the user wants to run a Parallel Test Harness and the Total number of test cases to execute (TESTS). The user can modify TESTS to suit allowing make / Makefile to determine the number of test cases in the variable TESTS. Shouldn't this be enough to establish how many processes are needed and to select a strategy for allocating run time resources? $ make check TESTSUITEFLAGS=-j8 Is TESTSUITEFLAGS a new variable for the next Automake release? It appears undocumented. make -j# $(TESTS) or for I in $(TESTS); do make -j $i; done Your guess is wrong. The key line in 'Makefile.in' is $(TEST_SUITE_LOG): $(TEST_LOGS) which means that before creating 'test-suite.log' the log file for each test is generated. This structure allows parallel execution, but only if the user chooses to. TEST_LOGS contains the list of log files. The rule seems to say after all log files are generated then the $(TEST_SUITE_LOG) preconditions are satisfied and $(TEST_SUITE_LOG) is valid. This doesn't seem to address how the log files get generated. From the manual it seems that .log files are the output (stdout and stderr) of a test case, and that there is no way for the user to bypass this. The rule is neutral with respect to execution time semantics. My conceptual pseudo-code seems to be valid (at least the 'for' part). If the user run make single-threaded the test suite will be run on a single cpu. This is by design. If a user issues 'make check' you want one single cpu to be used; it would be very annoying if make spawned away processes. If a user issues 'make -jX' then the structure allows make to run tests in parallel. This is not possible in the old serial test suite, which basically just ran the tests in a loop. Thanks. I didn't get this from my reading. I think you are saying that if the user wants to execute the tests in parallel the user must specify this on the command line. And, if I guess correctly, the user can write "make check TESTSUITEFLAGS=-jN" As a nit-noy, don't you mean "processor" and not "cpu"? And does -jN specify processors or processes or both?