On Mon, 23 Mar 2009, Fergus Henderson wrote:

On Mon, Mar 23, 2009 at 12:01 PM, <iba...@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 <fer...@google.com>
__ 
distcc mailing list            http://distcc.samba.org/
To unsubscribe or change options: 
https://lists.samba.org/mailman/listinfo/distcc

Reply via email to