在不同的目录中创建管理文件

Make manage file in different directory

我有一个程序可以将 Less 文件编译成 CSS 文件。我制作了一个通配符 make 目标,它使用适当的参数调用 lessc 以在同一目录中创建 CSS 文件:

%.css: %.less node_modules/less/bin/lessc
    node_modules/less/bin/lessc $< $@

这会产生以下输出目录结构:

css/
|- foo.less
|- foo.css

这非常有效。但是,我想采用不同的目录结构:

css/
|- foo.css
|- less/
   |- foo.less

但是,我想不出一个明智的方法来管理使用 make 在不同目录中创建文件(我特别想避免不必要的重新编译)。我怎样才能改变我的目标来实现这种行为?

您只想在先决条件上加上所需的前缀。 make 处理其余部分。

%.css: less/%.less node_modules/less/bin/lessc
        node_modules/less/bin/lessc $< $@