%% Tristan Van Berkom <[EMAIL PROTECTED]> writes:

  tvb> The problem is that dependancies are not getting re-evaluated
  tvb> over sub-makes; resulting in useless `$(MAKE)' invokations.

  tvb> example:
  tvb>      - `app' depends on `lib-one' and `lib-two'
  tvb>      - `lib-two' depends on `lib-one'
  tvb>        - make in `app' dir recurses into `lib-one' and rebuilds
  tvb>        - make in `app' dir recurses into `lib-two'
  tvb>          - make in `lib-two' dir recurses into `lib-one' dir
  tvb>            (Nothing to do in lib-one dir "duh !")
  tvb>        - make in `lib-two' dir rebuilds
  tvb>        - make in `app' dir rebuilds

  tvb> Is there anything I can do so that make updates its table of
  tvb> dependancies properly or sub-makes start off with a clean slate
  tvb> of dependancies ?

Since you haven't told us HOW you've written your makefile to inform
make that it needs to recurse, we can't help you directly.

Remember that a sub-make is a completely different program than its
parent: it has absolutely no idea what targets the parent knows about,
what targets it has or has not already built, etc.  The sub-make is
invoked from scratch, reads its own makefile, and makes up its own mind
about when things need to be rebuilt based on out-of-date
considerations, etc.


If the make running in lib-two decides, from first principles, that
lib-one is not up-to-date then it will rebuild it, regardless of whether
the parent make already built it or not.

So, the question again is: how is your makefile programmed to decide
whether or not lib-one is up-to-date?  If you're seeing lib-one rebuilt
multiple times then you have an error in that makefile logic.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <[EMAIL PROTECTED]>          Find some GNU make tips at:
 http://www.gnu.org                      http://make.paulandlesley.org
 "Please remain calm...I may be mad, but I am a professional." --Mad Scientist


_______________________________________________
Help-make mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-make

Reply via email to