Merge pull request #5714 from alexischr/update_bockbuild
[mono.git] / mcs / INSTALL.txt
1 Basic Installation
2 ==================
3
4 The Mono project has developed mono, a CLI runtime. The build process
5 of each of these depends on nothing more than a C compiler and glib2.
6
7 However, to provide a working runtime environment, these programs must
8 be supplemented by the class libraries, which are written in C#.  This
9 package contains the components written in C#: class libraries,
10 compilers and tools.
11
12 *********************************************************************
13 *                                                                   *
14 *                            NOTICE                                 *
15 *                                                                   *
16 *       Unless you are developing the class libraries, you should   *
17 *       not need to do any build steps in this directory.           *
18 *                                                                   *
19 *       Go to ../mono and read the README file to compile and       *
20 *       install.                                                    *
21 *                                                                   *
22 *       ../mono is where you have your `mono' source download       *
23 *                                                                   *
24 *********************************************************************
25
26 If you only want to build a snapshot or a fresh checkout of the
27 sources, you should go into the `mono' sibling directory and issue the
28 make command, like this:
29
30           cd ../mono
31           ./autogen.sh --prefix=/usr/local
32           make
33           make install
34
35 The compilation is bundled with the build due to dependencies on the
36 class libraries on the runtime.
37
38 Configuration
39 =============
40
41 If you want to change the configuration options for the build process,
42 place your configuration options in build/config.make
43
44 A list of variables that control the build are listed in the file
45 build/config-default.make.
46
47 More About the Build System
48 ===========================
49
50 More information is found in build/README.*. Here's a quick rundown
51 of the features:
52
53         * Profile support. 'make PROFILE=profilename' or 'export
54           PROFILE=profilename ; make' will work. Profiles are defined
55           in build/profiles/profilename.make ;
56
57         * Important variables are shared among makefiles now; you can
58           edit build/config.make (see build/config-default.make for a
59           template) and give global settings, or just have a much
60           saner time of writing new makefiles.
61
62         * Response files, stamps, and other build trivia now all land
63           in build/deps/, making the library build directories
64           cleaner.
65
66         * Test libraries now live in class/Library/Library_test.dll,
67           not class/Library/Test. 'make test' will build the test DLL,
68           'make run-test' will actually run the nunit tests.
69
70         * Standardized recursive targets: all, clean, install, test,
71           run-test.  Read build/README.makefiles for definitions of
72           what they should do
73
74         * (Relatively) sane 'make dist' target; 'make distcheck'
75           support;