Support parallel make check with GNU make 4.2+

I noticed that make -jN check would run make check-single when using GNU
make 4.2.1.

In the end, it turned out that this is due to this change from the make
4.2 NEWS file:

* The amount of parallelism can be determined by querying MAKEFLAGS, even when
  the job server is enabled (previously MAKEFLAGS would always contain only
  "-j", with no number, when job server was enabled).

The fix is trivial: just accept an optional arg to -j in Makefile.in
(saw_dash_j).  Tested on i386-pc-solaris2.11 with just make and make
-j/-jN with both make 3.82 and 4.2.1.

	* Makefile.in (saw_dash_j): Allow for GNU make 4.2+ passing -jN in
	MAKEFLAGS.
This commit is contained in:
Rainer Orth 2018-08-07 13:20:40 +02:00
parent df136d64fa
commit 96d68bd48c
2 changed files with 10 additions and 4 deletions

View File

@ -1,3 +1,8 @@
2018-08-07 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* Makefile.in (saw_dash_j): Allow for GNU make 4.2+ passing -jN in
MAKEFLAGS.
2018-08-06 Rainer Orth <ro@CeBiTec.Uni-Bielefeld.DE>
* dg-extract-results.sh: Move to toplevel contrib.

View File

@ -137,10 +137,11 @@ $(abs_builddir)/site.exp site.exp: ./config.status Makefile
installcheck:
# See whether -j was given to make. Either it was given with no
# arguments, and appears as "j" in the first word, or it was given an
# argument and appears as "-j" in a separate word.
saw_dash_j = $(or $(findstring j,$(firstword $(MAKEFLAGS))),$(filter -j,$(MAKEFLAGS)))
# See whether -j was given to make. Before GNU make 4.2, either it was
# given with no arguments, and appears as "j" in the first word, or it was
# given an argument and appears as "-j" in a separate word. Starting with
# GNU make 4.2, it always appears as "-j"/"-jN" in a separate word.
saw_dash_j = $(or $(findstring j,$(firstword $(MAKEFLAGS))),$(filter -j%,$(MAKEFLAGS)))
# Try to run the tests in parallel if any -j option is given. If RUNTESTFLAGS
# is not empty, then by default the tests will be serialized. This can be