[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