help-make
[Top][All Lists]
Advanced

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

conditional prerequisite


From: Thomas . Wolff
Subject: conditional prerequisite
Date: Fri, 28 Jan 2005 18:09:02 +0100 (MET)

Hello,

I had asked this before and Boris Kolpackov was so kind to give some 
hints. Unfortunately, they did not exactly address the problem and 
I'm trying to explain once more, hopefully better, what I'm trying 
to achieve:

I have the following two rules.

info.h: info.txt
        sed -f info.sed info.txt > info.h

info.txt:
        wget -N http://blabla/info.txt

The purpose is:
* The dependency of info.h from info.txt extracts compilable 
  information from a data source.
* The rule for info.txt would retrieve that data source from the Internet.
-> However, I only want the second rule (wget) to be executed if the 
   first target needs to be built (info.h does not exist).
   If info.h already exists, I want the wget to be suppressed.
   If info.h does not exist, I want wget to retrieve info.txt so 
   that info.h can be generated.
   (As a side-case, if info.txt does exist AND is newer than info.h, 
   it would be reasonable to regenerate info.h as well, but actually 
   that is of minor importance.)
   The reason is that in a production environment, I cannot assume 
   that Internet access is always available (or fast enough, as the 
   files are quite large). So downloading should only be triggered if 
   unavoidable.
   (For an explicit update, another target might delete info.h, or 
   might activate the info.txt rule explicitly.)

The intended behaviour in detail is:

info.h is newer than info.txt:
        nothing happens

info.h is older than info.txt:
        sed is invoked

info.h exists but info.txt does not exist:
        nothing happens!

info.h does not exist but info.txt exists:
        sed is invoked

info.h and info.txt both do not exist:
        wget is invoked, then sed

Is this possible?

Thanks and kind regards,
Thomas Wolff




reply via email to

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