[IronPython] Building IronPython/IronRuby for Mono? Yes!

Doug Blank doug.blank at gmail.com
Wed Mar 23 14:13:41 CET 2011

On Tue, Mar 22, 2011 at 1:30 PM, Jeff Hardy <jdhardy at gmail.com> wrote:
> On Tue, Mar 22, 2011 at 11:03 AM, Doug Blank <doug.blank at gmail.com> wrote:
>> I'm not too concerned about ipy.exe itself, but about being about to
>> use the dlls.
>> I'm trying to verify that the IronPython 2.7 dlls absolutely need Mono
>> 2.8 or later. If that is true, I'll have to stay with IronPython 2.6
>> until the rest of the Linux distros catch up (or I make my own version
>> of Mono to download). Perhaps Miguel or someone from SuSE can add more
>> details to the dependencies for building and running IronPython 2.7?
> IronPython 2.7 *should* build for .NET 2.0, although it's not the
> default (I don't remember the name of the MSBuild configuration to do
> so, though). However, I don't think that was consistently tested, so I
> don't know if it works. I would consider it not working a bug, though.

I have successfully built IronPython 2.7 on Mono 2.10 on Ubuntu 10.10
for .NET 4.0. Details below.

But I'd like to try for .NET 2.0, to see if it will run under Mono
2.6.7, so if someone could send me a hint on the "MSBuild
configuration" magic, that would be helpful. Of course, I will be
using xbuild.

To build IronPython under Mono 2.10:

0) Prereqs (I started from a clean Ubuntu 10.10):
sudo apt-get install git subversion gcc emacs libmono-corlib2.0-cil
libmono-system2.0-cil libmono-i18n2.0-cil
libmono-system-runtime2.0-cil  libmono-winforms2.0-cil
libmono-microsoft-visualbasic8.0-cil nant mono-xbuild automake libtool
gettext gnome-common g++ bison

1) Get Mono 2.10 as per:

a) Switched to 2.10
b) Installed in /opt (--prefix=/opt)

2) Allow multiple versions of Mono:

3) Download IronPython:
git clone https://github.com/IronLanguages/main.git

into ./IronPython/

4) Edit IronPython/Solutions/Dlr.sln
Removed anything that said "test" and other parts that aren't needed.
(One test had a file that Mono wouldn't read the .il code correctly
(./Test/ClrAssembly/Src/typeforwarder2.il) and some filenames in
csproj files that had the wrong case, which doesn't work too well on a
case-sensitive file system. I started to fix those, but left that for

5) Delete IronPython/bin/Debug/*.dll

6) Build it:
cd IronPython/Solutions/
xbuild Dlr.sln
xbuild IronPython.sln

7) Test:
$cd ../bin/Debug/
$ mono ipy.exe
IronPython 2.7 DEBUG ( on .NET 4.0.30319.1
Type "help", "copyright", "credits" or "license" for more information.
>>> 1 + 1
>>> ^d

It is still in gray colors, but that works.


1) How to build a Release version rather than Debug?
2) How to set the framework to use 2.0 rather than 4.0?

> We won't provide binaries for 2.7/.NET2, but we don't want to prevent
> someone building their own either. 3.0, however, will drop support for
> .NET 2 entirely.

I will add this information to the wiki so that people can do exactly that.


> - Jeff

More information about the Ironpython-users mailing list