Difference between revisions of "Distcc mozilla tutorial"
m (split two sections. I don't know how they were combined) |
(Fixed various typos and formatting issues.) |
||
Line 1: | Line 1: | ||
=What is this?= | =What is this?= | ||
− | This is a tutorial to get distcc to compile Mozilla Firefox on cygwin. | + | |
+ | This is a tutorial to get distcc to compile Mozilla Firefox on Windows using cygwin. | ||
=Requirements= | =Requirements= | ||
+ | |||
# Window machines. For distcc to be of any use, there should be at least 2 machines | # Window machines. For distcc to be of any use, there should be at least 2 machines | ||
− | # Cygwin. You will need gcc to build distcc. We | + | # Cygwin. You will need gcc to build distcc. We build using gcc-3.4.4 |
# [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites Mozilla requirements] | # [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites Mozilla requirements] | ||
# Patience | # Patience | ||
=Building distcc= | =Building distcc= | ||
+ | |||
Checkout, build, and install the distcc source | Checkout, build, and install the distcc source | ||
− | + | svn co svn://cdot.senecac.on.ca/distcc/trunk | |
− | + | cd trunk && ./configure && make && make install | |
− | |||
− | |||
− | Checkout the | + | Checkout the Mozilla source. If you are using the latest version of trunk, than you are fine. If you are building 2.0.0.3 or below, you need to apply a silly [https://bugzilla.mozilla.org/show_bug.cgi?id=374563 patch]. |
=MOZCONFIG= | =MOZCONFIG= | ||
− | Currently, distcc does not transmit debug .pdb files. So you cannot currently do a debug build. Here is a sample MOZCONFIG file. All you need to do is modify the object directory (MOZ_OBJDIR). | + | |
+ | Currently, distcc does not transmit debug .pdb files (i.e., it can only send back one file). So you cannot currently do a debug build. Here is a sample MOZCONFIG file. All you need to do is modify the object directory (MOZ_OBJDIR). | ||
'''Note the last line''', which is required for any MOZCONFIG file that wants to build using distcc. | '''Note the last line''', which is required for any MOZCONFIG file that wants to build using distcc. | ||
− | + | mk_add_options MOZ_OBJDIR=/cygdrive/c/home/cesar/mozobj | |
− | + | ac_add_options --enable-application=browser | |
− | + | ac_add_options --enable-optimize | |
− | + | ac_add_options --disable-debug | |
− | + | ac_add_options --enable-debugger-info-modules=no | |
− | + | mk_add_options MOZ_CO_PROJECT=browser | |
− | + | mk_add_options MOZ_MAKE_FLAGS="CC='distcc cl' CXX='distcc cl' -j4" | |
=Environment= | =Environment= | ||
− | |||
− | + | The only required environment variable is '''DISTCC_CL_HOSTS''', which contains a space delimited list of all slave machines. You must set this variable on the master machine (the machine that contains the source code). | |
− | |||
− | |||
+ | export DISTCC_CL_HOSTS="localhost 10.0.0.2 10.0.0.4" | ||
<!-- | <!-- | ||
This section explains some useful environment variables that you can use. | This section explains some useful environment variables that you can use. | ||
Line 65: | Line 65: | ||
=Distcc Daemon= | =Distcc Daemon= | ||
− | |||
− | + | Start the distcc daemon. The only thing you need to change is who is allowed to use the daemon. You can use a space-delimited list of IP addresses, or specify the CIDR mask of an entire subnet. | |
− | + | ||
− | + | distccd --allow '10.0.0.0/24' --daemon |
Revision as of 10:42, 21 March 2007
What is this?
This is a tutorial to get distcc to compile Mozilla Firefox on Windows using cygwin.
Requirements
- Window machines. For distcc to be of any use, there should be at least 2 machines
- Cygwin. You will need gcc to build distcc. We build using gcc-3.4.4
- Mozilla requirements
- Patience
Building distcc
Checkout, build, and install the distcc source
svn co svn://cdot.senecac.on.ca/distcc/trunk cd trunk && ./configure && make && make install
Checkout the Mozilla source. If you are using the latest version of trunk, than you are fine. If you are building 2.0.0.3 or below, you need to apply a silly patch.
MOZCONFIG
Currently, distcc does not transmit debug .pdb files (i.e., it can only send back one file). So you cannot currently do a debug build. Here is a sample MOZCONFIG file. All you need to do is modify the object directory (MOZ_OBJDIR).
Note the last line, which is required for any MOZCONFIG file that wants to build using distcc.
mk_add_options MOZ_OBJDIR=/cygdrive/c/home/cesar/mozobj ac_add_options --enable-application=browser ac_add_options --enable-optimize ac_add_options --disable-debug ac_add_options --enable-debugger-info-modules=no mk_add_options MOZ_CO_PROJECT=browser mk_add_options MOZ_MAKE_FLAGS="CC='distcc cl' CXX='distcc cl' -j4"
Environment
The only required environment variable is DISTCC_CL_HOSTS, which contains a space delimited list of all slave machines. You must set this variable on the master machine (the machine that contains the source code).
export DISTCC_CL_HOSTS="localhost 10.0.0.2 10.0.0.4"
Distcc Daemon
Start the distcc daemon. The only thing you need to change is who is allowed to use the daemon. You can use a space-delimited list of IP addresses, or specify the CIDR mask of an entire subnet.
distccd --allow '10.0.0.0/24' --daemon