[RTcmix-discuss] How to force RTcmix to install to /usr/local ?

John Gibson johgibso at indiana.edu
Thu Feb 9 12:59:01 EST 2006


Hi Simeon,

I think I know what you're talking about.  For the next stable
RTcmix release, I plan to make an OS X package, so I'm interested
in these issues.  (Unfortunately, I can't spend much time with it
right now.)

At the moment, we do not make use of the configure prefix for
installation.  But DT's right.  After configure, you can edit
makefile.conf (which is overwritten during configure) to
change the definitions of LIBDIR (location of librtcmix.dylib,
etc.) and DESTDIR (location of CMIX, PCMIX, etc.).  
LIBDESTDIR (location of inst dso's) is set in site.conf.

Sorry, this is clearly a mess right now and should be integrated
into the configure process to make it behave more normally.  I think
the big problem is that RTcmix has never used the layout that
is normal for many other programs, which install into ${prefix}/bin,
${prefix}/lib, etc.  So it's hard for us to switch our heads around.
One advantage of doing it like everyone else is that most users wouldn't
have to muck with their path, and distro package-makers would
be happier.

When I was trying to make OS X packages before, I had all kinds
of trouble with the hard-coded paths in libraries, and I developed
scripts to change these using install_name_tool.  Check that program
out if you don't already know about it.  I think there's a man page.

JG


Simeon Fitch <simeon.fitch at mseedsoft.com> wrote:

> RTcmix-ers:
>
> I am working on a perceptual psychology experiment (@ UVa), using
> RTcmix to generate auditory stimulus. To simplify installation on the
> testing hardware, I started putting together a MacOS X package that
> would install RTcmix in /usr/local. Despite running configure with a
> installation prefix installation, when I run "make install" it still
> installs to the build directory.
>
> This wouldn't be so much of a problem since I could manually copy all
> the files from RTcmix-4.0/bin to /usr/local/bin. However due to the
> way libtool works (which I find irritating), the search paths for the
> shared libraries are "hard coded" into the binaries.
>
> For example, after copying CMIX to /usr/local/bin:
>
> ------------------------
> Marimba:~ sfitch$ otool -L /usr/local/bin/CMIX
> /usr/local/bin/CMIX:
>         /Users/sfitch/Coding/RTcmix-4.0/lib/librtcmix.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>         /Users/sfitch/Coding/RTcmix-4.0/lib/libgen.dylib
> (compatibility version 0.0.0, current version 0.0.0)
> <snip>
> ------------------------
>
> Similarly, the dynamic modules have the same dependency:
>
> ------------------------
> Marimba:~/Coding sfitch$ otool -L RTcmix-4.0/shlib/libWAVETABLE.so
> RTcmix-4.0/shlib/libWAVETABLE.so:
>         /Users/sfitch/Coding/RTcmix-4.0/lib/libgen.dylib
> (compatibility version 0.0.0, current version 0.0.0)
>         /System/Library/Frameworks/CoreAudio.framework/Versions/A/CoreAudio
> (compatibility version 1.0.0, current version 1.0.0)
> <snip>
> ------------------------
>
> Normally these paths are "re-wired" when you do a "make install" by
> the libtool installation script. But since "make install" appears to
> be ignoring the prefix spec, this isn't happening.
>
> So, is there some other approach I should take to generate a more
> portable build layout?  How are other users handling this, or is it
> assumed that every user creates their own binary installation.
>
> I'm building on MacOS X.4, with gcc powerpc-apple-darwin8-gcc-4.0.1
>
> Many thanks for your help!
>
> Simeon
>
> --
> Simeon H.K. Fitch, Owner
> Mustard Seed Software
> Charlottesville, VA  22901


More information about the RTcmix-discuss mailing list