Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Williams <peterw@mono-cvs.ximian.com>2003-07-16 09:08:19 +0400
committerPeter Williams <peterw@mono-cvs.ximian.com>2003-07-16 09:08:19 +0400
commitaccc28dd648ec7b8a8ece85564efd9614059710f (patch)
tree0b24e6512d12f6b82203832d04bf9d7a5db01038 /mcs/INSTALL.txt
parentf900a2765ff70d5b483cac03127cf17e42053260 (diff)
2003-07-16 Peter Williams <peter@newton.cx>
A whole passel of build system changes. Doc updates: * build/README.makefiles: Doc updates. * build/profiles/net_1_0.make: Doc changes. * INSTALL.txt: A few more touchups. Better defaults: * build/config-default.make (prefix): Default install prefix should be /usr/local. * build/profiles/bootstrap.make: This profile ... * build/profiles/default.make: ... is now the default. * build/profiles/atomic.make: And the default is now this. Fixes for pre-build checks: * Makefile: Do the platform and (new) profile checks before the build, which took some infrastructure changes. * build/rules.make: Allow a Makefile to specify its own all/install/etc targets. * build/profiles/default.make (profile-check): Add a blank target here. * build/profiles/atomic.make: Check for a full MCS install to build against. HP/UX fixes with help from Bernie Solomon: * build/config-default.make (ECHO_ESCAPE): HP/UX 'echo' doesn't need a -e parameter to interpret escape codes. Test for that and define a configuration parameter. * build/library.make ($(makefrag)): Use $(ECHO_ESCAPE) instead of assuming that 'echo -e' will interpret escape codes. * build/executable.make ($(makefrag)): Here too. A make distcheck fix: * Makefile: Inherit the current prefix so that the build can find the right System.Xml.dll. And Windows build fixes with the invaluable help of Sebastian Pouliot (in various subdirectories). class/Mono.Data.SqliteClient: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile (LIB_MCS_FLAGS): Add /r:System.dll here. Why wasn't this necessary with MCS? (csc.exe needs it.) class/System: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile (SCARY_LIB): Flip around since what was bootstrap is now default. class/System/Test/System.Net: 2003-07-16 Peter Williams <peter@newton.cx> * IPAddressTest.cs: #if NET_1_1 for some IPv6 tests that rely on some NET_1_1-only features. class/System/Test/System.Net.Sockets: 2003-07-16 Peter Williams <peter@newton.cx> * TcpListenerTest.cs: Initialize outSock to null to prevent an mcs compile error. class/System.Data: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile: Flip around for the new default build profile. (In a separate commit) class/System.Windows.Forms: 2003-07-16 Peter Williams <peter@newton.cx> * System.Windows.Forms.dll.sources: Don't build with two AssemblyInfo.cs files. class/corlib: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile ($(test_makefrag)): Use $(ECHO_ESCAPE) for HP/UX portability fixes. (all-local): Don't build $(cmplib) by default, it's not something most people need, and the build is broken on Windows right now anyway. ilasm: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile (ILParser.cs): Move this from parser/ so we avoid slash direction issues on the Windows build. * .cvsignore: Add ILParser.cs here. ilasm/parser: 2003-07-16 Peter Williams <peter@newton.cx> * .cvsignore: ILParser.cs has been moved. tools: 2003-07-16 Peter Williams <peter@newton.cx> * Makefile (DIST_ONLY_SUBDIRS): Don't build SqlSharp, it's very old and doesn't build on Windows. svn path=/trunk/mcs/; revision=16292
Diffstat (limited to 'mcs/INSTALL.txt')
-rw-r--r--mcs/INSTALL.txt68
1 files changed, 51 insertions, 17 deletions
diff --git a/mcs/INSTALL.txt b/mcs/INSTALL.txt
index e21142f75a8..7013d30ea06 100644
--- a/mcs/INSTALL.txt
+++ b/mcs/INSTALL.txt
@@ -10,15 +10,16 @@ be supplemented by corlib, a CLR assembly to which they are closely
tied. This package provides the C# sources for corlib as well as some
additional assemblies and mcs, the Mono C# compiler.
-To build this package, you must already have a C# compiler installed.
-Build instructions for *NIX and Microsoft Windows follow.
-
-Building mcs
+Building MCS
============
-These instructions apply to both Unix and Windows. You need GNU make
-to build the software (on Windows, you will need for example the
-Cygwin environment setup)
+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:
@@ -31,31 +32,65 @@ To install them, run the following:
make install
-The default is /usr/local, to change this configuration option type:
+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 PROFILE="atomic"
- echo prefix=/your-prefix > build/config.make
+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:
+Or a light version, which contains only the essential libraries and
+results in a much smaller file:
make monocharge-lite
-
Configuration
--------------
+=============
If you want to change the configuration options for the build process,
place your configuration options in build/config.make
-A list of variables that control the build are listed in the
-build/config-default.make
+A list of variables that control the build are listed in the file
+build/config-default.make.
+
+Build profiles? What?
+======================
-The Build System
-----------------
+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
@@ -96,4 +131,3 @@ The Build System
targets. They're made possible because 'make install' now
supports DESTDIR a la automake, which I'm sure someone cares
about.
-