[prev in list] [next in list] [prev in thread] [next in thread]
List: squeak-vm-dev
Subject: [Vm-dev] How to link dynamic library into a Squeak plugin on Mac
From: Simon Holland <s.holland () open ! ac ! uk>
Date: 2007-08-27 10:35:20
Message-ID: 12344712.post () talk ! nabble ! com
[Download RAW message or body]
Bert Freudenberg-2 wrote:
>
>
> On Aug 25, 2007, at 16:54 , Simon Holland wrote:
>
> >
> >
> > Can anyone point to any examples or info on how to
> > link a dynamic library into a Squeak plugin build on Mac Intel?
> >
> > None of the following work
> >
> > PLIBS=$PLIBS
> > /Users/simon/squeak/platforms/unix/plugins/PortMidiLitePlugin/i386/
> > libportmidi.dylib
> > PLIBS=$PLIBS /usr/local/lib/libportmidi.dylib
> > PLIBS=$PLIBS -dynamiclib -Wl,-single_module -Wl,-install_name,
> > /usr/local/lib/libportmidi.dylib
> > PLIBS=$PLIBS -dynamiclib -Wl,-single_module -Wl,-install_name,
> > lportmidi
> > PLIBS=$PLIBS lportmidi
> >
> > (They compile fine but fail to load)
> >
> > libportmidi.dylib is installed in /usr/lib
> > and the environment variable
> > DYLD_LIBRARY_PATH is set to /usr/local/lib
> >
> > Recasting the plugin as a command line C application,
> > and dropping the relevant dylib into the XCode window
> > works with no bother.
> >
> > Cheers
> > Simon
>
> Last time I needed to do this I started with the XCode project for
> another plugin from SVN, modified it for my plugin, and just added
> the libs to it. Don't remember the details though.
>
> - Bert -
>
>
Thanks Bert!
In case anyone should be looking for the answer at a later date, here is
how to create an external squeak plugin on intel mac that links into an
external library (e.g. a dylib or .a static library).
1/ Use xcode to make a carbon bundle project from scratch.
2/ Apart from your plugin code and your external library you will need to
add the exactly correct minimum set of (slightly edited) vm header files.
3/ The set of headers and the necessary edit has been documented in
Japanese by the Takashi Yamamiya
http://www.smalltalk.jp/Squeak-ja/archives/lists.squeakfoundation.org/squeak-ja/2004-August/001783.html
and written up in English by Gerald Leeb http://g-24.net/squeak/ode.html.
4/ If you then run a conventional unix vm/plugin macintel build for your
plugin using a plugin Makefile.inc of
PLIBS=$PLIBS -L/usr/local/lib -dynamiclib -Wl,-single_module
-Wl,-install_name, lportmidi.
(in my case, given that I was linking to portmidi and put the dylib in that
location )
then the plugin will end up in the package contents of the VM.
4a/ Instead of step 4 you can just manually drop the plugin into the package
contents of a VM of the right version number, which I assume is the normal
deployment route.
Thanks all!
Simon
--
View this message in context: \
http://www.nabble.com/Newbie-problem-porting-PortMidi-to-Squeak--%28Mac-Intel%29-tf4324379.html#a12344712
Sent from the Squeak vm-dev mailing list archive at Nabble.com.
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic