focal (1) makeparallel.1.gz

Provided by: makeparallel_8.1.0+r23-3ubuntu2_amd64 bug

NAME

       makeparallel - command line tool for communication with the GNU make jobserver

SYNOPSIS

       To run a multi-thread or multi-process binary inside GNU make using makeparallel, add:

                  +makeparallel subprocess arguments

       to a rule.  For example, to wrap ninja in make, use something like:

                  +makeparallel ninja -f build.ninja

       To determine the size of the jobserver pool, add:

                  +makeparallel echo > make.jobs

       to  a  rule  that  is  guarantee  to  run  alone  (i.e. all  other  rules  are either dependencies of the
       makeparallel rule, or the depend on the makeparallel rule.  The output file will contain the -j<num> flag
       passed  to  the  parent  make process, or -j1 if no flag was found.  Since GNU make will run makeparallel
       during the execution phase, after all variables have been set and evaluated, it is not  possible  to  get
       the  output  of  makeparallel into a make variable.  Instead, use a shell substitution to read the output
       file directly in a recipe.  For example:

                  echo Make was started with $$(cat make.jobs)

DESCRIPTION

       makeparallel communicates with the GNU  make  jobserver  (http://make.mad-scientist.net/papers/jobserver-
       implementation/)  in  order  claim  all  available  jobs, and then passes the number of jobs claimed to a
       subprocess with -j<jobs>.

       The number of available jobs is determined by reading tokens from the jobserver until a read would block.
       If  the  makeparallel  rule  is  the  only  one  running the number of jobs will be the total size of the
       jobserver pool, i.e. the value passed to make with -j.  Any  jobs  running  in  parallel  with  with  the
       makeparellel  rule  will  reduce  the  measured  value,  and thus reduce the parallelism available to the
       subprocess.

AUTHORS

       The Android Open Source Project.

                                                                                                 MAKEPARALLEL(1)