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: Tue, 27 Jan 2009 17:23:42 -0500

On 13-Nov-2008, Marco Atzeri wrote:

| --- Marco Atzeri  ha scritto:
| 
| > --- "John W. Eaton"  ha scritto:
| > 
| > > On 12-Nov-2008, Marco Atzeri wrote:
|  
| > > Oh, I see, you are changing LIBPRE to "cyg".  If
| > you
| > > do that and you
| > > also strip it off for the --out-implib option,
| > then
| > > how about using
| > > something like
| > > 
| > >   SONAME_FLAGS='-Wl,--out-implib=$(patsubst
| > > $(LIBPRE)%, %, $@).a'
| > 
| > I need to check, in any case there are other points 
| > where I need to differentiate between
| > LIBPRE=cyg and an additional SOPRE=lib.
| > See attached patch, in cygwin it works, and
| > I should have left correct for all the other
| > systems.
| 
| I re-made the patch using your suggestion,
| and adding the SOPRE=lib to differentiate from
| LIBPRE=cyg
| 
| SONAME_FLAGS='-Wl,--out-implib=$(patsubst $(SOPRE)%,
| %, $@).a'
| 
| > 
| > > Comments?
| > > 
| > > jwe
| > > 
| 
| The patch is now cleaner and simpler.
| It builds fine on cygwin, but a check on other 
| system is worth.

I'm confused about this patch because it installs files with names
like $(SOPRE)octinterp.$(LIBEXT) and $(SOPRE)octinterp.$(SHLLIB), but
there are no rules for building files with with the $(SOPRE) prefix.

Shouldn't the $(SOPRE) only apply to shared libraries?  In the new
install rules, you also use this prefix for static libraries.

I'm appending a version of the patch, updated for the current
sources.  I won't apply it until these issues are resolved.

jwe


diff --git a/ChangeLog b/ChangeLog
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2009-01-27  Marco Atzeri  <address@hidden>
+
+       * configure.in (SOPRE): New variable.
+       (*-*-cygwin*): Set LIBPRE to cyg and SOPRE to lib.  
+       Adjust definition of SONAME_FLAGS for SOPRE.
+
 2009-01-26  Thomas Treichl  <address@hidden>
 
        * aclocal.m4 (OCTAVE_HAVE_FRAMEWORK): New macro.
diff --git a/Makeconf.in b/Makeconf.in
--- a/Makeconf.in
+++ b/Makeconf.in
@@ -101,6 +101,7 @@
 
 LIBEXT = a
 LIBPRE = @LIBPRE@
+SOPRE = @SOPRE@
 
 # Fortran to C translator and associated flags.
 
diff --git a/configure.in b/configure.in
--- a/configure.in
+++ b/configure.in
@@ -1174,6 +1174,7 @@
 SHLBIN_VER='$(SHLBIN).$(version)'
 SHLLINKEXT=
 LIBPRE=lib
+SOPRE=lib
 SH_LD='$(CXX)'
 SH_LDFLAGS=-shared
 DL_LD='$(SH_LD)'
@@ -1227,7 +1228,7 @@
     SONAME_FLAGS='-install_name $(octlibdir)/$@'
     library_path_var=DYLD_LIBRARY_PATH 
   ;;
-  *-*-cygwin* | *-*-mingw*)
+  *-*-mingw*)
     DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import 
-Wl,--enable-runtime-pseudo-reloc"
     CXXPICFLAG=
     CPICFLAG=
@@ -1240,6 +1241,22 @@
     SONAME_FLAGS='-Wl,address@hidden'
     library_path_var=PATH
   ;;
+  *-*-cygwin*)
+    DL_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import 
-Wl,--enable-runtime-pseudo-reloc"
+    CXXPICFLAG=
+    CPICFLAG=
+    FPICFLAG=
+    LIBPRE=cyg
+    SOPRE=lib
+    SHLEXT=dll
+    SHLLIB=dll.a
+    SHLBIN=dll
+    SH_LDFLAGS="-shared -Wl,--export-all-symbols -Wl,--enable-auto-import 
-Wl,--enable-auto-image-base"
+    SHLLINKEXT=.dll
+    SONAME_FLAGS='-Wl,--out-implib=$(patsubst $(SOPRE)%, %, $@).a'
+    library_path_var=PATH
+  ;;
+
   *-*-msdosmsvc)
     DL_LDFLAGS="-shared"
     CPICFLAG=
