Difference between revisions of "Build FieldWorks for Mac"

From LSDevLinux
Jump to: navigation, search
(Mono: Add some explicit information)
(Mono: Clarifications)
Line 46: Line 46:
 
==Mono==
 
==Mono==
  
Currently, to build and run FieldWorks requires a special version of mono. So you will need to [[Building mono from source|build mono from source]].
+
Building and running FieldWorks requires a special version of mono. So you will need to [[Building mono from source|build mono from source]].
  
Note that a preexisting version of Mono is needed in order to build a new version of Mono from source, so you will need to install the <code>mono</code> package from MacPorts first.
+
Currently there are a couple of problems with MacPorts that require workarounds, although hopefully these will be resolved soon:
  
Currently there is a problem with the <code>atlas</code> port (a dependency of <code>py26-numpy</code>) that conflicts with <code>libLAPACK.dylib</code> from <code>/System/Library/Frameworks/</code>. Until this is fixed, these two ports (<code>py26-numpy</code> and <code>atlas</code>) must be uninstalled before building mono.
+
* There is a problem with the <code>atlas</code> port, which is a dependency of <code>py26-numpy</code>. It conflicts with <code>libLAPACK.dylib</code> from <code>/System/Library/Frameworks/</code>. Until this is fixed, if you have installed either of these two ports (<code>py26-numpy</code> and <code>atlas</code>) yourself, they must be uninstalled before building mono.
  
Also, the MacPorts version of <code>mono</code> crashes with an assertion failure when trying to build <code>mono-basic</code>. However, if the <code>mono</code> subdirectory is already built and installed, it's possible to build <code>mono-basic</code> with the newly-installed mono compiler. Just run <code>make && sudo make install</code> in the <code>mono-basic/fieldworks-mono-basic/</code> subdirectory, after <code>checkout-and-build-mono</code> has failed.
+
* The MacPorts version of <code>mono</code> crashes with an assertion failure when trying to build <code>mono-basic</code>. However, if the <code>mono</code> subdirectory is already built ''and installed'', it's possible to build <code>mono-basic</code> with the newly-installed mono compiler. Just run:<blockquote style="margin:0 1.5em"><code>make && sudo make install -C mono-basic/fieldworks-mono-basic</code></blockquote>after <code>checkout-and-build-mono</code> has failed.

Revision as of 11:41, 20 June 2011

The port of FieldWorks to Mac is still at an early stage, although we are hopeful that almost all of the work done to port it to Linux will carry over to Mac with very little change.

This page documents the current state of our knowledge about the steps that need to be followed.

Prerequisites

We recommend that needed software packages be installed with MacPorts, whenever possible. This makes it much easier to keep things organized and updated. There is a wide range of ports available, and the versions are usually quite recent.

For the MacPorts versions of libraries to be used instead of the built-in ones, several environment variables need to be set. This can be done in ~/.profile (for use in Terminal) as follows:

export CPATH=/opt/local/include${CPATH+:}$CPATH
export LIBRARY_PATH=/opt/local/lib${LIBRARY_PATH+:}$LIBRARY_PATH
export DYLD_LIBRARY_PATH=/opt/local/lib${DYLD_LIBRARY_PATH+:}$DYLD_LIBRARY_PATH

It's also possible to set them in ~/.MacOSX/environment.plist, making them applicable to all GUI programs, but this will cause the built-in Mac OS apps to use MacPorts libraries rather than the built-in ones they were developed with, which is not recommended and is likely to cause problems.

Install and build dependencies

Install the following MacPorts packages:

  • autoconf autoconf-archive automake libtool
  • mono nant
  • ImageMagick +wmf +jbig +jpeg2
  • icu
  • gtkmm
  • enchant
  • ossp-uuid
  • pccts
  • quilt

Although some of the packages above (eg autoconf) are already installed on the OS, we typically need the MacPorts ones, which are newer, or are needed by add-ons like autoconf-archive.

There is a Mac-native version of GTK which can be installed by substituting the following lines:

  • sudo port install gtkmm +quartz +atsui +no_x11
  • sudo port install ImageMagick +wmf +jbig +jpeg2 +no_x11

However, the Quartz version is a little less mature and may have a few glitches in it, so we recommend starting out with the X11 version.

Mono

Building and running FieldWorks requires a special version of mono. So you will need to build mono from source.

Currently there are a couple of problems with MacPorts that require workarounds, although hopefully these will be resolved soon:

  • There is a problem with the atlas port, which is a dependency of py26-numpy. It conflicts with libLAPACK.dylib from /System/Library/Frameworks/. Until this is fixed, if you have installed either of these two ports (py26-numpy and atlas) yourself, they must be uninstalled before building mono.
  • The MacPorts version of mono crashes with an assertion failure when trying to build mono-basic. However, if the mono subdirectory is already built and installed, it's possible to build mono-basic with the newly-installed mono compiler. Just run:
    make && sudo make install -C mono-basic/fieldworks-mono-basic
    after checkout-and-build-mono has failed.