[Clam-devel] portmidi

Greg Kellum greg.kellum at gmail.com
Thu Jul 19 02:08:27 PDT 2007


Hi,

I had some problems earlier this week getting CLAM to use PortMidi on OS-X,
because CLAM wasn't able to find another library it needed, PortTime.  I
wrote Roger Dannenberg, the author of PortMidi, to ask him about this
PortTime library, and he told me that there isn't a PortTime library
anymore.  He moved the code for PortTime into the PortMidi library.  SO,
this means that CLAM's build script for OS-X will have to be modified to no
longer use PortTime.  I did a quick search for PortTime using egrep, and
found references to PortTime in the following files:
build/configure-in/configure.pl, build/configure.ac, build/libGen/CLAMIO.py,
build/libGen/system-win.cfg, build/srcdeps/functtests/MIDIOut_expected.vars,
build/system-posix.cfg.in, build/system-win.cfg,
scons/libs/clam_dependent_libs_checks.py, and deprecated/vmqt.py.  I should
be able to solve the problem by simply deleting all the references to
PortTime in these files, no?

I've included the emails I got from Roger below.  He also suggested using
statically linked rather dynamically linked libraries.  Any thoughts on
this?

Best,
Greg

Greg,
   I take it you're working under OS X. I think we modified the
Makefile.osxto include the (very small) PortTime functions inside the
PortMidi dylib to
simplify things. I thought at the time that the only dynamic library users
were working with Common Music and/or Common Lisp, and that's definitely the
reason for putting in the dylib option to the Makefile.
   Anyway, I think you can easily modify the Makefile by separating PMSRC
and PTSRC back into separate libraries. A better solution would be to change
CLAM to expect one library or to link statically. I don't think there's any
reason to make these libraries separate again in the future (but if there is
a good reason, let me know.)

   -Roger

Greg,
   Currently, only the dynamic library for the Mac on OS X combines the
PortTime and Port Midi libraries into one. There is nothing in the VC++
project or Linux makefile for dynamic libraries on those platforms. Instead
they just make two static libs.
   If there's a configuration you'd like to see, probably making your life
simpler would benefit others too, so let me know. My view on this is that
it's easier to manage statically linked code and thinking someone might want
to use PortTime without PortMidi, I made it separate. So that's how it's
always been until the Lisp guys needed a dynamic library and wanted to keep
it simple by having only one, hence the Makfile.osx option to create a
single dynamic library OR two static libraries. In retrospect, one static
library would probably have been slightly easier all around.

   -Roger
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.clam-project.org/pipermail/clam-devel-clam-project.org/attachments/20070719/a4150ff5/attachment-0002.htm>


More information about the clam-devel mailing list