即使文件没有改变,也会生成使用makefile运行的汇总

时间:2015-05-26 04:08:38

标签: makefile

我正在尝试制作所有生成的CSS的汇总文件。 bin/generateTemplates脚本处理从其嵌套目录中获取所有*.less文件并在build/gui.css中生成汇总。但是,即使LESS_FILES中的所有文件都没有更改,它仍会触发脚本运行。

我假设我做了一个错误的关系。

...

BUILDDIR := build/
LESS_FILES := $(shell find views -type f -name '*.less')
CSS_FILE := build/gui.css

$(CSS_FILE): $(LESS_FILES) $(BUILDDIR)
    bin/generateTemplates

.PHONY: all
all: $(CSS_FILE)

...

1 个答案:

答案 0 :(得分:1)

您不会显示它是如何创建或使用的,但一般情况下,您不应将$(BUILDDIR)(或任何其他目录)列为目标的先决条件,除非非常特殊情况。无论何时在该目录中创建,删除或重命名文件,都会更新目录上的修改时间,因此每次发生$(CSS_FILE)目标都会被视为过时,因为目录修改时间较新。