diff options
author | Peter Williams <peterw@mono-cvs.ximian.com> | 2003-07-16 09:08:19 +0400 |
---|---|---|
committer | Peter Williams <peterw@mono-cvs.ximian.com> | 2003-07-16 09:08:19 +0400 |
commit | accc28dd648ec7b8a8ece85564efd9614059710f (patch) | |
tree | 0b24e6512d12f6b82203832d04bf9d7a5db01038 /mcs/INSTALL.txt | |
parent | f900a2765ff70d5b483cac03127cf17e42053260 (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.txt | 68 |
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. - |