This is a set of tools for creating a Linux-based distcc node for compiling Mac OS X software. It is comparable to XCode 2.2.1 (GCC 4.0.1 build 5250, and GCC 3.3 build 1819).
Please note, the darwin7 (Mac OS X 10.3) support only works if you're using odcctools on your 10.3 box; these distcc packages will not work with the stock ld that comes with Mac OS X.
Add the contents of this file to your
/etc/yum.conf, and then install the "darwin-cross
" package.
Download this file, put it in your /etc/yum.repos.d/
directory, and install the "darwin-cross
" package.
Download this file, put it in your /etc/yum.repos.d/
directory, and install the "darwin-cross
" package.
You can try building the source RPMs. If it works, please e-mail me and I'll add the packages to this site.
Edit /etc/sysconfig/distcc-darwin
and set any distcc options if you'd like.
Then you can run "/sbin/service distccd-darwin start
" to start it. If you want
distccd to start when you boot, run "/sbin/chkconfig distccd-darwin on
".
That's it!
If you're running fink unstable, do a "fink selfupdate-rsync
" (or
"fink selupdate-cvs
") and then run
"fink install distcc-default
". You should end up with
the distcc
and distcc-default
packages installed, version
2.18.3-7 on 10.3, 10.18.3-17 on 10.4-transitional, or 2.18.3-1027 on 10.4 (or higher).
For more details and the most up-to-date instructions on what to do once distcc-default is installed, see "Setting MAKEFLAGS in Fink" in the Fink wiki.
If you're not running fink unstable, download this script
and put it in a directory somewhere, like /usr/local/distcc
. Edit
the script and change $DISTCCBIN
to the path to your distcc
binary, and change $DATADIR
to the directory you put gcc-translator.pl in.
Then, in the /usr/local/distcc
directory, create symlinks to gcc-translator.pl
for each of the long-form compiler names, like so:
...and so on. This is required for distcc to be able to find the local compiler to run some stuff on the data before sending it to a compile node.
In addition, you'll need to compile and install distcc and ccache. When you're done, create symlinks to ccache for each of the compiler binaries in /usr/bin:
for arch in powerpc i386; do for version in "" "-3.3" "-4.0"; do for gcc in cc c++ gcc g++; do if [ -f "/usr/bin/${gcc}${version}" ]; then ln -s "/usr/bin/${gcc}${version}" . fi done done done
Then, set up your environment:
export DISTCC_TRANS=true export CCACHE_PREFIX="/usr/local/distcc/gcc-translator.pl" export PATH="/usr/local/distcc:/path/to/ccache/bindir:$PATH" export DISTCC_HOSTS="host1:port host2:port localhost" export MAKEFLAGS="-j4" (or however many compile hosts you have)
If all went well, you should be able to compile stuff, and connections will show up in /var/lib/distccd-darwin.log on the compile nodes.
It Works For Me(TM) but is pretty much untested for any configuration other than my own. If you run into problems, please e-mail me and I'll see what I can do. :)