X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=mcs%2FINSTALL.txt;h=3e7c06fad829f5a3c75d83e43d66dcf320ff87ca;hb=a984f20e232d863a9d3b7848023f78816aa282e7;hp=a39ef19d342688858393f236ba603b61ebdfa54d;hpb=b73428cdf0d7ca48aa01a9216e3e1c86a809d21c;p=mono.git diff --git a/mcs/INSTALL.txt b/mcs/INSTALL.txt index a39ef19d342..3e7c06fad82 100644 --- a/mcs/INSTALL.txt +++ b/mcs/INSTALL.txt @@ -9,64 +9,31 @@ be supplemented by the class libraries, which are written in C#. This package contains the components written in C#: class libraries, compilers and tools. -Build Process for Users. -======================== - -If you only want to build a snapshot or a fresh CVS checkout of the +********************************************************************* +* * +* NOTICE * +* * +* Unless you are developing the class libraries, you should * +* not need to do any build steps in this directory. * +* * +* Go to ../mono and read the README file to compile and * +* install. * +* * +* ../mono is where you have your `mono' source download * +* * +********************************************************************* + +If you only want to build a snapshot or a fresh checkout of the sources, you should go into the `mono' sibling directory and issue the -following command: - - ./autogen --prefix=/usr/local - make fullbuild - -That will build and install the code in a single pass. The -compilation is bundled with the build due to depedencies on the class -libraries on the runtime. - -Build Features for Developers. -============================== - -These instructions apply to both Linux and Windows. To build this -package, you must already have a C# compiler installed. This means -that to build on Linux, you need to get a distribution of the MCS -binaries; these are called monocharges. See README.building for -information on where to get them. On Windows, you can just use the -Microsoft compiler. You also need GNU make to build the software (on -Windows, you will need for example the Cygwin environment setup). - -To build the compiler and class libraries, run: - - make - -The libraries will be placed in the directory class/lib/ and the mcs -compiler executable in mcs/. - -To install them, run the following: - - make install - -The default prefix is /usr/local. To change this configuration option type: - - echo prefix=/your-prefix >> build/config.make - -If you get "corlib out of sync" errors, try +make command, like this: - make PROFILE="atomic" + cd ../mono + ./autogen.sh --prefix=/usr/local + make + make install -The difference between the two modes is explained farther down. - -Monocharges -=========== - -If you are tracking Mono's development, you may sometimes need to share -the compiled libraries with others, you can do: - - make monocharge - -Or a light version, which contains only the essential libraries and -results in a much smaller file: - - make monocharge-lite +The compilation is bundled with the build due to dependencies on the +class libraries on the runtime. Configuration ============= @@ -77,48 +44,15 @@ place your configuration options in build/config.make A list of variables that control the build are listed in the file build/config-default.make. -Build profiles? What? -====================== - -Don't worry about them too much. If you're wondering which to use: -use the default if you can (that's why it's the default!) and use -the atomic if you have to. - -The default profile uses the C# compiler and class libaries as they -are built. This lets you build MCS without needing to have already -installed it, but can fail if the libraries change significantly. -(This is the source of the dreaded "corlib out of sync" warning, most -of the time.) - -The atomic profile tries to use the system compiler and preexisting -MCS libraries. New libaries are built against this constant reference -point, so if a newly built library has a binary incompatibility, the -rest of your build can proceed. - -If you want to always use the atomic profile, run this command: - - echo PROFILE=atomic >> build/config.make - More About the Build System =========================== More information is found in build/README.*. Here's a quick rundown of the features: - * Unified build system for Windows and Linux. Windows is still - fairly untested, but "should work." Unfortunately I don't - have a Windows machine to test on, but Gonzalo can get - corlib to build I think and that's about as complicated as - it gets. - * Profile support. 'make PROFILE=profilename' or 'export PROFILE=profilename ; make' will work. Profiles are defined - in build/profiles/profilename.make ; right now there isn't - too much going on. The 'bootstrap' profile will build the - way makefile.gnu did on Linux, by setting MONO_PATH and - using mcs/mcs.exe; the default profile will build against - the existing system libraries and compile with 'mcs', which - should reduce a lot of 'corlib out of sync' warnings. + in build/profiles/profilename.make ; * Important variables are shared among makefiles now; you can edit build/config.make (see build/config-default.make for a @@ -131,16 +65,11 @@ of the features: * Test libraries now live in class/Library/Library_test.dll, not class/Library/Test. 'make test' will build the test DLL, - 'make run-test' will actually run the nunit tests. Set the - variable TEST_HARNESS to run with a program other than - nunit-console (for example, nunit-gtk). + 'make run-test' will actually run the nunit tests. * Standardized recursive targets: all, clean, install, test, run-test. Read build/README.makefiles for definitions of what they should do * (Relatively) sane 'make dist' target; 'make distcheck' - support; cute 'make monocharge' and 'make monocharge-lite' - targets. They're made possible because 'make install' now - supports DESTDIR a la automake, which I'm sure someone cares - about. + support;