igristov 89f1d3cc22 Fix typo in OIDs corresponding to SHA256, SHA384, and SHA512 (#21707) 2 years ago
..
build 0339fe1171 Remove netcore sources and arcade eng/common files (#21315) 4 years ago
class 89f1d3cc22 Fix typo in OIDs corresponding to SHA256, SHA384, and SHA512 (#21707) 2 years ago
docs 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
errors 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
ilasm 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
jay 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
mcs 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
packages ea50ca48ba Bump msbuild to track xplat-master (#18183) 6 years ago
tests 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
tools a44926a5be Remove DbLinq/sqlmetal unused .csproj files 2 years ago
.gitattributes 8d0e921d8b Fix Windows build due to line ending changes in sed 8 years ago
.gitignore 1ed1688a54 Remove .csproj files from mcs/ build, they were never used (#20883) 4 years ago
AUTHORS beb36c6a31 Remove outdated info and unused files from mcs/ (#4916) 8 years ago
COPYING beb36c6a31 Remove outdated info and unused files from mcs/ (#4916) 8 years ago
CodingStyle beb36c6a31 Remove outdated info and unused files from mcs/ (#4916) 8 years ago
INSTALL.txt beb36c6a31 Remove outdated info and unused files from mcs/ (#4916) 8 years ago
Makefile 07d7471a49 egrep/fgrep are deprecated and obsolete (#21551) 3 years ago
MonoIcon.png 694e99f55c `head -n2 mbas\changelog` 23 years ago
README 55fbd14763 Remove nunit24 from mono build and tree (#13415) 6 years ago
ScalableMonoIcon.svg 7f73e2891f the mono logo converted to svg 23 years ago
diff.html.in d8531c5b86 [csproj] Fix diff rendering when XML comments appear in the diff (#8642) 7 years ago
mkinstalldirs bd73b03521 Missing file 22 years ago

README

This contains the C# components of the Mono project.

* Compilers written in C#

* Class Libraries.

* Regression Test Suites

To install this source code, look at the INSTALL file in the `mono'
package module which drives the compilation of this directory.

* Layout
========

build/
Rules, configuration and makefile components to build
this module.

class/
The class libraries.

docs/
Some notes on the compiler and the class libraries.

errors/
Sample programs that should generate errors by the C# compiler.

ilasm/
The IL assembler.

jay/
Yacc-based parser generator.

mcs/
The Mono C# compiler

packages/
Integrates some packages from NuGet (like Roslyn) into the build system.

tests/
Regression test suite for the C# compiler

tools/
Various small development tools: CorCompare used to compare
two assemblies for differences in the API; csharp is a C# REPL;
cil-strip trims IL from assemblies.

* Building Individual Directories
=================================

You can build individual components in the hierarchy by running the command
"make", and to install it use "make install".

By default, the 4.x profile is built, if you want to build other profiles,
use the following command:

make PROFILE=

And to install:

make PROFILE= install

To turn on verbose mode in the build (for example to diagnose a
problem), you can use the V=1 flag, like this:

make V=1

* Running Unit tests
====================

You can run unit tests in individual components by running the command:

make run-test

If you want to only run the tests in a single fixture (say
'MonoTests.System.TypeTest'), you can use

make run-test TEST_FIXTURE=System.TypeTest

* Acknowledgements
==================

Thanks a lot to Sergey Chaban for his help during the development of
the C# compiler.