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
NetBSD’s
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:
bmakePass -j 1 -J X,Y arguments through $MAKEFLAGS variable.
gmakePass --jobserver-auth=X,Y arguments through $MAKEFLAGS variable.
Beware that only --jobserver-style=pipe protocol is supported!
nonePass X,Y arguments through $REDO_JS_FD variable.
Used by default, if $REDO_MAKE is not set.