[Mono-dev] Compiling mono? I give up [not proceeding] - if anything obvious i'm doing wrong let me know

Oskar Berggren oskar.berggren at gmail.com
Tue May 1 08:53:07 UTC 2012


2012/5/1 Rob Wilkens <robwilkens at gmail.com>:
> [apologies if duplicated - i sent from wrong account at first and don't
> think it went through]
>
> I hate trying to get other people's program's to build properly on a
> different computer than it was originally built on/for, but i gave building
> mono an honest effort before giving up.  I've been trying different


Have you seen this:
http://www.mono-project.com/Parallel_Mono_Environments

It's what I've been following repeatedly with different mono versions
over the last couple of years. Building from released source tar
balls.

I think one of the key differences compared to how I understand what
you've been doing is that you should redirect the install path
completely to not mix with any directory commonly used. I.e. för Mono
2.10.8 I used

./configure --prefix=/usr/local/mono-2.10.8

Repeat the --prefix clause on every configure script in the same "set"
of packages. It will then all install neatly and not corrupt anything.
Couple that with a helper script as detailed on the page to setup the
correct environment variables, and things seems to work out rather
nicely.

Also, remember that for everything except libgdiplus and mono itself,
you need to be inside the environment created by the script in order
for the builds of the remaining packages to build against the intended
mono version.


I've attached some notes from when I last built mono 2.10, with the
configure invocations and expected output I used. At the top a list a
number of native dependencies that I was able to satisfy using regular
apt-get. I also attach the helper scripts I use to execute mono for
this environment - these two files are the only ones that go in
/usr/local/bin. After having installed libgdiplus and mono you should
be able to do:

$ mono210 mono --version

and

$ source mono210env
[mono210]$ mono --version


When that is working, you can have a look at remaining packages if you
like. Remember to do this from "inside" "source mono210env".

/Oskar
-------------- next part --------------

apt-get install

libgdiplus:  libglib2.0-dev libcairo2-dev libpango1.0-dev libgif-dev libtiff4-dev libexif-dev
gtk-sharp:   libatk1.0-dev libgtk2.0-dev libglade2-dev
gnome-sharp: libgnomeui-dev



2.10.8 - 2012-04-02 (for desktop)
-----------------------------------------------
LIBGDIPLUS (2.10)
    $ ./configure --with-pango  --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * Cairo = 1.10.0 (system)
   * Text = pango
   * EXIF tags = yes
   * Codecs supported:

      - TIFF: yes
      - JPEG: yes
      - GIF: yes
      - PNG: yes
      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

    $ make
    $ make install


MONO (2.10.8)
    $ ./configure --prefix=/usr/local/mono-2.10.8  --with-libgdiplus=/usr/local/mono-2.10.8/lib/

        mcs source:    mcs
        olive source:  

   Engine:
	GC:	       sgen and bundled Boehm GC with typed GC and parallel mark
	GLIB:	       embedded
	TLS:           __thread
	SIGALTSTACK:   yes
	Engine:        Building and using the JIT
	oprofile:      no
	BigArrays:     no
	DTrace:        no
	Parallel Mark: yes
	LLVM Back End: no (dynamically loaded: no)

    Libraries:
	Moon Profile:  no (boehm)
	MonoDroid:     no
	MonoTouch:     no
	JNI support:   IKVM Native
	libgdiplus:    /usr/local/mono-2.10.8/lib/
	zlib:          system zlib


    $ make
    $ make install


The following within Mono 2.10.8 environment:

GTK-SHARP (2.12.10)
    $ ./configure --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * C# compiler: /usr/local/mono-2.10.8/bin/mcs  -define:GTK_SHARP_2_6 -define:GTK_SHARP_2_8 -define:GTK_SHARP_2_10 -define:GTK_SHARP_2_12 

   Optional assemblies included in the build:

      * glade-sharp.dll: yes
      * gtk-dotnet.dll: yes 
      * Mono.Cairo.dll: using system assembly

      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

   * Documentation build enabled: yes 

    $ make
    $ make install


GNOME-SHARP (2.24.2)
    $ ./configure --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * C# compiler: /usr/local/mono-2.10.8/bin/mcs  -define:GTK_SHARP_2_6 -define:GTK_SHARP_2_8 -define:GNOME_SHARP_2_16 -define:GNOME_SHARP_2_20  -define:GNOME_SHARP_2_24

   Optional assemblies included in the build:

      * art-sharp.dll: yes
      * gnomevfs-sharp.dll: yes
      * gnome-sharp.dll: yes

      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

            gnome-sharp.dll requires libgnomecanvas, libgnome,
            and libgnomeui.

    $ make
    $ make install



GNOME-DESKTOP-SHARP (2.24.0)

    $ apt-get install librsvg2-dev
    $ ./configure --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * C# compiler: /usr/local/mono-2.10.8/bin/mcs  

   Optional assemblies included in the build:

      * gnome-panel-sharp.dll: no
      * gnome-print-sharp.dll: no
      * gtkhtml-sharp.dll: no
      * gtksourceview2-sharp.dll: no
      * nautilusburn-sharp.dll: no
      * rsvg-sharp.dll: yes
      * vte-sharp.dll: no
      * wnck-sharp.dll: no

    $ make
    $ make install



MONO-TOOLS (2.10)
    $ ./configure --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * Using Gecko = no
   * Using GtkHtml = no
   * Using Mono.WebBrowser = yes
   * Using WebKit = no

      NOTE: if any of the above say 'no' you may install the
            corresponding development packages for them, rerun
            autogen.sh to include them in the build.

    $ make
    $ make install


MONO-DEBUGGER (2.10)
    $ ./configure --prefix=/usr/local/mono-2.10.8
    $ make
    $ make install


XSP (2.10.2)
    $ ./configure --prefix=/usr/local/mono-2.10.8

  Build Environment
    Install prefix:          /usr/local/mono-2.10.8
    Datadir:                 /usr/local/mono-2.10.8/share
    Libdir:                  /usr/local/mono-2.10.8/lib
    Build documentation:     yes
    Mono 2.0 compiler:       /usr/local/mono-2.10.8/bin/gmcs
    Mono 4.0 compiler:       /usr/local/mono-2.10.8/bin/dmcs
    Target frameworks:       .NET 2.0, .NET 4.0
    Build SQLite samples:    yes

    $ make
    $ make install


MONO-ADDINS (0.6.2)
    $ ./configure --prefix=/usr/local/mono-2.10.8
    $ make
    $ make install


MONODEVELOP (2.8.6.5)
    $ ./configure --prefix=/usr/local/mono-2.10.8

Configuration summary

   * Installation prefix = /usr/local/mono-2.10.8
   * C# compiler = /usr/local/mono-2.10.8/bin/dmcs
   * Mono class library development extensions: yes
   * Version control support: yes
   *   Providers:
   *     Subversion: yes
   *     Git: yes
   * Platform bindings: GNOME 
   * Unit tests: no

    $ make
    $ make install


monodevelop-database-2.8.6.5
    $ ./configure --prefix=/usr/local/mono-2.10.8
    $ make
    $ make install


-------------- next part --------------
A non-text attachment was scrubbed...
Name: mono210
Type: application/octet-stream
Size: 519 bytes
Desc: not available
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120501/b4777ae5/attachment-0002.obj>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: mono210env
Type: application/octet-stream
Size: 531 bytes
Desc: not available
URL: <http://lists.ximian.com/pipermail/mono-devel-list/attachments/20120501/b4777ae5/attachment-0003.obj>


More information about the Mono-devel-list mailing list