Ben Abbott wrote:
> 
> On Apr 10, 2008, at 7:47 PM, Peter O'Gorman wrote:
>> Ben Abbott wrote:
>>> It is has been suggested that the SuiteSparse static libraries be
>>> converted to dynamic libraries instead.
>>
>> Why are they static? Are they shared libraries on other platforms? Who
>> suggested the change?
> 
> They are originally static because that developers of SuiteSparse choose
> to make them so.
> 
> Alexander asked if they might be changed.
> 
>>> Rather than attempt to modify the makefiles directly, I'd like to
>>> try to directly convert the static libraries to dynamic ones.
>>>
>>> My thought is to do something like
>>>
>>> # Extract the object files from the static library.
>>> ar -x libamd.a
>>> # Build the dynamic version of the library.
>>> gcc -dynamiclib -arch_only `/usr/bin/arch` -o libamd.dylib *.o
>>
>> Change to libamd.0.dylib and you would also want to add -install_name
>> $libdir/libamd.0.dylib. Please use a symlink so that the package can be
>> splitoff correctly into -dev and -shlibs packages. Are the objects in
>> the static archive built with any options? Specifically -fast or
>> -mdynamic-no-pic? If so, this strategy will not work.
> 
> Forgive my naivete, but do I have this right?
> 
> # Extract the object files from the static library.
> ar -x libamd.a
> # Build the dynamic version of the library.
> gcc -dynamiclib -install_name $libdir/libamd.o.dylib -o libamd.0.dylib *.o
> 
> Also can you give me the explicit command needed for symlink part?

Ok, I guess that you will be doing this as part of the install phase, so:

gcc -o %i/lib/libamd.0.dylib -dynamiclib \
-install_name %p/lib/libamd.0.dylib *.o

ln -s libamd.0.dylib %i/lib/libamd.dylib

You will, of course, have to create a -shlibs splitoff in your .info file.

None of this will be of any help for octave upgrade issues this time,
but it should help for the next time (when you will have to check the
library for ABI compatibility and decide if it needs to have a new
install_name or a higher compatibility_version etc.).

The only reason that you are being asked to do this is that octave takes
forever + a few days to build, and having shared libraries would allow
octave to remain at the same revision and not be rebuilt even if this
one package is updated in an incompatible way.

Peter
-- 
Peter O'Gorman
http://pogma.com

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
Fink-devel mailing list
Fink-devel@lists.sourceforge.net
http://news.gmane.org/gmane.os.apple.fink.devel

Reply via email to