Fwd: [distcc] how to get separate compile tasks

ibaker at mail.cern.ch ibaker at mail.cern.ch
Mon Mar 23 16:28:20 GMT 2009


On Mon, 23 Mar 2009, Fergus Henderson wrote:

> On Mon, Mar 23, 2009 at 12:01 PM, <ibaker at mail.cern.ch> wrote:
>
>> On Mon, 23 Mar 2009, Yanchun Wang wrote:
>>
>>  Thank you for your answer. Then if i send a same command, for example
>>> "make
>>> –j4 CC=distcc –f makefile.x86_linux",
>>> to all servers over the LAN, (and the program source files to be compiled
>>> are stored on a shared disk. )
>>> Servers call these commands. Then distributed multithreading compiling can
>>> be realized. Correct?
>>>
>>>
>> No.  When distcc is invoked it translates what follows as options to gcc
>> (with a few exceptions).  So in the above case "–f makefile.x86_linux" will
>> be parsed and analysed by distcc as compiler options.
>
>
> Minor correction: in the above command line, "make –j4 CC=distcc –f
> makefile.x86_linux", the "-f makefile.x86_linux" will be interpreted by
> "make" as an option to "make", not as part of the definition of the "CC"
> variable, so it won't be passed to distcc.
>

Thank you!

> But your other statements are entirely correct:
>
>
>> distcc doesn't work that way.  A client uses one makefile to distribute
>> individual compilation jobs (which include the files and the compiler
>> options etc) to several build servers (one job is processed by one server),
>> concurrency is controlled through make's -j option.
>>
>> If you invoke:
>>
>> make -j4 CC=distcc
>>
>> from within your build directory (the man page details other ways distcc
>> can be invoked), then distcc should distribute jobs to your build servers
>> (assuming everything has been set up correctly).
>>
>
> Yanchun, note that you should set the DISTCC_HOSTS environment variable to
> the names of the servers that distcc will distribute the jobs to.
>
> --
> Fergus Henderson <fergus at google.com>
>


More information about the distcc mailing list