octave-maintainers
[Top][All Lists]
Advanced

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

R: patch for cygwin installation


From: Marco Atzeri
Subject: R: patch for cygwin installation
Date: Sat, 28 Mar 2009 22:34:56 +0000 (GMT)



--- Sab 28/3/09, John W. Eaton  ha scritto:

> Da: John W. Eaton 
> Oggetto: patch for cygwin installation
> A: "Marco Atzeri" 
 Cc: address@hidden
> Data: Sabato 28 marzo 2009, 17:47
> On 27-Mar-2009, Marco Atzeri wrote:
> 
> | the attached patch solve a final problem in 
> | installation for cygwin, that was missing in the last
> | patch/discussion.
> | 
> | It is based on the following assumption
> | 
> | Static libraries:
> | 
> | liboctinterp.a         
> $(LIBPRE)octinterp.$(LIBEXT)
> | 
> | Dynamic libraries:
> | 
> | cygoctinterp.dll       
> $(SHLLIBPRE)octinterp.$(SHLEXT)
> | 
> | liboctinterp.dll.a     
> $(SHLBINPRE)octinterp.$(SHLLIB)  
> |              instead
> of   $(SHLLIBPRE)octinterp.$(SHLLIB)
> | 
> | liboctinterp.a         
> $(SHLBINPRE)octinterp.$(SHLBIN)
> | 
> | 
> | Let me know if I misunderstood the original meaning of 
> | SHLLIBPRE
> | SHLBINPRE
> 
> I don't know.  I don't think they were my invention,
> and they are not
> needed on any system that I use.
> 
> | Eventually I can create a SHLEXTPRE 
> | or rename SHLLIBPRE as SHLEXTPRE in
> | 
> |  $(SHLLIBPRE)octinterp.$(SHLEXT)
> | 
> | to have a more clear structure.
> | Let me know your preference
> 
> Why would you have a variable called SHLEXTPRE?  I
> think the EXT here
> is short for "extension", so SHLEXT is supposed to be the
> suffix used
> for shared librarie, and SHLLIBPRE is the prefix used for
> shared
> library names.  So having a variable that includes
> both PRE and EXT
> doesn't make sense to me.
>

Ok John. 
I misunderstood the meaning.
 
> |
> ----------------------------------------------------------------------
> | --- octave/configure.in    2009-03-25
> 12:09:54.846309700 +0100
> | +++ octave_local/configure.in   
> 2009-03-26 16:40:13.331044200 +0100
> | @@ -1255,7 +1255,10 @@
> |     
> library_path_var=DYLD_LIBRARY_PATH    
> |    ;;
> |    *-*-cygwin*)
> | -    LIBPRE=cyg
> | +    CPICFLAG=
> | +    CXXPICFLAG=
> | +    FPICFLAG=
> | +    LIBPRE=lib
> |      SHLLIBPRE=cyg
> |      SHLBINPRE=lib
> |      SHLEXT=dll
> 
> I made these changes.
> 
> | --- octave/src/Makefile.in    2009-03-14
> 15:53:39.750000000 +0100
> | +++ octave_local/src/Makefile.in   
> 2009-03-26 16:29:41.037993600 +0100
> | @@ -484,10 +484,10 @@
> |      fi
> |      if $(SHARED_LIBS); then \
> |        rm -f
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLEXT_VER);
> \
> | -      $(INSTALL)
> $(SHLLIBPRE)octinterp.$(SHLLIB) \
> | -       
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER);
> \
> | -      rm -f
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB); \
> | -      (cd $(DESTDIR)$(octlibdir) ;
> $(LN_S) $(SHLLIBPRE)octinterp.$(SHLLIB_VER)
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB)); \
> | +      $(INSTALL)
> $(SHLBINPRE)octinterp.$(SHLLIB) \
> | +       
> $(DESTDIR)$(octlibdir)/$(SHLBINPRE)octinterp.$(SHLLIB_VER);
> \
> | +      rm -f
> $(DESTDIR)$(octlibdir)/$(SHLBINPRE)octinterp.$(SHLLIB); \
> | +      (cd $(DESTDIR)$(octlibdir) ;
> $(LN_S) $(SHLBINPRE)octinterp.$(SHLLIB_VER)
> $(DESTDIR)$(octlibdir)/$(SHLBINPRE)octinterp.$(SHLLIB)); \
> |        if  test x$(SHLBIN)
> != x ; then \
> |          rm -f
> $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN); \
> |          $(INSTALL_PROGRAM)
> \
> | @@ -520,8 +520,8 @@
> |      rm -f
> $(DESTDIR)$(bindir)/octave$(EXEEXT)
> |      rm -f
> $(DESTDIR)$(bindir)/octave-$(version)$(EXEEXT)
> |      rm -f
> $(DESTDIR)$(octlibdir)/$(LIBPRE)octinterp.$(LIBEXT)
> | -    rm -f
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB)
> | -    rm -f
> $(DESTDIR)$(octlibdir)/$(SHLLIBPRE)octinterp.$(SHLLIB_VER)
> | +    rm -f
> $(DESTDIR)$(octlibdir)/$(SHLBINPRE)octinterp.$(SHLLIB)
> | +    rm -f
> $(DESTDIR)$(octlibdir)/$(SHLBINPRE)octinterp.$(SHLLIB_VER)
> |      if test x$(SHLBIN) != x ; then
> \
> |        rm -f
> $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN); \
> |        rm -f
> $(DESTDIR)$(bindir)/$(SHLBINPRE)octinterp.$(SHLBIN_VER); \
> 
> The rest of the changes don't look right to me, because
> (for example)
> it seems that they would skip installing
> $(SHLLIBPRE)octinterp.$(SHLLIB).
> Maybe that is correct for Cygwin, but I don't see how it
> could be
> correct for other systems.
> 
> In the future, it would help if you could submit patches as
> mercurial
> changesets.  Also, please include ChangeLog entries.
> 
> Thanks,
> 
> jwe
> 

in almost all the system, the two are equals

SHLLIBPRE=lib
SHLBINPRE=lib

so

$(SHLLIBPRE)octinterp.$(SHLLIB)
$(SHLBINPRE)octinterp.$(SHLLIB)

are also equal. 

While on cygwin

SHLLIBPRE=cyg
SHLBINPRE=lib

and these are correct

$(SHLLIBPRE)octinterp.$(SHLEXT) = cygoctinterp.dll
$(SHLBINPRE)octinterp.$(SHLLIB) = liboctinterp.dll.a
$(SHLBINPRE)octinterp.$(SHLBIN) = liboctinterp.a

while this does not exist

$(SHLLIBPRE)octinterp.$(SHLLIB) = cygoctinterp.dll.a

and it is the reason for the cygwin specific

SONAME_FLAGS='-Wl,--out-implib=$(patsubst $(SHLLIBPRE)%,$(SHLBINPRE)%,$@).a'

I hope to have clarified the matter

Marco



      



reply via email to

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