You've already forked linux-packaging-mono
Imported Upstream version 5.4.0.167
Former-commit-id: 5624ac747d633e885131e8349322922b6a59baaa
This commit is contained in:
parent
e49d6f06c0
commit
536cd135cc
112
mcs/INSTALL.txt
112
mcs/INSTALL.txt
@@ -23,7 +23,7 @@ compilers and tools.
|
||||
* *
|
||||
*********************************************************************
|
||||
|
||||
If you only want to build a snapshot or a fresh CVS checkout of the
|
||||
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
|
||||
make command, like this:
|
||||
|
||||
@@ -35,72 +35,6 @@ make command, like this:
|
||||
The compilation is bundled with the build due to dependencies on the
|
||||
class libraries on the runtime.
|
||||
|
||||
Build Features for Developers of Mono.
|
||||
======================================
|
||||
|
||||
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. They can be found at
|
||||
www.go-mono.com/daily. 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).
|
||||
|
||||
You can customize your MCS configuration by using:
|
||||
|
||||
./configure [--prefix=PREFIX] [--profile=PROFILE]
|
||||
|
||||
If you do not run the above, the defaults are /usr/local for the
|
||||
prefix, and `default' for the profile.
|
||||
|
||||
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
|
||||
|
||||
If you get "corlib out of sync" errors, try
|
||||
|
||||
make PROFILE="atomic"
|
||||
|
||||
A better alternative would be to fire off a 'make' from a sibling or
|
||||
parent 'mono/' tree.
|
||||
|
||||
Troubleshooting
|
||||
===============
|
||||
|
||||
We try to maintain the CVS tree such that it is bootstrapable from the
|
||||
latest released version of mono and mcs. Occasionally, something in the
|
||||
compiler or runtime changes enough that an existing installation cannot
|
||||
complete a bootstrap from cvs. In this case, go to
|
||||
http://go-mono.com/daily and download a monocharge or monolite tarball.
|
||||
Unpack and copy the .dlls to $prefix/lib and .exes to $prefix/bin/.
|
||||
Then you should be able to complete the build normally (i.e. using make
|
||||
bootstrap).
|
||||
|
||||
wget http://go-mono.com/daily/monolite-20040505.tar.gz
|
||||
tar -zxvf monolite-20040505.tar.gz
|
||||
cd monolite-20040505
|
||||
env prefix=/usr/local sh recharge.sh
|
||||
|
||||
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
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
@@ -110,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:
|
||||
|
||||
./configure --profile=atomic
|
||||
|
||||
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
|
||||
@@ -164,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;
|
||||
|
||||
Reference in New Issue
Block a user