[Mono-osx] Bundling Mono for Dumbarton

Eoin Norris e.norris at mac.com
Mon Dec 4 05:51:10 EST 2006


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

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


More information about the Mono-osx mailing list