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:


Pass -j 1 -J X,Y arguments through $MAKEFLAGS variable.


Pass --jobserver-auth=X,Y arguments through $MAKEFLAGS variable.


Pass X,Y arguments through $REDO_JS_FD variable. Used by default, if $REDO_MAKE is not set.