distcc/distcc
Freedistributed builds for C, C++ and Objective C
About distcc/distcc
distcc is a free, open-source distributed build system for C, C++, and Objective-C code. It accelerates compilation by distributing the work across multiple machines on a network, often achieving speeds two or more times faster than a local compile. Unlike other distributed build systems, distcc does not require a shared filesystem, synchronized clocks, or identical libraries and headers on all machines—it only needs each volunteer machine to run the distccd daemon and have a compatible compiler installed. The pump mode (introduced in version 3.0) further improves performance by offloading preprocessing to servers, as long as system headers match. distcc is a front-end to GCC (or another compiler) and is designed to work with GNU Make's parallel build option (-j). It has been proven stable in environments with hundreds of servers and is capable of building large projects like the Linux kernel, KDE, GNOME, Samba, and Ethereal. The system scales nearly linearly for small numbers of machines, e.g., three machines are 2.6 times faster than one.
Key Features
Pros & Cons
- Significantly faster compilation, often 2x or more compared to local builds
- Simple installation and usage: just install distcc on client and distccd on servers
- No need for shared filesystem, synchronized clocks, or identical system libraries/headers
- Pump mode distributes preprocessing, further reducing client CPU load
- Scalable – supports hundreds of servers and dozens of simultaneous compiles
- Compatible with standard compiler flags and GNU Make workflows
- Requires network access to volunteer machines and reliable connectivity
- Compatibility issues if binary formats or cross-compilers do not match between machines
- Pump mode requires identical system headers on client and server (application-specific headers are transmitted)
- Not a standalone compiler; needs a compiler like GCC installed on all participating machines