fluid-dev
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [fluid-dev] Proposal: FluidSynth tester program


From: S. Christian Collins
Subject: Re: [fluid-dev] Proposal: FluidSynth tester program
Date: Wed, 01 Aug 2012 10:10:32 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:14.0) Gecko/20120714 Thunderbird/14.0

Thanks, David; this worked perfectly.  So, here are my updated instructions for building FluidSynth on 64-bit Ubuntu:
  1. No need to remove the Ubuntu packages of FluidSynth!

  2. Build the FluidSynth RC.  From the FluidSynth source directory:

    mkdir build
    cd build
    cmake -DLIB_SUFFIX= ..
    make
    sudo make install


  3. Update the library cache:

    sudo ldconfig

This works for me.  After uninstalling FluidSynth, make sure to manually delete the libfluidsynth.so and libfluidsynth.so.1 symlinks from /usr/local/lib/ and run sudo ldconfig again.

-~Chris



On 07/30/2012 04:51 PM, David Henningsson wrote:
On 07/30/2012 07:41 PM, S. Christian Collins wrote:
On 07/28/2012 11:59 PM, David Henningsson wrote:
4) Run
sudo make install
...to install the new version. Once you have finished testing, run
sudo make uninstall
...to revert to the version that comes with Ubuntu.
On my system (Kubuntu 64-bit), this resulted in version 1.1.6 of the
FluidSynth binary using the 1.1.5 libraries.

Thanks for noticing!
I've tried to sort this stuff out, all this linking can be a bit hairy :-/

There seem to be two problems here:

1) We install things into /usr/local/lib64 by default, which is wrong under Debian systems (see http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=612000 )

Workaround:

Run cmake with
"cmake -DLIB_SUFFIX= .."
Note the space between "=" and "..", and that -DCMAKE_INSTALL_PREFIX=/usr is *not* specified.

This causes the library to be installed into /usr/local/lib.

2) The ld.so.cache is not updated

Workaround:

Run "sudo ldconfig" after "sudo make install" or "sudo make uninstall" to update the cache.

After that, things seem to be in order:
* "which fluidsynth" returns /usr/local/bin
* "ldd /usr/local/bin/fluidsynth" returns "libfluidsynth.so.1 => /usr/local/lib/libfluidsynth.so.1"

As for fixing these issues long-term:

1) I'm not aware of the standards of when to use lib or lib64 for non-Debian systems, but if it's important to install into lib64 in e g Fedora, maybe we could detect whether our target is Debian based, and if so, skip the LIB_SUFFIX?

2) I think cmake's make file should call ldconfig after install/uninstall, so this seems to be a bug in cmake? I think "libtool finish" does that.

I also had a problem with OSS support causing
make to abort, so I edited the *CMakeLists.txt* file in the source
directory by changing line 328 from:

set ( OSS_SUPPORT ${OSS_FOUND} )

...to:

set ( OSS_SUPPORT 0 )

...and then I was able to compile.

Hmm, it seems like we're missing an enable-oss (to go with enable-alsa, enable-jack etc) to make it easy to leave out.

After testing, you will need to manually remove the library files you
copied to */usr/lib/x86_64-linux-gnu* and "sudo make uninstall" from the
FluidSynth build directory should remove the rest.  I say "should"
because it actually leaves the */usr/lib64/libfluidsynth.so* and
*/usr/lib64/libfluidsynth.so.1* symlinks behind, so you will have to
remove those manually as well.

Yeah, as for cleaning the symlinks, I ran into that as well. Seems to be another cmake bug?




reply via email to

[Prev in Thread] Current Thread [Next in Thread]