[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