[Mono-osx] Bundling Mono for Dumbarton

Alf Watt alf at imeem.com
Mon Dec 4 16:13:34 EST 2006


Eoin,

Thanks for writing this summary, it's a good start at documenting a  
complex build process. I've been running the builds for the last  
month or two and while some if it is still magic to me I can expand  
on a couple of points here:

• installation directory: we use install_name_tool to change the link  
header of the Dumbarton framework after copying into the app bundle,  
so it's possible to use it out of svn w/o modificaiton

• the script which only copies the required assemblies is hand- 
hacked, you can get a good start by scanning the .cs files for their  
imports, I would be very interested in a more automated solution to  
this particular problem

Best,
Alf

On Dec 4, 2006, at 2:51 AM, Eoin Norris wrote:

> r.
>
> I've done this. This should  get you started and Allan will chime  
> in, I suppose.
>
> 1) You should build the dumbarton project as part of the main  
> project i.e. add the project to the main project not as a target  
> but a sub-project.
> 2) Judy, Dumbarton and your main project should build to the same  
> directory ( a xCode limitation)
> 3) The Dumbarton project needs to be built with the installation  
> directory setting  set to @executable_path/../Frameworks ( in the  
> Build settings of Get Info). This tells the linker to look for the  
> dumbarton frameworks at that path from the executable.
> 4) Link against the Dumbarton project at the linked phase. Chose  
> Get Info ( right click) the target, and chose the general tab.  
> Click the add button on the bottom to add the Dumbarton framework  
> to the main project.
>
> Now the post build phase. This is not quite perfect but will get  
> you going.
>
> You should copy the mono libraries to within your bundle. ( I put  
> it in ../Contents/Library). Now the imeem guys have a script which  
> works out what actual parts of mono they need ( and they get the  
> application to be reduced in size significantly). To get going,  
> however, I just copied all of mono :-)
>
> set -x
>
>
> if [ -f "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Libraries/ 
> mono/" ]
> then
>   echo "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Libraries/ 
> mono/" exists!
> else
> mkdir "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Libraries/mono"
> cp -r /Library/Frameworks/Mono.framework/Versions/Current/lib  
> "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Libraries/mono/"
> cp -r /Library/Frameworks/Mono.framework/Versions/Current/etc  
> "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/Libraries/mono/"
> fi
>
> Then you need to use install_name_tool to change where the linker  
> expects to find the library when loading at run time. The installed  
> mono libraries have already linked against your executable and  
> against dumbarton ( and against themselves).
>
> if you run oTool -L on you executable you will see something like  
> this ( note that Dumbarton already points to the @executable_path)
>
>  /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa  
> (compatibility version 1.0.0, current version 11.0.0)
>         @executable_path/../Frameworks/Dumbarton.framework/Versions/ 
> A/Dumbarton (compatibility version 1.0.0, current version 1.0.0)
>         /System/Library/Frameworks/QuartzCore.framework/Versions/A/ 
> QuartzCore (compatibility version 1.2.0, current version 1.4.9)
>         /Library/Frameworks/Mono.framework/Versions/Current/lib  
> eoin/libmono.0.0.0.dylib (compatibility version 1.0.0, current  
> version 1.0.0)
> ...
>
>
> you want
>
>  /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa  
> (compatibility version 1.0.0, current version 11.0.0)
>         @executable_path/../Frameworks/Dumbarton.framework/Versions/ 
> A/Dumbarton (compatibility version 1.0.0, current version 1.0.0)
>         /System/Library/Frameworks/QuartzCore.framework/Versions/A/ 
> QuartzCore (compatibility version 1.2.0, current version 1.4.9)
>         @executable_path/../Libraries/mono/lib/libmono.0.0.0.dylib  
> (compatibility version 1.0.0, current version 1.0.0)
> ....
>
> And not just for libmono.0.0.0.dylib, of course. The way to do this is
>
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libmono.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libmono.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
>
> which acts on the last parameter ( the name of your executable), to  
> change references from "/Library/Frameworks/Mono.framework/Versions/ 
> 1.2.1/lib/libmono.0.0.0.dylib " to "@executable_path/../Libraries/ 
> mono/lib/libmono.0.0.0.dylib "
>
> I had to do this for Dumbarton as well ( which had built against  
> the installed framework) and some of the mono libraries also have  
> to be changed in case they reference other mono libraries in / 
> Library/Framework.
>
> Horrendous stuff. Here is what worked for me. Overkill I think, but  
> Allan probably have a better script ( and yes this script has to be  
> changed for each new version of Mono as the versions are harcoded  
> i.e. (..Versions/1.2.1/lib..).
>
> I basically changed everything, and probably more than I needed to  
> change.
>
> I was working on a script to produce something like this  
> automatically based on what I am actually linking against, and to  
> reduce the number of libraries  I need to copy to my bundle but it  
> is not ready for primetime yet.
>
> HEre is a block headed approach.
>
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoPosixHelper.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoPosixHelper.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCTNAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoSupportW.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoSupportW.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOs/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libasprintf.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libasprintf.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libfreetype.6.3.8.dylib @executable_path/../ 
> Libraries/mono/lib/libfreetype.6.3.8.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgdiplus.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgdiplus.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoSupportW.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoSupportW.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOs/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextlib-0.14.1.dylib @executable_path/../ 
> Libraries/mono/lib/liblibgettextlib-0.14.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextpo.0.1.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgettextpo.0.1.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgdiplus.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgdiplus.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCTNAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextsrc-0.14.1.dylib @executable_path/../ 
> Libraries/mono/lib/libgettextsrc-0.14.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgmodule-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgmodule-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgobject-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgobject-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgthread-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgthread-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libikvm-native.dylib @executable_path/../ 
> Libraries/mono/lib/libikvm-native.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgthread-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgthread-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libjpeg.62.dylib @executable_path/../Libraries/ 
> mono/lib/libjpeg.62.dylib "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/ 
> Contents/MacOs/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libmono.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libmono.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libpng.3.0.0.dylib @executable_path/../Libraries/ 
> mono/lib/libpng.3.0.0.dylib "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/ 
> Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libpng12.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libpng12.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libungif.4.1.3.dylib @executable_path/../ 
> Libraries/mono/lib/libungif.4.1.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libtiff.3.7.1.dylib @executable_path/../ 
> Libraries/mono/lib/libtiff.3.7.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/$PRODUCT_NAME"
>
>
> # do this for the installed Dumbarton build
>
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoPosixHelper.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoPosixHelper.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoSupportW.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoSupportW.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libasprintf.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libasprintf.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libfreetype.6.3.8.dylib @executable_path/../ 
> Libraries/mono/lib/libfreetype.6.3.8.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgdiplus.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgdiplus.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libMonoSupportW.dylib @executable_path/../ 
> Libraries/mono/lib/libMonoSupportW.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextlib-0.14.1.dylib @executable_path/../ 
> Libraries/mono/lib/liblibgettextlib-0.14.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextpo.0.1.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgettextpo.0.1.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgdiplus.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libgdiplus.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgettextsrc-0.14.1.dylib @executable_path/../ 
> Libraries/mono/lib/libgettextsrc-0.14.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgmodule-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgmodule-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgobject-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgobject-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgthread-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgthread-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libikvm-native.dylib @executable_path/../ 
> Libraries/mono/lib/libikvm-native.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgthread-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgthread-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libjpeg.62.dylib @executable_path/../Libraries/ 
> mono/lib/libjpeg.62.dylib "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/ 
> Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libmono.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libmono.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Versions/ 
> A/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libpng.3.0.0.dylib @executable_path/../Libraries/ 
> mono/lib/libpng.3.0.0.dylib "$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/ 
> Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libpng12.0.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libpng12.0.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libungif.4.1.3.dylib @executable_path/../ 
> Libraries/mono/lib/libungif.4.1.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
> install_name_tool -change  /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libtiff.3.7.1.dylib @executable_path/../ 
> Libraries/mono/lib/libtiff.3.7.1.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/Frameworks/Dumbarton.framework/Dumbarton"
>
>
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgmodule-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgmodule-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/libmono. 
> 0.0.0.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libgthread-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libgthread-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/libmono. 
> 0.0.0.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.600.3.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.600.3.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/libmono. 
> 0.0.0.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/libmono. 
> 0.0.0.dylib"
>
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libgmodule-2.0.0.600.3.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib  "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libglib-2.0.0.600.3.dylib"
>
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libglib-2.0.0.600.3.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib  "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libglib-2.0.0.600.3.dylib"
>
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libglib-2.0.0.dylib @executable_path/../ 
> Libraries/mono/lib/libglib-2.0.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libgthread-2.0.0.600.3.dylib"
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib  "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libgthread-2.0.0.600.3.dylib"
>
> install_name_tool -change /Library/Frameworks/Mono.framework/ 
> Versions/1.2.1/lib/libintl.3.4.0.dylib @executable_path/../ 
> Libraries/mono/lib/libintl.3.4.0.dylib "$TARGET_BUILD_DIR/ 
> $FULL_PRODUCT_NAME/Contents/MacOS/../Libraries/mono/lib/ 
> libgmodule-2.0.0.600.3.dylib"
>
>
>
>
> export MONO_PATH="$TARGET_BUILD_DIR/$FULL_PRODUCT_NAME/Contents/ 
> MacOS/../Libraries/mono/"
>
> -- Eoin Norris
>
>
>
>
>
>
>
>
> On 4 Dec 2006, at 10:14, R. Tyler Ballance wrote:
>
>> Allan, I know you aren't one for sharing your magical secrets, but  
>> I'm starting to seriously consider spending the next month or so  
>> dedicated to working on a Mono project that would be initially  
>> released as a Cocoa/Mono application (via Dumbarton) but the one  
>> thing I would like to be keen on before beginning is the  
>> feasibility of bundling the necessary Mono dylibs with my .app.
>>
>> I really do like the Dumbarton project, and I'd probably have a  
>> similar use for it that imeem does (my networking, "business  
>> logic" core of the app), but the actual bundle-linkage-foo that  
>> you guys perform isn't too well know.
>>
>> So here's what I'm thinking, I know documenting eccentric build  
>> and release processes is about as entertaining as burning your  
>> hand with a toaster (breakfast was fun today), but I'll put up a  
>> bounty if it will help.
>>
>> I'd be more than happy to send you and Alf some good Shiner Bock  
>> (fantastic Texas brew) if you guys can document something to the  
>> point of being usable for distributing Cocoa/Mono applications.
>>
>>
>> If that's not enough to convince you, I'll throw in erm....a...a  
>> box of paper clips, and a tube of chap stick; whatever I can do to  
>> procure some of that information out of you guys ;)
>>
>>
>> Cheers
>> R. Tyler Ballance: Custom Mac and Linux Development at bleep.  
>> consulting
>> contact: tyler at bleepconsulting.com | jabber: tyler at jabber.geekisp.com
>>
>>
>> _______________________________________________
>> Mono-osx mailing list
>> Mono-osx at lists.ximian.com
>> http://lists.ximian.com/mailman/listinfo/mono-osx
>
> _______________________________________________
> Mono-osx mailing list
> Mono-osx at lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-osx

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-osx/attachments/20061204/397c1936/attachment-0001.html 


More information about the Mono-osx mailing list