Merge tag 'for-linus' of git://git.armlinux.org.uk/~rmk/linux-arm
[linux-2.6-microblaze.git] / Documentation / sphinx / parallel-wrapper.sh
1 #!/bin/sh
2 # SPDX-License-Identifier: GPL-2.0+
3 #
4 # Figure out if we should follow a specific parallelism from the make
5 # environment (as exported by scripts/jobserver-exec), or fall back to
6 # the "auto" parallelism when "-jN" is not specified at the top-level
7 # "make" invocation.
8
9 sphinx="$1"
10 shift || true
11
12 parallel="$PARALLELISM"
13 if [ -z "$parallel" ] ; then
14         # If no parallelism is specified at the top-level make, then
15         # fall back to the expected "-jauto" mode that the "htmldocs"
16         # target has had.
17         auto=$(perl -e 'open IN,"'"$sphinx"' --version 2>&1 |";
18                         while (<IN>) {
19                                 if (m/([\d\.]+)/) {
20                                         print "auto" if ($1 >= "1.7")
21                                 }
22                         }
23                         close IN')
24         if [ -n "$auto" ] ; then
25                 parallel="$auto"
26         fi
27 fi
28 # Only if some parallelism has been determined do we add the -jN option.
29 if [ -n "$parallel" ] ; then
30         parallel="-j$parallel"
31 fi
32
33 exec "$sphinx" $parallel "$@"