Makefile:如果源更改,则重建目标

Makefile: rebuild target if its source changes

我在 PHP 项目中得到了这个 Makefile(这是从完整的 Makefile 中删减的)。我该如何更改它以便 automake 检测到 public/assets/styles/main.scss 已更改并重新 运行 sass?

all: public/assets/styles/styles.css

public/assets/styles/styles.css:
    sass public/assets/styles/main.scss > public/assets/styles/styles.css

只需将 .scss 文件作为 .css 目标的先决条件。作为奖励,避免重复你的基本路径并使用 automatic variables 来减少食谱的冗余:

STYLEDIR := public/assets/styles

all: $(STYLEDIR)/styles.css

$(STYLEDIR)/styles.css: $(STYLEDIR)/main.scss
    sass $< > $@