On Sun, Jun 8, 2008 at 8:26 AM, VitalyP <[EMAIL PROTECTED]> wrote: > I am doing simple codegen with makefile. File gen.c is generated from > gensrc.c. The example below works correctly and gen.c is generated > when gensrc.c has more recent timestamp ... > However in the example below gen.c is generated even if gensrc.c is > older than gen.c. That is target 'prebuild' is always considered as > not up-to date. Why is it so? > > .PHONY: prebuild > > test: gen.c > gcc -o $@ $< > > gen.c: prebuild > > prebuild: gensrc.c > # here goes some codegen command
As Sam says, because .PHONY targets are always out-of-date. But what are you trying to accomplish? What is the 'prebuild' target supposed to do? My guess is that you want "make prebuild" to build the generated source file(s). To do that, you would make the generated file(s) like gen.c prerequisites of prebuild, not the other way around, ala: prebuild: gen.c Philip Guenther _______________________________________________ Help-make mailing list [email protected] http://lists.gnu.org/mailman/listinfo/help-make
