4 The Mono project has developed mono, an x86-specific CL JIT compiler and
5 mint, a portable CLI interpreter. The build process of each of these
6 depends on nothing more than a C compiler, glib2 and libgc.
8 However, to provide a working runtime environment, these programs must
9 be supplemented by corlib, a CLR assembly to which they are closely
10 tied. This package provides the C# sources for corlib as well as some
11 additional assemblies and mcs, the Mono C# compiler.
13 To build this package, you must already have a C# compiler installed.
14 Build instructions for *NIX and Microsoft Windows follow.
19 These instructions apply to both Unix and Windows. You need GNU make
20 to build the software (on Windows, you will need for example the
21 Cygwin environment setup)
23 To build the compiler and class libraries, run:
27 The libraries will be placed in the directory class/lib/ and the mcs
28 compiler executable in mcs/.
30 To install them, run the following:
34 The default is /usr/local, to change this configuration option type:
36 echo prefix=/your-prefix > build/config.make
38 If you are tracking Mono's development, you may sometimes need to share
39 the compiled libraries with others, you can do:
51 If you want to change the configuration options for the build process,
52 place your configuration options in build/config.make
54 A list of variables that control the build are listed in the
55 build/config-default.make
60 * Unified build system for Windows and Linux. Windows is still
61 fairly untested, but "should work." Unfortunately I don't
62 have a Windows machine to test on, but Gonzalo can get
63 corlib to build I think and that's about as complicated as
66 * Profile support. 'make PROFILE=profilename' or 'export
67 PROFILE=profilename ; make' will work. Profiles are defined
68 in build/profiles/profilename.make ; right now there isn't
69 too much going on. The 'bootstrap' profile will build the
70 way makefile.gnu did on Linux, by setting MONO_PATH and
71 using mcs/mcs.exe; the default profile will build against
72 the existing system libraries and compile with 'mcs', which
73 should reduce a lot of 'corlib out of sync' warnings.
75 * Important variables are shared among makefiles now; you can
76 edit build/config.make (see build/config-default.make for a
77 template) and give global settings, or just have a much
78 saner time of writing new makefiles.
80 * Response files, stamps, and other build trivia now all land
81 in build/deps/, making the library build directories
84 * Test libraries now live in class/Library/Library_test.dll,
85 not class/Library/Test. 'make test' will build the test DLL,
86 'make run-test' will actually run the nunit tests. Set the
87 variable TEST_HARNESS to run with a program other than
88 nunit-console (for example, nunit-gtk).
90 * Standardized recursive targets: all, clean, install, test,
91 run-test. Read build/README.makefiles for definitions of
94 * (Relatively) sane 'make dist' target; 'make distcheck'
95 support; cute 'make monocharge' and 'make monocharge-lite'
96 targets. They're made possible because 'make install' now
97 supports DESTDIR a la automake, which I'm sure someone cares