recurse.mk vs. libraries

We have several programs which use the same libraries. What’s
the right way to express this to the recursive build system?
We’d like the make system to understand when something needs
to be rebuilt because a library changed.

John Nagle
Team Overbot