Library dependencies make install

2006-02-14 Thread J.T. Conklin
I am having problems using automake 1.9.3 and libtool when installing
libraries similar to those reported in a message to the automake list
with this same subject line from Bob Friesenhahn about a year ago (cf
http://sources.redhat.com/ml/automake/2004-01/msg00146.html).

I'm appending to lib_LTLIBRARIES in dependency order in my Makefile.am
which would otherwise result in clean install order.  However, some of
the libraries are in automake conditionals.  Automake seems to extract
them from the list and stick them into am__append_X variable(s) which
coorespond to the set of automake conditionals being used.  These lists
seem to be in alphabetical order, and I haven't been able to tell what
determines where the $(am__append_X)s are inserted in the list.  In any
case, this destroys the careful lib_LTLIBRARIES ordering.

Any advice how I can set things up so that libraries will be installed 
in order?

Many thanks,

--jtc

-- 
J.T. Conklin




Re: Library dependencies make install

2006-02-14 Thread Ralf Wildenhues
Hi J.T.,

* J.T. Conklin wrote on Tue, Feb 14, 2006 at 09:53:56PM CET:
 I am having problems using automake 1.9.3 and libtool when installing
 libraries similar to those reported in a message to the automake list
 with this same subject line from Bob Friesenhahn about a year ago (cf
 http://sources.redhat.com/ml/automake/2004-01/msg00146.html).

Yes.  The general issue is not fixed yet.

 I'm appending to lib_LTLIBRARIES in dependency order in my Makefile.am
 which would otherwise result in clean install order.  However, some of
 the libraries are in automake conditionals.  Automake seems to extract
 them from the list and stick them into am__append_X variable(s) which
 coorespond to the set of automake conditionals being used.  These lists
 seem to be in alphabetical order, and I haven't been able to tell what
 determines where the $(am__append_X)s are inserted in the list.  In any
 case, this destroys the careful lib_LTLIBRARIES ordering.
 
 Any advice how I can set things up so that libraries will be installed 
 in order?

Yes.  Two possibilities:
- Automake 1.9.6 should have this fixed with the patch from 2005-06-24,
  so updating should help.
- You should be able to declare helper variables to enforce order; that
  is, instead of
 lib_LTLIBRARIES = liba.la
 if condition
 lib_LTLIBRARIES += libb.la
 endif
 lib_LTLIBRARIES += libcee.la
  you could write (untested)
 if condition
 bee_libs = libb.la
 else
 bee_libs =
 endif
 lib_LTLIBRARIES = liba.la $(bee_libs) libcee.la [...]

Cheers,
Ralf




Library dependencies make install

2004-01-15 Thread Bob Friesenhahn
I am using Automake 1.8 with libtool.  Automake is doing a good job at
building libraries in a correct order based on dependencies (or I
could just be lucky) but 'make install' is not paying any attention to
library dependencies.  It appears that libraries are installed in the
same order as specified by lib_LTLIBRARIES.  If the ordering of
lib_LTLIBRARIES does not jive with the library dependency order, then
libtool fails to re-link the library because some libraries it depends
are not installed yet.  Even worse, it may appear that installation is
successful, but some of the libraries are accidentally linked with
older versions of the libraries which were already installed.

It seems to me that Automake should compute an optimum library
installation order based on the specified libtool library (.la)
dependencies.  This would help ensure that installation errors do not
occur due to some hap-hazard lib_LTLIBRARIES list order (e.g. they
could be in alphabetical order).

Bob
==
Bob Friesenhahn
[EMAIL PROTECTED]
http://www.simplesystems.org/users/bfriesen