Parallel builds are made by utilizing the jobserver protocol. Each job
have to take so called token and return it when it finishes. Jobserver
creates the pipe, consisting of read and write files, that are passed
to each goredo
instance. Job takes the token by reading the
single byte from that pipe, writing it back for returning. Pipe is
pre-filled with required number of tokens.
goredo
can be integrated with
bmake and
GNU Make (gmake
)
jobserver protocol. All three of them use the same principle of
jobserver, but different ways of passing pipe’s file descriptors
numbers to child process.
$REDO_MAKE
environment variable controls the compatibility behaviour:
bmake
Pass -j 1 -J X,Y
arguments through $MAKEFLAGS
variable.
gmake
Pass --jobserver-auth=X,Y
arguments through $MAKEFLAGS
variable.
none
Pass X,Y
arguments through $REDO_JS_FD
variable.
Used by default, if $REDO_MAKE
is not set.