fluid-dev
[Top][All Lists]
Advanced

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

[fluid-dev] Re: fluidsynth and jack on mac


From: Josh Green
Subject: [fluid-dev] Re: fluidsynth and jack on mac
Date: Wed, 10 Mar 2004 11:52:55 -0800

On Wed, 2004-03-10 at 10:19, Ebrahim Mayat wrote:
> On Mar 9, 2004, at 9:21 PM, Josh Green wrote:
> 
> > Whats the output of "pkg-config --cflags --libs jack" ? Its likely 
> > there
> > is something wrong with the pkg-config data which is causing the build
> > to not work right.
> 
> >> ebrahimm% pkg-config --cflags --libs jack
> >> -I/usr/local/include  -L/usr/local/lib -ljack -lpthread -ldl -lrt
> 
> You're absolutely right. "-ljack" and "-lrt" are still there and there 
> is no "-framework jack".
> 

I remember messing with -framework before, but thats a Mac OS X thing
and I've totally forgotten its significance.

> I then edited the jack.pc file using pico as follows:
> 
> >> ebrahimm% more /usr/local/lib/pkgconfig/jack.pc
> >> prefix=/usr/local
> >> exec_prefix=${prefix}
> >> libdir=${exec_prefix}/lib
> >> includedir=${prefix}/include
> >>
> >> Name: jack
> >> Description: the Jack Audio Connection Kit: a low latency synchronous
> >> callback-based media server
> >> Version: 0.82.0
> >> Libs: -L${libdir} -L/usr/local/lib/jack_portaudio.so -framework jack 
> >> -lpthread -ldl -lSystem
> >> Cflags: -I${includedir} -I/Library/Frameworks/Jack.framework/Headers
> 

This I believe is incorrect. It shouldn't be
-L/usr/local/lib/jack_portaudio.so but just
"/usr/local/lib/jack_portaudio.so" and I would remove the "-framework
jack" as well. You can test things at the link stage though, without
having to recompile everything, see below..

> did a "make clean" then "make". This...only returns the same error 
> message of undefined jack symbols:
> 
> >> (snip)
> >> gcc -Wall -O2 -fomit-frame-pointer -funroll-all-loops 
> >> -finline-functions -Wall -W -Wpointer-arith -Wbad-function-cast 
> >> -Wcast-qual -Wcast-align -Wstrict-prototypes -Wno-unused -Winline 
> >> -framework MidiShare -o .libs/fluidsynth fluidsynth-fluidsynth.o  
> >> -L/usr/local/lib -L/sw/lib -L/usr/lib -L./.libs -lfluidsynth -lm 
> >> -lreadline -lncurses -L/usr/local/lib/jack_portaudio.so -ldl -lSystem 
> >> -lpthread

Here is what you should try..
cd to the src/ directory..
Run the above link command "gcc -Wall -O2 ..." but remove the "-L"
before "/usr/local/lib/jack_portaudio.so". Make sure there are no new
lines in the command if you cut and paste it (I usually cut and paste it
to an editor to make sure that its all one line, then paste it back into
a terminal, makes it easier to edit it as well).

> It looks like the problem is rather at "ld: warning prebinding disabled 
> because dependent library: /usr/local/lib/libfluidsynth.1.dylib is not 
> prebound"
> 
> Could the failure to prebind "libfluidsynth" be due to the following 
> diagnostic messages from the build file?:
> 


I don't know about this terminology, sounds Mac OS X specific.


> >> ld: warning -dylib_install_name /usr/local/lib/libfluidsynth.1.dylib 
> >> not found in segment address table LD_SEG_ADDR_TABLE 
> >> /sw/var/lib/fink/prebound/seg_addr_table
> >> ld: warning -undefined suppress disables -prebind
> >> (snip)
> >> ranlib .libs/libfluidsynth.a
> >> ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_alsa.o) 
> >> has no symbols
> >> ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_ladspa.o) 
> >> has no symbols
> >> ranlib: file: 
> >> .libs/libfluidsynth.a(libfluidsynth_la-fluid_midishare.o) has no 
> >> symbols
> >> ranlib: file: .libs/libfluidsynth.a(libfluidsynth_la-fluid_oss.o) has 
> >> no symbols
> >> creating libfluidsynth.la
> >> (cd .libs && rm -f libfluidsynth.la && ln -s ../libfluidsynth.la 
> >> libfluidsynth.la)
> 

Its probably normal for the fluid-alsa, fluid-ladspa and fluid-oss
object files to be empty, since these drivers don't exist on OS X (well
maybe LADSPA does, but you probably don't have it enabled). The
fluid-midishare.o on the other hand, should have symbols. Sounds like
maybe it is not getting enabled. Does the configure script report that
it is enabled?

> >> #seg_addr_table: Do not remove the following line, it is used by the 
> >> seg_addr_table tool
> >> 0x90000000      0xa0000000      <<< Next split address to assign >>>
> >> #seg_addr_table: Do not remove the following line, it is used by the 
> >> seg_addr_table tool
> >> 0x21090000      <<< Next flat address to assign >>>
> 

I don't know anything about that stuff either.

> I'm looking into how I could insert the -dylib_install_name 
> "/usr/local/lib/libfluidsynth.1.dylib" into the segment address table 
> (defined by the environmental variable LD_SEG_ADDR_TABLE) found in 
> "/sw/var/lib/fink/prebound/seg_addr_table". Firstly, 
> "/usr/local/lib/libfluidsynth.1.dylib" does not exist yet. It is 
> presently in the hidden directory "fluidsynth-1.0.3/src/.libs". It is, 
> in fact, a symbolic link to the Mach-O dynamically linked shared 
> library "libfluidsynth.1.0.0.dylib" which itself is also in the .libs 
> directory. So can I just simply "mv 
> fluidsynth-1.0.3/src/.libs/libfluidsynth.1.dylib  
> /sw/lib/libfluidsynth.1.dylib" ? Then, run "/sw/bin/seg_addr -update -o 
>   /sw/var/lib/fink/prebound/seg_addr_table" ??? (I don't want to screw 
> up any OS parameters.) If this is okay, then I could re-make.
> 

I'd leave that stuff alone for now, and try messing with the link stage,
that I described above. The build is really really close. It looks like
you just need that thing to link and then you will have yourself a
fluidsynth binary.

> In addition, it looks like MidiShare is also not linked properly (see 
> ranlib command above). This may also lead to problems in building 
> fluidsynth??
> 

FluidSynth will likely still work, but you won't be able to sequence it
with external programs. You could still test it though with the command
line interface, or get Swami working :) I've had Swami and FluidSynth
working together before on Mac OS X (about a year ago), but it was using
the CoreAudio driver and sounded like crap (some obscure bug in the
FluidSynth CoreAudio driver). Now that you have Jack, things might be
improved. Let me know if you would like any assistance getting Swami
built and running.

> Many thanks.
> Ebrahim
> 

Regards,
        Josh Green






reply via email to

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