help-make
[Top][All Lists]
Advanced

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

Re: order-only dependency and transitivity


From: Paul D. Smith
Subject: Re: order-only dependency and transitivity
Date: Thu, 10 Jun 2004 00:49:49 -0400

%% Ross Boylan <address@hidden> writes:

  >> $(SOURCES): m.touch
  >> 
  >> m.touch: m.web
  >>        ftangle -F m.web
  >>        @touch $@
  >> 
  rb> Thank you; that seems to work. Two questions/comments:

  rb> First, this violates rule 2 of your own tips
  rb> http://make.paulandlesley.org/rules.html.  Should I be concerned?

I don't think it violates my rule... What did you have in mind?

  rb> Though I didn't have that rule specifically in mind, I did think I'd
  rb> get in some trouble if some of $(SOURCES) were permanently older than
  rb> m.touch.  Apparently not...

  rb> Second, can anyone explain why my original example didn't work?  Is it
  rb> a bug?

Depends on how you look at it.  In one sense it's not a bug, because
you're changing the filesystem behind make's back: that is you're
creating files that make cares about (that are targets in the makefile),
without telling make about it.  GNU make has a directory cache it keeps
internally, for efficiency's sake.  Due to this, files that are added to
the directory behind make's back aren't in the cache and make can't see
them.

The cache causes enough people problems that I'm considering adding a
way to disable it (probably a pseudo target in your makefile) so that
people who need to do tricky things like this can do so, but they will
pay the performance penalty of not having the cache available.

-- 
-------------------------------------------------------------------------------
 Paul D. Smith <address@hidden>          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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]