octave-maintainers
[Top][All Lists]
Advanced

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

Re: octave/mingw32 installation tree


From: John W. Eaton
Subject: Re: octave/mingw32 installation tree
Date: Tue, 19 Jan 2010 00:36:20 -0500

On 16-Jan-2010, Benjamin Lindner wrote:

| > 
| > All DLD-FUNCTIONs are installed as dll into
| >  $prefix/lib/octave-3.5.50+
| > but they should actually not be installed at all, shouldn't they?
| 
| A side-effect error is that some of these dlls name-clash with
| dependency libraries e.g. there is the AMD.DLL library (from
| suitesparse) and now also octave's dld-function amd.oct named
| as amd.dll which causes undefined-symbol runtime errors when calling
| these .oct files.
| 
| For the time being I have to manually remove them, but it would be nice
| to have the install procedure fixed eventually.

The following targets for installing and uninstalling .oct files are
in the src/Makefile.am file:

  if AMCOND_ENABLE_DYNAMIC_LINKING
  install-oct:
          $(top_srcdir)/mkinstalldirs $(DESTDIR)$(octfiledir)
          if [ -n "`cat DLD-FUNCTIONS/PKG_ADD`" ]; then \
            $(INSTALL_DATA) DLD-FUNCTIONS/PKG_ADD 
$(DESTDIR)$(octfiledir)/PKG_ADD; \
          fi
          cd $(DESTDIR)$(octlibdir) && \
          for ltlib in $(DLD_FUNCTIONS_LIBS); do \
            f=`echo $$ltlib | $(SED) 's,.*/,,'`; \
            dl=`$(SED) -n -e "s/dlname='\([^']*\)'/\1/p" < $$f`; \
            if [ -n "$$dl" ]; then \
              $(INSTALL_PROGRAM) $$dl $(DESTDIR)$(octfiledir)/`echo $$f | 
$(SED) 's,^lib,,; s,\.la$$,.oct,'`; \
            else \
              echo "error: dlname is empty in $$ltlib!"; \
              exit 1; \
            fi; \
            lnames=`$(SED) -n -e "s/library_names='\([^']*\)'/\1/p" < $$f`; \
            if [ -n "$$lnames" ]; then \
              rm -f $$f $$lnames; \
            fi \
          done

  uninstall-oct:
          for f in $(OCT_FILES); do \
            rm -f $(DESTDIR)$(octfiledir)/`echo $$f | $(SED) 's,.*/,,'`; \
          done
          rm -f $(DESTDIR)$(octfiledir)/PKG_ADD
  endif
  .PHONY: install-oct uninstall-oct

First, is AMCOND_ENABLE_DYNAMIC_LINKING defined on your system, and are
these rules copied to the Makefile in your build tree?

If so, can you please investigate why they are not working properly?

The idea is that libtool will install the .la and .so (or .dll, or
whatever) files in the normal location for library files, then the
shell commands in the install-oct rule will look at the .la file and
copy the correct file over to the

What part of this process is failing on your system.

Also, what is the value of $(octlibdir) on your system, and are you
using that directory for installing other libraries?  If so, then to
avoid clashing with other files, we may have to modify this
procedure so that the .la and .so (or .dll, or whatever) files are
installed to a separate directory first instead of in $(octlibdir).

jwe


reply via email to

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