diff options
Diffstat (limited to 'web/compiling')
-rw-r--r-- | web/compiling | 235 |
1 files changed, 235 insertions, 0 deletions
diff --git a/web/compiling b/web/compiling new file mode 100644 index 00000000000..95281a93683 --- /dev/null +++ b/web/compiling @@ -0,0 +1,235 @@ +* Compiling Mono + + This document describes how to compile and install Mono from + its source code. If you are only interested in running Mono, + you might want to install Mono from packages, which have been + tested. + + The core of Mono is split in two components: + + <ul> + * C components (available in the mono package) + + * C# components (available in the mcs package). + </ul> + + Mono is also available in various forms: + + <dl> + <dt>Officially <a href="download.html">released</a> packages.</dt> + <dd> + <p>This is the format of choice for people to use, since these + have been tested and are known to build and work. + </dd> + <dt><a href="daily">Daily</a> packages.</dt> + <dd> + <p>This is a service offered for people who want to try out the + daily changes. Baked daily.</dd> + <dt>CVS source code.</dt> + <dd> + <p>These are available to Mono <a href="ccvs.html">developers</a> and + also for enthusiasts through <a href="anoncvs.html">anonymous CVS</a>. + </dd> + <dt>CVS snapshots.</dt> + <dd> + <p>Available for curious developers which do not necessarily want to + install the CVS source. Baked daily. + </dd> + </dl> + +* Compiling the code + + There are a number of ways of compiling Mono + + <ul> + <li>From the <a href="#scripts">scripts</A> + + <LI><a href="#install">Manually</a> for the first time. + + <li>Manually, <a href="#upgrade">while upgrading</a> to CVS + </ul> + + (which is an easy way to get the latest CVS information) + +<a name="scripts"> +* Compiling with scripts + + These scripts should be used for installing from packages, specially + on Windows, where dependencies have not always been installed. + + There are scripts to help build mono for both Unix and Windows. Get + <a href="mono-build.sh">mono-build.sh</a> for Unix, or <a + href="mono-build-w32.sh">mono-build-w32.sh</a> for Windows. + These scripts automate the installation of GLIB and pkgconfig + (building from source on Unix, and using binary packages + provided by the GIMP for Windows project on Windows.) To use + the script, follow these simple steps: + + <ul> + * Save the script for your platform somewhere (e.g. /usr/local/bin) + * Make the script executable (i.e chmod 755 /usr/local/bin/mono-build.sh) + * Create a directory to hold the mono source, and the compiled binaries (e.g. mkdir ~/mono) + * Change to the new directory (i.e. cd ~/mono) + * run the script (i.e. /usr/local/bin/mono-build.sh) + </ul> + + The script requires wget on either platform, and building the + software requires make, gcc, automake, autoconf, and libtool. + You should install these packages from your distribution or + with the cygwin installer. You should also take care of setting + the right environment variables as the PKG_CONFIG_FLAGS, etc. + + The script will download required packages from + www.go-mono.com and do a cvs checkout of mono in the current + directory. <b>IMPORTANT!:</b> The cvs server chosen defaults to + anonymous cvs; + set your CVSROOT environment variable before running the script to + select a particular cvs server. + +<a name="install"> + +** Building the software manually + + You will need to obtain the Mono dependencies first: <a + href="http://www.gtk.org">glib 2.x</a> and + <a href="http://www.freedesktop.org/software/pkgconfig">pkg-config</a>. + +*** Building From Packages + + This applies to both the officially released packages, as well as the + daily tarball packages. + + <ul> + Unpack the Mono runtime distribution: + <pre class="shell"> + tar xzvf mono-X.XX.tar.gz + cd mono-X.XX</pre> + <p> + + Then configure, compile and install: + + <pre class="shell"> + ./configure --prefix=/usr/local + make + make install</pre> + + This will give you a runtime, C# compiler and runtime + libraries. + + If you want to recompile the runtime and the compiler, + follow these steps, first unpack the MCS package: + + <pre class="shell"> + tar xzvf mcs-X.XX.tar.gz</pre> + + Then use the following command to compile and install: + + <pre class="shell"> + ./configure --profile=atomic + make</pre> + + You can change /usr/local to something else if you want. + </ul> + +*** Building from CVS + + To upgrade your Mono installation from CVS, it is very + important that you update your Mono and MCS modules from CVS + at the same time. Failure to do so might result in a + problematic installation as the runtime and the class + libraries will be out of sync. + + Run the following commands to update your CVS tree (more + details in <a href="ccvs.html">Cvs and Mono</a> and the <A + href="anoncvs.html">AnonCVS and Mono</a> pages). + + <pre> + (cd mono; cvs update -dP .) + (cd mcs; cvs update -dP .) + </pre> + + Then you can run: + + <pre> + (cd mono; make bootstrap) + </pre> + + Now you can install the result: + + <pre> + (cd mono; make install) + </pre> + + Notice that following the above procedure does not require you + to manually install the software in the `mcs' directory, as + the relevant files will be copied by the `mono' makefiles. + +* Software resources and notes + + The required and additional software can be downloaded here: + + * Microsoft's .NET Framework SDK from + <a href="http://msdn.microsoft.com/downloads"> + msdn.microsoft.com/downloads</a>. + + * Cygwin and the GNU Make tools from + <a href="http://www.cygwin.com">www.cygwin.com</a>. + Some people observed problems with autoconf 2.52. Installing + autoconf 2.13 helped in those cases. + + * Precompiled GLIB 2.0 and pkg-config packages (and + their dependencies) by the <a href="http://www.gimp.org/~tml/gimp/win32//index.html">GIMP for Windows</a> project from + <a href="http://www.go-mono.com/archive/pkgconfig-0.11-20020310.zip">http://www.go-mono.com/archive/pkgconfig-0.11-20020310.zip</a><br> + <a href="http://www.go-mono.com/archive/glib-2.0.4-20020703.zip">http://www.go-mono.com/archive/glib-2.0.4-20020703.zip</a> <br> + <a href="http://www.go-mono.com/archive/glib-dev-2.0.4-20020703.zip">http://www.go-mono.com/archive/glib-dev-2.0.4-20020703.zip</a> <br> + <a href="http://www.go-mono.com/archive/libiconv-1.7.zip">http://www.go-mono.com/archive/libiconv-1.7.zip</a> <br> + <a href="http://www.go-mono.com/archive/libiconv-dev-1.7.zip">http://www.go-mono.com/archive/libiconv-dev-1.7-20020101.zip</a> <br> + <a href="http://www.go-mono.com/archive/libintl-0.10.40-20020101.zip">http://www.go-mono.com/archive/libintl-0.10.40-20020101.zip</a><br> + + + * Download the Mono source code from the + <a href="download.html">packaged versions</a> or + the <a href="http://www.go-mono.com/snapshots"> + nightly snapshots</a> or the <a href="anoncvs.html"> + Anonymous CVS</a>. The nightly snapshots are done every + night at 10pm EST (Boston Time). The nightly snapshots are + not guaranteed to build, but most of the time they should. + </ul> + + +*** Notes on compiling GLIB 2.0 and pkg-config from source: + + + <ul> + + * Some people observed problems with autoconf 2.52. Installing + autoconf 2.13 helped in those cases (don't forget to do a + `make maintainer-clean' after the update). + + * Download, compile and install <a href="http://www.freedesktop.org/software/pkgconfig">pkg-config</a> from source. + (I had to change line 674 of + <nobr><tt>pkg-config-0.8.0/glib-1.2.8/gstrfuncs.c</tt></nobr> from + <nobr><tt>extern char *strsignal (int sig);</tt></nobr> to + <nobr><tt>extern const char *strsignal (int sig);</tt></nobr>. + +<pre class="shell"> +tar xzvf pkg-config-0.8.0.tar.gz +cd pkg-config-0.8.0 +./configure --prefix=/usr +make +make install +</pre> + + * Download, compile and install <a href="ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.7.tar.gz">libiconv</a> from source.<br> + If you dont have MS Visual C/C++ 4.0 or 5.0 or 6.0 you can also try + the binary package available at <a + href="http://www.gimp.org/~tml/gimp/win32/libiconv-1.9.1.bin.woe32.zip"> + http://www.gimp.org/~tml/gimp/win32/libiconv-1.9.1.bin.woe32.zip</a> + + + * Download, compile and install the + <a href="ftp://ftp.gtk.org/pub/gtk/v2.0/glib-2.0.6.tar.gz"> + glib 2.0</a> from source. + + </ul> + |