Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: mono-2-8
Fetching contributors…

Cannot retrieve contributors at this time

file 120 lines (88 sloc) 4.556 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
README.vsnet Last updated: 2006-02-01


SVN includes a Visual Studio .NET 2005 solution, mono.sln, and some
projects files to build most of the unmanaged parts in Mono.

The "mono.sln" solution file contains the VC projects files for:

        * Embedded Samples
         * test-invoke.vcproj
         * test-metadata.vcproj
         * teste.vcproj
        * Libraries
         * libgc.vcproj
         * libmono.vcproj
        * Tools
         * genmdesc.vcproj
         * monoburg.vcproj
         * monodiet.vcproj
         * monodis.vcproj
         * monograph.vcproj
         * pedump.vcproj
        * mono.vcproj
        

REQUIREMENTS

* A working (i.e. where you could succesfully build mono) cygwin
(http://www.cygwin.com/) setup! This is required to:
* generate some files (via monoburg and genmdesc);
* build the class libraries; and
* test for regressions.

* Visual Studio .NET 2005. Previous Visual Studio versions may work or
requires, hopefully minimal, changes.
        
* VSDependencies.zip must be decompressed under the /mono/ directory
(otherwise you will need to edit all the projects files). This file can
be downloaded from http://www.go-mono.com/archive/VSDependencies.zip


LOCAL CHANGES

Sadly solution/projects files aren't easy to move from computers to
computers (well unless everyone follow the same naming convention) so
you'll likely have to changes some options in order to compile the
solution.

        * each executed assembly (i.e. the EXE) must be able to find a
        working mscorlib.dll (and all the other required assemblies).
        This can be done in different ways. My preference is to use the
        project "properties pages" in the "Configuration Properties
        \Debugging\Environment" options and set MONO_PATH to the class
        libraries directory build by cygwin (local) or on Linux
        (remote).
        
        e.g. MONO_PATH=z:\svn\mcs\class\lib\default\
        allows me to use the class libs build under Linux, while
        MONO_PATH=C:\cygwin\opt\mono\lib\mono\1.0
        use the one built from cygwin (after a make install)

Some useful informations to adapt the solution/project files...

        * My cygwin root dir is: c:\cygwin\
        * My username is: poupou
        * My mono install prefix is: /opt/mono
                

BUILDING

Once everything is installed (and edited) you can right-click on the
"mono" solution (in the "Solution Explorer"), select "Clean
Solution" (for the first time) then "Build Solution".


KNOWN ISSUES

[1] Most, BUT NOT ALL, the regressions tests pass under this build. The
failures seems limited to some mathematical differences and to code
relying on the stack walking functions. The hacks to replace the GCC
functions (__builtin_frame_address and __builtin_return_address) are
incomplete;

[2] The solution doesn't provide complete (i.e. from scratch) build. It
requires a working cygwin environment to create some files (e.g. via
genmdesc, monoburg). This isn't so bad as without cygwin you wouldn't be
able to test Mono properly (see REQUIREMENTS);

[3] Only the Debug target is configured properly (that would be easy to
fix, but would require turning off some optimizations like omitting
stack frames). Anyway there are other issues [1] to fix before switching
to Release and IMHO the _biggest_ advantage to VS.NET is it's debugger/
debugging tools;

[4] The C compiler emits _lots_ of warning during compilation. Some
warnings have been turned off for some projects (there was so much that
it slowed down compilation). You can bring them back (or hide more of
them) using the project "properties pages" windows, "Configuration
Properties\C/C++\Advanced\Disable Specific Warnings";

[5] Visual Studio 2005 should have all the latest header files required,
but if not (or if you're using an older version of VS) then install MS
Platform SDK (Windows Server 2003 is the latest) to ensure you have the
latest Windows header files. You can download it from:
http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm

[6] Not everyone has VS.NET so it is possible you may have to add some
(new) files to the build from time to time. See "more informations" for
reporting those changes.

[7] Probably a lot more I didn't discover... or has changed since.


MORE INFORMATION

Please email <mono-devel-list@lists.ximian.com> if you have any problem
and/or if there's something wrong/missing in the instructions.

An online version of this file is available at
http://www.mono-project.com/Compiling_Mono_VSNET
Something went wrong with that request. Please try again.