@@ -1249,6 +1266,7 @@
     SHLLIB=lib
     SHLBIN=dll
     LIBPRE=
+    SOPRE=
     SH_LDFLAGS="-shared"
       if test -n "`echo $CFLAGS | grep -e '-g'`" -o -n "`echo $CXXFLAGS | grep 
-e '-g'`"; then
       DL_LDFLAGS="$DL_LDFLAGS -g"
@@ -1352,6 +1370,7 @@
 AC_MSG_NOTICE([defining SHLBIN_VER to be $SHLBIN_VER])
 AC_MSG_NOTICE([defining SHLLINKEXT to be $SHLLINKEXT])
 AC_MSG_NOTICE([defining LIBPRE to be $LIBPRE])
+AC_MSG_NOTICE([defining SOPRE to be $SOPRE])
 AC_MSG_NOTICE([defining SH_LD to be $SH_LD])
 AC_MSG_NOTICE([defining SH_LDFLAGS to be $SH_LDFLAGS])
 AC_MSG_NOTICE([defining DL_LD to be $DL_LD])
@@ -1378,6 +1397,7 @@
 AC_SUBST(SHLBIN_VER)
 AC_SUBST(SHLLINKEXT)
 AC_SUBST(LIBPRE)
+AC_SUBST(SOPRE)
 AC_SUBST(SH_LD)
 AC_SUBST(SH_LDFLAGS)
 AC_SUBST(DL_LD)
diff --git a/libcruft/ChangeLog b/libcruft/ChangeLog
--- a/libcruft/ChangeLog
+++ b/libcruft/ChangeLog
@@ -1,3 +1,7 @@
+2009-01-27  Marco Atzeri  <address@hidden>
+
+       * Makefile.in (install): Handle SOPRE library prefix.
+
 2008-12-21  Jaroslav Hajek <address@hidden>
 
        * lapack/chegs2.f lapack/chegst.f lapack/chegv.f lapack/dsygs2.f 
diff --git a/libcruft/Makefile.in b/libcruft/Makefile.in
--- a/libcruft/Makefile.in
+++ b/libcruft/Makefile.in
@@ -146,18 +146,18 @@
 install::
        $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octlibdir)
        if $(STATIC_LIBS); then \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(LIBEXT) ; \
-         $(INSTALL_DATA) $(LIBPRE)cruft.$(LIBEXT) \
-           $(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(LIBEXT) ; \
-         $(RANLIB) $(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(LIBEXT) ; \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(LIBEXT) ; \
+         $(INSTALL_DATA) $(SOPRE)cruft.$(LIBEXT) \
+           $(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(LIBEXT) ; \
+         $(RANLIB) $(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(LIBEXT) ; \
        fi
        if $(SHARED_LIBS); then \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(SHLLIB_VER); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(SHLLIB_VER); \
          $(INSTALL) \
-           $(LIBPRE)cruft.$(SHLLIB) 
$(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(SHLLIB_VER); \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(SHLLIB); \
+           $(SOPRE)cruft.$(SHLLIB) 
$(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(SHLLIB_VER); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(SHLLIB); \
          (cd $(DESTDIR)$(octlibdir); \
-         $(LN_S) $(LIBPRE)cruft.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(LIBPRE)cruft.$(SHLLIB)); \
+         $(LN_S) $(SOPRE)cruft.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(SOPRE)cruft.$(SHLLIB)); \
          if  test x$(SHLBIN) != x ; then \
            rm -f $(DESTDIR)$(bindir)/$(LIBPRE)cruft.$(SHLBIN); \
            $(INSTALL_PROGRAM) \
diff --git a/liboctave/ChangeLog b/liboctave/ChangeLog
--- a/liboctave/ChangeLog
+++ b/liboctave/ChangeLog
@@ -1,3 +1,7 @@
+2009-01-27  Marco Atzeri  <address@hidden>
+
+       * Makefile.in (install): Handle SOPRE library prefix.
+
 2009-01-27  Jaroslav Hajek  <address@hidden>
 
        * dbleQR.cc (QR::init): Use form. Use local buffers.
diff --git a/liboctave/Makefile.in b/liboctave/Makefile.in
--- a/liboctave/Makefile.in
+++ b/liboctave/Makefile.in
@@ -295,17 +295,17 @@
 install-lib:
        $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octlibdir)
        if $(STATIC_LIBS); then \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(LIBEXT); \
-         $(INSTALL_DATA) $(LIBPRE)octave.$(LIBEXT) \
-           $(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(LIBEXT); \
-         $(RANLIB) $(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(LIBEXT); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(LIBEXT); \
+         $(INSTALL_DATA) $(SOPRE)octave.$(LIBEXT) \
+           $(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(LIBEXT); \
+         $(RANLIB) $(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(LIBEXT); \
        fi
        if $(SHARED_LIBS); then \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(SHLLIB_VER); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(SHLLIB_VER); \
          $(INSTALL) \
-           $(LIBPRE)octave.$(SHLLIB) 
$(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(SHLLIB_VER); \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(SHLLIB); \
-         (cd $(DESTDIR)$(octlibdir) ; $(LN_S) $(LIBPRE)octave.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(LIBPRE)octave.$(SHLLIB)); \
+           $(SOPRE)octave.$(SHLLIB) 
$(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(SHLLIB_VER); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)octave.$(SHLLIB); \
+         (cd $(DESTDIR)$(octlibdir) ; $(LN_S) $(SOPRE)octave.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(SOPRE)ctave.$(SHLLIB)); \
          if  test x$(SHLBIN) != x ; then \
            rm -f $(DESTDIR)$(bindir)/$(LIBPRE)octave.$(SHLBIN); \
            $(INSTALL_PROGRAM) \
diff --git a/src/ChangeLog b/src/ChangeLog
--- a/src/ChangeLog
+++ b/src/ChangeLog
@@ -1,3 +1,7 @@
+2009-01-27  Marco Atzeri  <address@hidden>
+
+       * Makefile.in (install): Handle SOPRE library prefix.
+
 2009-01-27 Ben Abbott <address@hidden>
 
        * graphics.cc (convert_position): Handle character units.
diff --git a/src/Makefile.in b/src/Makefile.in
--- a/src/Makefile.in
+++ b/src/Makefile.in
@@ -474,17 +474,17 @@
 install-lib:
        $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octlibdir)
        if $(STATIC_LIBS); then \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \
-         $(INSTALL_DATA) $(LIBPRE)octinterp.$(LIBEXT) \
-           $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \
-         $(RANLIB) $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(LIBEXT); \
+         $(INSTALL_DATA) $(SOPRE)octinterp.$(LIBEXT) \
+           $(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(LIBEXT); \
+         $(RANLIB) $(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(LIBEXT); \
        fi
        if $(SHARED_LIBS); then \
          rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(SHLEXT_VER); \
-         $(INSTALL) $(LIBPRE)octinterp.$(SHLLIB) \
-           $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(SHLLIB_VER); \
-         rm -f $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(SHLLIB); \
-         (cd $(DESTDIR)$(octlibdir) ; $(LN_S) $(LIBPRE)octinterp.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(SHLLIB)); \
+         $(INSTALL) $(SOPRE)octinterp.$(SHLLIB) \
+           $(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(SHLLIB_VER); \
+         rm -f $(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(SHLLIB); \
+         (cd $(DESTDIR)$(octlibdir) ; $(LN_S) $(SOPRE)octinterp.$(SHLLIB_VER) 
$(DESTDIR)$(octlibdir)/$(SOPRE)octinterp.$(SHLLIB)); \
          if  test x$(SHLBIN) != x ; then \
            rm -f $(DESTDIR)$(bindir)/$(LIBPRE)octinterp.$(SHLBIN); \
            $(INSTALL_PROGRAM) \

reply via email to

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