Skip to content
distributed builds for C, C++ and Objective C
C Python C++ Shell M4 Makefile
Branch: master
Clone or download

Latest commit

shawnl Merge pull request #381 from aslvrstn/osx_upgrades
Run on an up-to-date OSX version
Latest commit c9d4259 May 5, 2020


Type Name Latest commit message Commit time
Failed to load latest commit information.
bench Make the benchmarking script's stdout and stderr line buffered. Aug 2, 2008
contrib The first step of moving everything in the distcc directory to the top Apr 11, 2008
doc Update to new ccache URL May 26, 2019
docker Extend Travis CI configuration for macOS/clang (#226) Nov 26, 2017
gnome Fix desktop spec compliance of distccmon-gnome install Sep 17, 2019
include_server Replace time.clock() with time.perf_counter() Nov 28, 2019
lzo fix build Feb 25, 2018
m4 Use ax_pthread.m4 from autoconf-archive instead of acx_pthread.m4 Aug 19, 2019
man Support auth with custom service principal name Jul 13, 2019
packaging Add help for systemd-based RH-like distro users Nov 4, 2015
popt Fix popt compilation with gcc 8 (-Wformat-overflow) Jul 14, 2019
src Fix build with gcc 10 which defaults to -fno-common (cf https://gcc.g… Jan 27, 2020
test Correct spelling mistakes. (#286) Sep 25, 2018
.gitignore Add build/test/run artefacts to gitignore Jul 14, 2019
.travis.yml Go even newer? May 4, 2020
AUTHORS Remove Martin Pool's Email Address From AUTHORS File Feb 8, 2019
COPYING Initial submission @6805748, not fully baked yet. Mar 28, 2008
ChangeLog Update ChangeLog again. Oct 26, 2011
INSTALL Correct spelling mistakes. (#286) Sep 25, 2018 fix out-of-tree builds when the GNOME UI is enabled Sep 17, 2019
NEWS 3.3 Mar 7, 2018
README Correct Code Link In README Aug 8, 2017 Update homepage link Oct 10, 2018
README.packaging Correct spelling mistakes. (#286) Sep 25, 2018
README.pump Documentation fixes: May 30, 2008
TODO Correct spelling mistakes. (#286) Sep 25, 2018 Address review comments on an earlier change: Apr 18, 2008
config.guess fixed for Cygwin Aug 9, 2017
config.sub fixed for Cygwin Aug 9, 2017 Use ax_pthread.m4 from autoconf-archive instead of acx_pthread.m4 Aug 19, 2019 Fix broken "make distcheck" Apr 29, 2017
install-sh Merge, distcc/, and Apr 11, 2008
mkinstalldirs Merge, distcc/, and Apr 11, 2008 Correct spelling mistakes. (#286) Sep 25, 2018
survey.txt Direct survey response to rather than to Mar… May 22, 2008 update-distcc-symlinks: catch some errors Aug 6, 2018

distcc -- a free distributed C/C++ compiler system

Build Status

by Martin Pool

Current Documents: Formally

"pump" functionality added by Fergus Henderson, Nils Klarlund, Manos Renieris, and Craig Silverstein (Google Inc.)

distcc is a program to distribute compilation of C or C++ code across several machines on a network. distcc should always generate the same results as a local compile, is simple to install and use, and is often two or more times faster than a local compile.

Unlike other distributed build systems, distcc does not require all machines to share a filesystem, have synchronized clocks, or to have the same libraries or header files installed. Machines can be running different operating systems, as long as they have compatible binary formats or cross-compilers.

By default, distcc sends the complete preprocessed source code across the network for each job, so all it requires of the volunteer machines is that they be running the distccd daemon, and that they have an appropriate compiler installed.

The distcc "pump" functionality, added in distcc 3.0, improves on distcc by distributing not only compilation but also preprocessing to distcc servers. This requires that the server and client have the same system headers (the client takes responsibility for transmitting application-specific headers). Given that, distcc in pump mode yields the same results that distcc would in non-pump mode, but faster, since the preprocessor no longer runs locally. For more details on the pump functionality, see README.pump.

distcc is not itself a compiler, but rather a front-end to the GNU C/C++ compiler (gcc), or another compiler of your choice. All the regular gcc options and features work as normal.

distcc is designed to be used with GNU make's parallel-build feature (-j). Shipping files across the network takes time, but few cycles on the client machine. Any files that can be built remotely are essentially "for free" in terms of client CPU. This is even more true in "pump" mode, where the client does not even have to take time to preprocess the source files. distcc has been successfully used in environments with hundreds of distcc servers, supporting dozens of simultaneous compiles.

distcc is now reasonably stable and can successfully compile the Linux kernel, rsync, KDE, GNOME (via GARNOME), Samba and Ethereal. distcc is nearly linearly scalable for small numbers of machines: for a typical case, three machines are 2.6 times faster than one.


distcc is distributed under the GNU General Public Licence v2.


You can’t perform that action at this time.