[Pkg-octave-devel] Bug#637787: Bug#637787: Bug#637787: Bug#637787: Bug#637787: Bug#637787: Bug#637787: Bug#637787: Bug#637787: trivial fix

John W. Eaton jwe at octave.org
Tue Nov 1 16:45:05 UTC 2011


Hi,

Did you see the following message from me?  I think I found the reason
that libranlib.la is not being built, and a relatively simple fix.

jwe


On 25-Oct-2011, John W. Eaton wrote:

| On 24-Oct-2011, John W. Eaton wrote:
| 
| | On 24-Oct-2011, Thomas Weber wrote:
| | 
| | | On Thu, Sep 01, 2011 at 09:03:57PM +0200, Thomas Weber wrote:
| | | > On Tue, Aug 23, 2011 at 12:24:17PM -0400, John W. Eaton wrote:
| | | > > If you don't want to change octlibdir, then you can change the lines
| | | > > like
| | | > > 
| | | > >   octlib_LTLIBRARIES = liboctave.la
| | | > > 
| | | > > in the Makefile.am files to be
| | | > > 
| | | > >   lib_LTLIBRARIES = liboctave.la
| | | > > 
| | | > > instead.  It's the octlib (or lib) prefix that is used to generate the
| | | > > variable that determines the installation directory. 
| | | 
| | | I did the change above, but the build fails almost always (almost = in a
| | | clean chroot). It builds reliable in my normal work directory, which is
| | | strange (I already looked at timestamp issues, but I do not think that
| | | that is the problem). It always fails when linking in libcruft/ with the
| | | error message:
| | | 
| | | libtool: link: cannot find the library `libranlib.la' or unhandled
| | | argument `libranlib.la'
| | | 
| | | I've put a log file of the build at
| | | http://people.debian.org/~tweber/octave.log.bz2
| | | 
| | | The commands effectively run are:
| | | 	automake --foreign --verbose
| | | 	./configure --build=x86_64-linux-gnu --prefix=/usr 
| | | 	make -j1
| | | 
| | | Do you have any ideas?
| | 
| | I can't reproduce the problem, but I'm not sure I'm doing exactly the
| | same thing as you.
| | 
| | Can you please give me step-by-step instructions for how to download
| | exactly the Debian package files and what to do with them to try to
| | generate the package?  Jordi gave me that info a few days ago and with
| | what he showed me, I was able to generate the error you mention
| | above.  But now I can't find his instructions.
| 
| OK, Jordi gave me the instructions and I can reproduce the problem.
| 
| When libcruft/Makefile.am contains
| 
|   octlib_LTLIBRARIES = libcruft.la
|   noinst_LTLIBRARIES = libranlib.la
| 
| The generated Makefile.in file contains
| 
|   LTLIBRARIES = $(noinst_LTLIBRARIES) $(octlib_LTLIBRARIES)
|   ...
|   all-am: Makefile $(LTLIBRARIES) $(HEADERS)
| 
| and when it contains
| 
|   lib_LTLIBRARIES = libcruft.la
|   noinst_LTLIBRARIES = libranlib.la
| 
| LTLIBRARIES is defined to be
| 
|   LTLIBRARIES = $(lib_LTLIBRARIES) $(noinst_LTLIBRARIES)
| 
| So apparently these variables are sorted alphabetically when creating
| the LTLIBRARIES variable.  Then Make is building these libraries in
| the order they are listed, so the latter fails, because libcruft.la
| depends on libranlib.la, but it is not built yet.
| 
| I think automake is supposed to be using the libcruft_la_LIBADD
| variable to generate the dependency list for libcruft.la, but it
| doesn't seem to be doing that.
| 
| The quick fix appears to be adding libranlib.la to the
| libcruft_la_DEPENDENCIES variable, so change the line
| 
|   libcruft_la_DEPENDENCIES = cruft.def
| 
| in libcruft/Makefile.am to be
| 
|   libcruft_la_DEPENDENCIES = cruft.def libranlib.la
| 
| instead.
| 
| jwe
| 
| 
| 
| _______________________________________________
| Pkg-octave-devel mailing list
| Pkg-octave-devel at lists.alioth.debian.org
| http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-octave-devel





More information about the Pkg-octave-devel mailing list