Building on OSX

Hi

I have a hard time getting ironruby to build on OSX
I first tried with the dmg image I can download from the mono-project.
After
I tried with building mono from subversion.
Am I missing something obvious ?

ivan-mbp:ironruby ivan$ rake compile mono=1
(in /Users/ivan/tools/ironruby)
Read in 47 resources from
‘/Users/ivan/tools/ironruby/src/microsoft.scripting/Resources.resx’
Writing resource file… Done.
Read in 17 resources from
‘/Users/ivan/tools/ironruby/src/microsoft.scripting/Math/MathResources.resx’
Writing resource file… Done.
error CS0006: cannot find metadata file
mono/2.0/System.Configuration.dll' error CS0006: cannot find metadata filemono/2.0/System.dll’
Compilation failed: 2 error(s), 0 warnings
rake aborted!
Command failed with status (1): [/opt/local/mono/bin/gmcs /nologo
/noconfig…]
/Users/ivan/tools/ironruby/rakefile:197:in `exec’
(See full trace by running task with --trace)

Ivan Porto C.:

I have a hard time getting ironruby to build on OSX I first tried with
the dmg image I can download from the mono-project.
After I tried with building mono from subversion.
Am I missing something obvious ?

The last time I built IronRuby on a OS X I grabbed Mono from the SVN
trunk - the dmg was really out of date.

-John

I did i’m trying to compile it against the mono version i got from trunk
from yesterday

ivan-mbp:ironruby ivan$ mono -V
Mono JIT compiler version 1.9 (/trunk/ r94512)
Copyright (C) 2002-2007 Novell, Inc and Contributors.
www.mono-project.com
TLS: normal
GC: Included Boehm (with typed GC)
SIGSEGV: normal
Notification: Thread + polling
Architecture: x86
Disabled: none

ok … I’ll keep trying then until I get a working mono version. Haven’t
done
much testing with mono but I did run the minimal test suite before
installing.
If I compile on windows and use the binaries there is no problem.

Thanks
Ivan

On Sun, 03 Feb 2008 13:14:28 -0700, Ivan Porto C.
[email protected] wrote:

ok … I’ll keep trying then until I get a working mono version. Haven’t
done much testing with mono but I did run the minimal test suite before
installing.
If I compile on windows and use the binaries there is no problem.

Are you compiling with both --with-preview=yes and --with-moonlight=yes
?

Actually, I think they both are set to yet by default, but if you’re
building from SVN you’ll need to checkout not only the mono directory
but
olive, moon, mcs, and (possibly) gtk-sharp as well. You’ve already got
mono checked out, so if you enter the same directory that the mono
directory is contained in and run,

svn co
svn://anonsvn.mono-project.com/source/trunk/{mcs,moon,olive,gtk-sharp}

… to then svn up mono you can then enter the mono directory and run,

./autogen.sh --with-preview=yes --with-moonlight=yes [additional options
(such as --prefix)]

NOTE: I realize I mentioned that I believe both of these values are yes
by
default, but it doesn’t hurt so it’s worth adding them just in case.

If that script finishes without erroring out then run,

make; sudo make install

If it does error out there’s a good chance it’s going to be one of
several
things,

  1. The existing DMG-based installation is getting in the way. I would
    move /Library/Frameworks/Mono.framework (if you don’t see it there, try
    ~/Library/Frameworks/Mono.framework) to another directory to ensure
    you’re
    not running into a problem with the build process linking against the
    wrong libraries.
  2. The generated ./configure file will have a few lines that autotools
    will claim to be invalid syntax. If you see this problem, just open the
    ./configure file, go to the specified line, and comment it out.
    IMPORTANT!: Don’t rerun ./autogen.sh at this point. It will write over
    the previous generated ./configure file and cause the same error to
    occur.

At this stage of the game you’ll then want to run,

./configure --with-preview=yes --with-moonlight=yes [additional options
(such as --prefix)]; make; sudo make install

At this point you’re system should be completely up-to-date with all of
the latest code that is specific to the needs of the DLR and DLR-based
languages. That doesn’t mean it’s guaranteed to compile and work, but
I’ve yet to find a situation unrelated to System.Windows.Forms that
didn’t
work on OS X if it worked on Linux. It sometimes takes a bit of hacking
the build process, but it usually works out in the end. :smiley:

That said, given the IronRuby and the DLR are moving targets, there’s no
guarantee you’re not going to run into issues. But in my own
experience,
the Mono team places an extremely high importance on bugs related to the
Iron* projects and the DLR. Often times there’s a fix checked into SVN
within a few hours of filing the report.

Hope this helps!


/M:D

M. David P.
Co-Founder & Chief Architect, 3rd&Urban, LLC
Email: [email protected] | [email protected]
Mobile: (206) 418-9027
http://3rdandUrban.com | http://amp.fm |
http://www.oreillynet.com/pub/au/2354

I’ve got it working now.

Thanks for all your help :).
Turns out I have to set a variable PKG_CONFIG_PATH in .bash_profile that
includes the path which has the mono.pc file in it. I don’t have to edit
anything anymore and it compiles

Thanks
Ivan

Thanks guys, I got it to build.
I do feel slightly dirty because it’s somewhat hacky. (I’m very, very
new to
OSX) but I edited the Rakefil and set the libdir specifically there

FRAMEWORK_DIR = ‘/opt/local/mono/lib/mono/2.0/’ #Pathname.new(libdir) +
‘mono’ + ‘2.0’

I’m not entirely happy with this solution and it probably has something
to
do with an environment variable not being set correctly, but at least i
know
it can be done now and eventually I’ll get it so that the standard rake
file
suffices.

I’ve seen that the command ‘pkg-config --variable=libdir mono’ doesn’t
return anything, which may be the cause :slight_smile:

Cheers
Ivan

On Mon, 04 Feb 2008 12:57:48 -0700, Ivan Porto C.
[email protected] wrote:

I’ve seen that the command ‘pkg-config --variable=libdir mono’ doesn’t
return anything, which may be the cause :slight_smile:

Looks like you need to add /opt/local/lib/pkgconfig to your
PKG_CONFIG_PATH environment variable.


/M:D

M. David P.
Co-Founder & Chief Architect, 3rd&Urban, LLC
Email: [email protected] | [email protected]
Mobile: (206) 418-9027
http://3rdandUrban.com | http://amp.fm |
http://www.oreillynet.com/pub/au/2354

On Mon, 04 Feb 2008 13:31:04 -0700, Ivan Porto C.
[email protected] wrote:

Turns out I have to set a variable PKG_CONFIG_PATH in .bash_profile that
includes the path which has the mono.pc file in it. I don’t have to edit
anything anymore and it compiles

Should have read your follow-up first. :wink:


/M:D

M. David P.
Co-Founder & Chief Architect, 3rd&Urban, LLC
Email: [email protected] | [email protected]
Mobile: (206) 418-9027
http://3rdandUrban.com | http://amp.fm |
http://www.oreillynet.com/pub/au/2354