Re: Possible library versioning approach -- (evaluation requested)
Junichi Uekawa <firstname.lastname@example.org> writes:
>> Doesn't -release actually change the library name, not the soname?
> It doesn't change the library name, no, look at libbfd as an example.
Hmm. It seems to here. With a Makefile.am entry of
libgwrap_wct_la_LDFLAGS = -rpath $(libdir) -release 1-0-libfoo2-libbar1
and so the -l libname is now -lgwrap-wct-1-0-libfoo2-libbar1, not
-lgwrap-wct (what I wanted).
> You may not have yet read the Library packaging manual further enough, but
> with " -release somethinglib -soname 0:0:0" you should get the following:
Did you mean -version-info rather than -soname above?
(Apologies if I'm overlooking something in the existing docs, but I've
and I didn't see anything about -soname.)
> liblibrary-somethinglib.so.0.0.0 (actual library file)
> liblibrary-somethinglib.so.0 (the symlink matching the soname)
> liblibrary.so (the symlink used for library linkage time)
but what I had originally been thinking about was
so that all the sub-lib dependencies were in the soname, not the
library base name. This would mean that the end users could continue
to use -lfoo, rather than having to keep up with -lfoo-bar2-baz3, etc.
To do this, I'd need an option(s) to libtool that would let me say
"set the soname to 1-0-libbar2-libbar3 and use a library base name of
foo". AFAIK libtool doesn't allow this...
>> I'd wondered about that too, but in many cases, for example for glib
>> and guile, it's easy to figure it out via glib-config and guile-config
> That is nice.
Yes, though since you're right that it's not easy to detect the
libname in general, an alternate naming strategy for the full lib name
then you'd always have to link with -lfoo-1, and you'd always know
which version you were using based on the name. But of course I'm
sure many end-users would fight having to change their makefiles all
the time if there wasn't some common infrastructure for determining at
configure time what the latest available library version/name is.
rlb @defaultvalue.org, @linuxdevel.com, and @debian.org
GPG starting 2002-11-03 = 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4