octave-maintainers
[Top][All Lists]
Advanced

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

Re: SONAME clarification


From: John W. Eaton
Subject: Re: SONAME clarification
Date: Thu, 29 Jan 2009 10:36:04 -0500

On 29-Jan-2009, Marco Atzeri wrote:

| 
| --- "John W. Eaton"  ha scritto:
| 
| > On 28-Jan-2009, Marco Atzeri wrote:
| > 
| > | > On 28-Jan-2009, Marco Atzeri wrote:
| > | > | *********************************
| > | > | 
| > | > | the installed lib files will be
| > | > | 
| > | > | usr/bin/cygcruft.dll
| > | > | usr/bin/cygoctave.dll
| > | > | usr/bin/cygoctinterp.dll
| > | > | 
| > | > | usr/lib/octave-3.0.4/libcruft.dll.a
| > | > | usr/lib/octave-3.0.4/libcruft.dll.a.3.0.4
| > | > | usr/lib/octave-3.0.4/liboctave.dll.a
| > | > | usr/lib/octave-3.0.4/liboctave.dll.a.3.0.4
| > | > | usr/lib/octave-3.0.4/liboctinterp.dll.a
| > | > | usr/lib/octave-3.0.4/liboctinterp.dll.a.3.0.4
| > | > 
| > | > Yes, but in your current patch the install rules
| > are
| > | > still using
| > | > $(SOPRE) as a prefix for static libraries.  That
| > | > doesn't seem correct,
| > | > or the name SOPRE is not the best choice.  Which
| > is
| > | > it?
| > | > 
| > | 
| > | No idea, I chosen SOPRE as it was needed to 
| > | change SONAME, but any other name is fine.
| > 
| > In the end, I decided to go with three separate
| > prefixes to go along
| > with the three separate types of suffixes we have:
| > 
| >   LIBPRE     LIBEXT
| >   SHLLIBPRE  SHLLIB and SHLLIB_VER
| >   SHLBINPRE  SHLBIN and SHLBIN_VER
| > 
| > and checked in the following changeset:
| > 
| >  
| >
| http://hg.savannah.gnu.org/hgweb/octave/rev/f8b3ece45bda
| > 
| > If this is not the right thing to do for some
| > platform(s), then please
| > submit patches relative to the current sources from
| > the Mercurial
| > archive.  For example, I'm not sure how SHLEXT and
| > SHLEXT_VER fit into
| > this arrangement, and whether there should also be a
| > prefix variable
| > corresponding to those variables.
| > 
| > jwe
| > 
| 
| Hi John,
| thanks for the effort, however
| something is not as expected on cygwin
|  
| $ file lib*       
| 
| libcruft.so:         PE32 executable for MS Windows
| (DLL) (console) Intel 80386 32-bit
| libcruft.so.3.1.51+: symbolic link to `libcruft.so'
| liblibcruftso:       current ar archive
| 
| I will try to investigate why I have "so" instead of
| "dll".
| For the last "liblibcruftso" SONAME does not work 
| if $(basename) is already "libcruft"
| 
| SONAME_FLAGS='-Wl,--out-implib=$(SHLLIBPRE)$(basename
| $@)$(SHLLIB)'
| 
| should it be something like
| SONAME_FLAGS='-Wl,--out-implib=$(patsubst
| lib,$(SHLBINPRE)%,$@).$(SHLLIB)'

The missing . is definitely a mistake.

I see now that the use of $(basename) is also wrong.

The $(SONAME_FLAGS) variable is used in rules like

  $(SHLLIBPRE)cruft.$(SHLEXT): $(CRUFT_PICOBJ)
          rm -f $@
          $(SH_LD) $(SH_LDFLAGS) $(SONAME_FLAGS) -o $@ $^ $(LINK_DEPS)

So "$@" is "$(SHLLIBPRE)cruft.$(SHLEXT)".

You'll have to tell me what is the right conversion.  I don't really
understand what the argument to --out-implib is supposed to be.

jwe


reply via email to

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