Re: Does anyone know if Automake has a way of expressing dependencies?

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

 



On Thu, Jun 16, 2011 at 05:31:44PM -0700, Colin Patrick McCabe wrote:
> Does anyone know if Automake has a way of expressing dependencies between
> libraries?
> 
> For instance, currently our code has this set of (logical) dependencies:
> rbd -> librbd -> librados -> libcommon
> 
> Where a -> b means "a depends on symbols found in b".
> 
> Unfortunately, the problem that I've run into is that automake seems to have
> no way of expressing dependencies between libraries.
> 
> You can do:
> > librbd_la_LIBADD += librados.la
> 
> This line does seem to take care of the business of making the final librbd.so
> depend on librados.so.
> 
> But you'll still get undefined symbols if you try to use librbd.la later in
> the Makefile.am without also remembering to include librados. So remembering
> the dependencies is up to the developer, which could be a problem if we decide
> to create more libraries (say, by splitting libcommon.) Is there a workaround
> for this?

This (and the next sections from there on) seem to talk exactly about
this:

http://sources.redhat.com/autobook/autobook/autobook_76.html#SEC76

The Autobook is heavy reading, but is very very good. Later sections
cover automate integration.

http://sources.redhat.com/autobook/autobook/autobook_toc.html

> Another problem that I've experienced is that Automake seems to view a
> particular library as either 'shared' or 'static' inherently, and can't handle
> mixing the two. For example, if you do:
> 
> > librbd_la_LIBADD += libcommon.a

As explained in Autobook, libtool does *both*, I think that automake
snippet is just trying to cram a static library in a place that only
expects shared a one.

-- 
:(){ :|:&};:
--
To unsubscribe from this list: send the line "unsubscribe ceph-devel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [CEPH Users]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux