Library dependencies make install
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
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
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