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

From CDOT Wiki
Jump to: navigation, search
m (added some links)
(added 0.1 release)
Line 14: Line 14:
  
 
== Project Contributor(s) ==
 
== Project Contributor(s) ==
Once the 0.1 release is complete, testers will be needed to try compiling.
+
Some options for contributions:
In the mean time, contributors could write simple C# programs to be used later.
+
<ul>
 +
<li>publish some more c# files to test with</li>
 +
<li>test this on different OSs</lI>
 +
<li>more to be added later</li>
 +
</ul>
  
 
== Project Details ==
 
== Project Details ==
 +
=== 0.1 Release ===
 +
A patch[http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s] 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:
 +
<ol>
 +
<li>get cygwin[http://www.cygwin.com/]</li>
 +
<li>configure cygwin[http://developer.mozilla.org/en/docs/Windows_build_prerequisites_using_cygwin]</li>
 +
<li>download the Mono C# compiler[http://www.mono-project.com/Main_Page]</li>
 +
  <ul>
 +
  <li>put mono in your PATH</li>
 +
  </ul>
 +
<li>set up an environment variable DISTCC_MCS_HOSTS=localhost</li>
 +
<li>Checkout the distcc source</li>
 +
  <ul>
 +
  <li>svn co svn://cdot.senecac.on.ca/distcc/trunk</li>
 +
  <li>cd trunk && ./configure && make && make install</li>
 +
  <li>put distcc in your PATH, before cygwin</lI>
 +
  </ul>
 +
<li>get the 0.1 patch[http://docs.google.com/Doc?id=dfkp8fkz_0hdwb6s]</li>
 +
<li>apply the patch</li>
 +
  <ul>
 +
  <li>from the trunk directory</li>
 +
  <li>patch -p0 < pcallaghanzeropointone.txt</li>
 +
  </ul>
 +
<li>configure and build distcc</li>
 +
  <ul>
 +
  <li>from the trunk directory</li>
 +
  <li>./configure && make && make install</li>
 +
  </ul>
 +
<li>get a simple C# file[http://docs.google.com/Doc?id=dfkp8fkz_1hbrfkk]</li>
 +
<li>compile it</li>
 +
  <ul>
 +
  <li>distcc mcs hello.cs</li>
 +
  </ul>
 +
<li>run it</li>
 +
  <ul>
 +
  <li>./hello</li>
 +
  </ul>
 +
</ol>
 +
 
=== Goal for 0.1 Release ===
 
=== Goal for 0.1 Release ===
 
- Add support for Mono's cSharp compiler[http://www.mono-project.com/CSharp_Compiler].  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:
 
- Add support for Mono's cSharp compiler[http://www.mono-project.com/CSharp_Compiler].  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:
Line 49: Line 95:
 
</li>
 
</li>
 
</ul>
 
</ul>
 
  
 
== Project News ==
 
== Project News ==
 
===Known Bugs ===
 
===Known Bugs ===
See [[Distcc With MSVC]]
+
See the list within [[Distcc With MSVC]]

Revision as of 18:58, 19 October 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 some more c# files to test with
  • test this on different OSs
  • more to be added later

Project Details

0.1 Release

A patch[1] 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]
  2. configure cygwin[3]
  3. download the Mono C# compiler[4]
    • 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[5]
  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[6]
  10. compile it
    • distcc mcs hello.cs
  11. run it
    • ./hello

Goal for 0.1 Release

- Add support for Mono's cSharp compiler[7]. 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

Project News

Known Bugs

See the list within Distcc With MSVC