Difference between revisions of "Add support for more compilers to distcc"

From CDOT Wiki
Jump to: navigation, search
(added 0.2 goals, new contributors and new contribution method)
(added 0.2 release)
Line 30: Line 30:
  
 
== Project Details/News ==
 
== Project Details/News ==
 +
=== 0.2 Release ===
 +
A new [http://docs.google.com/Doc?id=dfkp8fkz_2gxdzhr patch] has been created.  All except one of the required functions (dcc_mcs_scan_args) are now complete.  As the work required for this update turned out to be a lot less than I anticipated, a 0.25 patch should be released soon that will implement that last function.  An SVN branch is not available yet, but should also be ready in time for 0.25.
 +
 +
to use this patch:
 +
<ul>
 +
<li>Either reverse the first patch or get a non-patched version of the trunk</li>
 +
<li>Apply the new [http://docs.google.com/Doc?id=dfkp8fkz_2gxdzhr patch]
 +
</ul>
 +
  
 
===Goal for 0.2 release===
 
===Goal for 0.2 release===
Line 35: Line 44:
  
 
=== 0.1 Release ===
 
=== 0.1 Release ===
A patch[http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s] has been created.
+
A [http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s compiler] has been created.
 
Note that it is by no means anywhere near completion.
 
Note that it is by no means anywhere near completion.
 
That's why this is the 0.1 release.
 
That's why this is the 0.1 release.
Line 41: Line 50:
 
This patch has been tested on Windows XP, using cygwin to tell distcc to compile a single, simple c# file.  To use it:
 
This patch has been tested on Windows XP, using cygwin to tell distcc to compile a single, simple c# file.  To use it:
 
<ol>
 
<ol>
  <li>get cygwin[http://www.cygwin.com/]</li>
+
  <li>[http://www.cygwin.com/ get cygwin]</li>
  <li>configure cygwin[http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin]</li>
+
  <li>[http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin configure cygwin]</li>
  <li>download the Mono C# compiler[http://www.mono-project.com/Main_Page]</li>
+
  <li>download the Mono C# [http://www.mono-project.com/Main_Page compiler]</li>
 
   <ul>
 
   <ul>
 
   <li>put mono in your PATH</li>
 
   <li>put mono in your PATH</li>
Line 51: Line 60:
 
   <ul>
 
   <ul>
 
   <li>svn co svn://cdot.senecac.on.ca/distcc/trunk</li>
 
   <li>svn co svn://cdot.senecac.on.ca/distcc/trunk</li>
 +
  <li>You should get revision 117</li>
 
   <li>cd trunk && ./configure && make && make install</li>
 
   <li>cd trunk && ./configure && make && make install</li>
 
   <li>put distcc in your PATH, before cygwin</lI>
 
   <li>put distcc in your PATH, before cygwin</lI>
 
   </ul>
 
   </ul>
  <li>get the 0.1 patch[http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s]</li>
+
  <li>get the 0.1 [http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s patch]</li>
 
  <li>apply the patch</li>
 
  <li>apply the patch</li>
 
   <ul>
 
   <ul>
Line 65: Line 75:
 
   <li>./configure && make && make install</li>
 
   <li>./configure && make && make install</li>
 
   </ul>
 
   </ul>
  <li>get a simple C# file[http://docs.google.com/Doc?id=dfkp8fkz_1hbrfkk]</li>
+
  <li>get a simple C# [http://docs.google.com/Doc?id=dfkp8fkz_1hbrfkk file]</li>
 
  <li>compile it</li>
 
  <li>compile it</li>
 
   <ul>
 
   <ul>

Revision as of 19:10, 16 November 2007

Project Name

Add support for more compilers to distcc

Project Description

An earlier project added multi-compiler support to distcc, and then MSVC support. The framework is now in place to support even more compilers. Add support for another compiler; either Java or C#.

Necessary Skills: C, Python, Makefile

Project Leader(s)

Peter Callaghan (pcal)

Project Contributor(s)

Some options for contributions:

  • publish/find some more c# files to test with
  • test this on different OSs
  • Make a comprehensive list of the set-up steps on one page, unlike the scattered links there are now
  • more to be added later

Project Details/News

0.2 Release

A new patch has been created. All except one of the required functions (dcc_mcs_scan_args) are now complete. As the work required for this update turned out to be a lot less than I anticipated, a 0.25 patch should be released soon that will implement that last function. An SVN branch is not available yet, but should also be ready in time for 0.25.

to use this patch:

  • Either reverse the first patch or get a non-patched version of the trunk
  • Apply the new patch


Goal for 0.2 release

Continue work on the previously identified functions. As of 0.1 several were still little more than shells, by the completion of 0.2 all except dcc_mcs_scan_args should be fully completed. A supplementary goal is to set up the source as a branch of the existing trunk on cdot, so testers may just check out the new code rather than having to check out the trunk and patch it.

0.1 Release

A compiler has been created. Note that it is by no means anywhere near completion. That's why this is the 0.1 release.

This patch has been tested on Windows XP, using cygwin to tell distcc to compile a single, simple c# file. To use it:

  1. get cygwin
  2. configure cygwin
  3. download the Mono C# compiler
    • put mono in your PATH
  4. set up an environment variable DISTCC_MCS_HOSTS=localhost
  5. Checkout the distcc source
  6. get the 0.1 patch
  7. apply the patch
    • from the trunk directory
    • patch -p0 < pcallaghanzeropointone.txt
  8. configure and build distcc
    • from the trunk directory
    • ./configure && make && make install
  9. get a simple C# file
  10. compile it
    • distcc mcs hello.cs
  11. run it
    • ./hello

Goal for 0.1 Release

- Add support for Mono's cSharp compiler[1]. By the 0.1 release, Distcc should be able to at least compile C# locally. While the earlier work done on Distcc With MSVC suggests that only a hand-full of functions need to be coded in order for it to add a new compiler, both Java and C# compile in a manner significantly different than C. This will likely cause some trouble shortly...regardless, the following functions are the minimum which need to be created:

  • arg.c
    • dcc_<compilerName>_set_action_opt
    • dcc_<compilerName>_set_output
    • dcc_<compilerName>_scan_args
  • strip.c
    • dcc_<compilerName>_strip_local_args
    • dcc_<compilerName>_strip_dasho
  • filename.c
    • dcc_<compilerName>_is_source
    • dcc_<compilerName>_is_preprocessed
    • dcc_<compilerName>_is_object
    • dcc_<compilerName>_preproc_exten
  • hosts.c
    • dcc_<compilerName>_get_hostlist

Known Bugs

See the list within Distcc With MSVC