Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / README
index ef97cc14d5f7306c51035a16bb61c64059387cbc..c670f181f19609fd716a8e484c1db9d46c8c99d2 100644 (file)
@@ -1,4 +1,4 @@
-This contains code written in C# of Mono, it contains:
+This contains the C# components of the Mono project.
 
        * Compilers written in C#
 
@@ -9,10 +9,8 @@ This contains code written in C# of Mono, it contains:
 To install this source code, look at the INSTALL file in the `mono'
 package module which drives the compilation of this directory.
 
-Layout:
-
-       bmcs/
-               New experimental Basic compiler.
+* Layout
+========
 
        build/
                Rules, configuration and makefile components to build
@@ -21,80 +19,70 @@ Layout:
        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.
 
-       gmcs/
-
-               The Mono C# compiler with Generics support.  This will
-               become the default in Mono 2.0.
+       ilasm/
+               The IL assembler.
 
        jay/
                Yacc-based parser generator.
 
        mcs/
-               The Mono C# compiler (1.0 + 2.0 minus generics).
+               The Mono C# compiler
 
-       tests/
-               Regression test suite for the C# compiler
+       nunit24/
+               An old copy of the NUnit 2.4 library that we ship for historical reasons.
 
-       docs/
-               Some notes on the compiler and the class libraries.
+       packages/
+               Integrates some packages from NuGet (like Roslyn) into the build system.
 
-       nant/
-               A copy of nant source code, used during the build process
-               on Windows.
+       tests/
+               Regression test suite for the C# compiler
 
        tools/
                Various small development tools: CorCompare used to compare
-               two assemblies for differences in the API;   TypeReflector is 
-               a tool used to introspect types from assemblies from the 
-               command line;  MonoStyle helps you keep your code indendented
-               with the Mono programming style.
+               two assemblies for differences in the API; csharp is a C# REPL;
+               cil-strip trims IL from assemblies.
 
+* Building Individual Directories
+=================================
 
-Thanks a lot to Sergey Chaban for his help during the development of
-the C# compiler.
+You can build individual components in the hierarchy by running the command
+"make", and to install it use "make install".
 
-LICENSE
+By default, the 4.x profile is built, if you want to build other profiles,
+use the following command:
 
-The mcs C# compiler and monoresgen are licensed to you under the GPL, version 2.
-The complete text of the GPL is in the 'COPYING' file.
+       make PROFILE=<profilename>
 
-    Copyright (C) 2001-2002  Ximian, Inc.
+And to install:
 
-    This program is free software; you can redistribute it and/or modify
-    it under the terms of version 2 of the GNU General Public License as 
-    published by the Free Software Foundation.
+       make PROFILE=<profilename> install
 
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
+To turn on verbose mode in the build (for example to diagnose a
+problem), you can use the V=1 flag, like this:
 
-    You should have received a copy of the GNU General Public License
-    along with this program; if not, write to the Free Software
-    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+       make V=1
 
-The class libraries are licensed according to the following license:
+* Running Unit tests
+====================
 
-    Copyright (C) 2001-2002  Ximian, Inc.
+You can run unit tests in individual components by running the command:
 
-Permission is hereby granted, free of charge, to any person obtaining a
-copy of this software and associated documentation files (the "Software"),
-to deal in the Software without restriction, including without limitation
-the rights to use, copy, modify, merge, publish, distribute, sublicense,
-and/or sell copies of the Software, and to permit persons to whom the
-Software is furnished to do so, subject to the following conditions:
+       make run-test
 
-The above copyright notice and this permission notice shall be included
-in all copies or substantial portions of the Software.
+If you want to only run the tests in a single fixture (say
+'MonoTests.System.TypeTest'), you can use
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR
-OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
-ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
-OTHER DEALINGS IN THE SOFTWARE.
+       make run-test TEST_FIXTURE=System.TypeTest
+
+* Acknowledgements
+==================
+
+Thanks a lot to Sergey Chaban for his help during the development of
+the C# compiler.