Changes

Jump to: navigation, search

Distcc mozilla tutorial

3,138 bytes added, 18:16, 20 April 2007
no edit summary
=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 built build using gcc-3.4.4
# [http://developer.mozilla.org/en/docs/Windows_Build_Prerequisites 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 [https://bugzilla.mozilla.org/show_bug.cgi?id=374563 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"
 
-j4 is quite important. According to the man page, you should set the number of jobs equal to the number of all cpus (or cores) + 2.
 
=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=Check out"localhost 10.0.0.2 10.0.0.4"<!--This section explains some useful environment variables that you can use. Distcc has a few environment variables. The most useful are listed here, which are all set on the master computer. The master machine is the machine in which the mozilla directory is located. <dl><dt> DISTCC_CL_HOSTS<dd>the ip addresses of the slave machines. Usually localhost is the first host. '''THIS IS REQUIRED''' ''Example :'' export DISTCC_CL_HOSTS="localhost 10.0.0.2 10.0.0.4" <dt>DISTCC_VERBOSE<dd>Verbose output. Values : 1 for true <dt>DISTCC_LOG<dd>A path to a file that distcc will output to <dt>DISTCC_FALLBACK<dd>Whether distcc should fallback to localhost if it fails to find a slave. The compile will fail if fallback are disabled and no slaves are found. Values : 1 for allow fallback</dl>--> =Distcc Daemon=Build 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 =Compile Mozilla= You should now be able to compile Mozilla. You won't notice distributing immediately. But you can monitor the progress using the distcc-text or distcc-gnome utility, or using the 'Task Manager'. Sometimes, mozilla forces -j1 in some directories. So be prepared for that. =Complaints= If you feel that these instructions are poorly written, or are having trouble using distcc to compile mozilla because something is unclear, please leave a message in the discussion page. I appreciate any feedback (good/bad) in hopes of improving this documentation.  You do not have to leave a contact or your name.
1
edit

Navigation menu