Hi,

With this makefile:

%.ot:   %.dependency
        cat $< > $@

goal:
        $(MAKE) timestamp module.ot

.PHONY: timestamp module.ot

timestamp:
        date > module.dependency

I get this:

sjl@faraday:~/make% make
make timestamp module.ot
make[1]: Entering directory `/mnt/home/sjl/make'
date > module.dependency
make[1]: Nothing to be done for `module.ot'.
make[1]: Leaving directory `/mnt/home/sjl/make'

Why isn't module.ot rebuilt?

Using a force target instead works:

%.ot:   %.dependency
        cat $< > $@

goal:
        $(MAKE) timestamp module.ot

.PHONY: timestamp

FORCE:
module.ot: FORCE

timestamp:
        date > module.dependency

sjl@faraday:~/make% make
make timestamp module.ot
make[1]: Entering directory `/mnt/home/sjl/make'
date > module.dependency
cat module.dependency > module.ot
make[1]: Leaving directory `/mnt/home/sjl/make'

It only seems to be a problem for targets with implicit patterns.

Platform is RedHat Linux 6.0 running on Pentium II and make versions
3.77 and 3.78.1 exhibit this problem.

TIA,
Simon

-----------------------------------------------------------------------
| Simon Liddington                   | Tel (home) : 01703 237935      |
| E-Mail : [EMAIL PROTECTED]            | Tel (work) : 01420 544952      |
-----------------------------------------------------------------------


Reply via email to