[Mono-dev] Standard name for mcs

Russell Wallace russell.wallace at gmail.com
Sun Jun 27 12:37:15 EDT 2010

I'm trying to distribute a C# program in both binary and source form
so that the user can optionally recompile it.

According to http://www.mono-project.com/CSharp_Compiler

"You have to pick one of:

mcs: compiler to target 1.1 runtime (to be deprecated with Mono 2.8).
gmcs: compiler to target the 2.0 runtime.
smcs: compiler to target the 2.1 runtime, to build Moonlight applications.
dmcs: Starting with Mono 2.6 this command is the C# 4.0 compiler, and
references the 4.0 runtime."

And indeed on my Ubuntu 10.04 VM, 'gmcs' works but 'mcs' gives an
error message. (dmcs would be nice to have, presumably it just hasn't
made it through the pipeline yet -- the Ubuntu version of Mono is
2.4.4 -- which is fair enough.)

The problem I'm trying to solve is how to write a reliable makefile. I
can have the makefile call gmcs, but then presumably this will start
failing as soon as dmcs becomes the standard version.

Would it be possible to define a command to run whatever the
latest/currently installed C# compiler is? It seems to me that command
should be mcs, but it doesn't really matter what it is, as long as it
works reliably on all systems.

More information about the Mono-devel-list mailing list