Merge pull request #2894 from marek-safar/mono.security
[mono.git] / mcs / README
1 This contains the C# components of the Mono project.
2
3         * Compilers written in C#
4
5         * Class Libraries.
6
7         * Regression Test Suites
8
9 To install this source code, look at the INSTALL file in the `mono'
10 package module which drives the compilation of this directory.
11
12 * Layout
13 ========
14
15         build/
16                 Rules, configuration and makefile components to build
17                 this module.
18
19         class/
20                 The class libraries.
21
22         errors/
23                 Sample programs that should generate errors by the C# compiler.
24
25         jay/
26                 Yacc-based parser generator.
27
28         mcs/
29                 The Mono C# compiler
30
31         tests/
32                 Regression test suite for the C# compiler
33
34         docs/
35                 Some notes on the compiler and the class libraries.
36
37         nant/
38                 A copy of nant source code, used during the build process
39                 on Windows.
40
41         tools/
42                 Various small development tools: CorCompare used to compare
43                 two assemblies for differences in the API;   TypeReflector is 
44                 a tool used to introspect types from assemblies from the 
45                 command line;  MonoStyle helps you keep your code indendented
46                 with the Mono programming style.
47
48 * Building Individual Directories
49 =================================
50
51 You can build individual components in the hierarchy by running the command
52 "make", and to install it use "make install".
53
54 By default, the 2.x profile is built, if you want to build the net 1.1 profile,
55 use the following command:
56
57         make PROFILE=net_1_1
58
59 And to install:
60
61         make PROFILE=net_1_1 install
62
63 To turn on verbose mode in the build (for example to diagnose a
64 problem), you can use the V=1 flag, like this:
65
66         make V=1
67
68 * Running Unit tests
69 ====================
70
71 You can run unit tests in individual components by running the command
72 "make run-test".  If you want to run tests for a different profile (say
73 'net_1_1')
74
75         make run-test PROFILE=net_1_1
76
77 If you want to only run the tests in a single fixture (say
78 'MonoTests.System.TypeTest'), you can use
79
80         make run-test TEST_HARNESS_FLAGS=/fixture:MonoTests.System.TypeTest
81
82 * Acknowledgements
83 ==================
84
85 Thanks a lot to Sergey Chaban for his help during the development of
86 the C# compiler.
87