Makefile 规则以相同名称但不同目录构建

发布于 2024-07-27 15:55:36 字数 456 浏览 2 评论 0原文

我想要一个类似的规则:

build/%.ext: src/%.ext
    action

我想要优化的文件夹中有一个文件目录,然后输出到另一个文件夹。 但是,输入和输出文件夹中的文件具有相同的名称。 我已经尝试了上述规则的各种迭代,但是 make 要么总是重建,要么从不重建,具体取决于我如何调整上述规则。 建议?

编辑: 我最终得到了以下解决方案,效果很好!

JS = \
  src/js/script2.js \
  src/js/script1.js

JS_OPT = $(patsubst src/js/%.js,web/js/%.js, $(JS))

all: $(JS_OPT)

$(JS_OPT): web/js/%.js: src/js/%.js
  cat $@ | ./bin/jsmin > $<

I would like a rule something like:

build/%.ext: src/%.ext
    action

I have one directory of files in a folder that I want to optimize and then output to a different folder. However, the files have the same name in the input and output folders. I have tried various iterations of the rule above, but make will either always or never rebuild depending how I tweak the above. Suggestions?

EDIT:
I ended up with the following solution, which works great!

JS = \
  src/js/script2.js \
  src/js/script1.js

JS_OPT = $(patsubst src/js/%.js,web/js/%.js, $(JS))

all: $(JS_OPT)

$(JS_OPT): web/js/%.js: src/js/%.js
  cat $@ | ./bin/jsmin > 
lt;

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

当梦初醒 2024-08-03 15:55:36

尝试这样的想法:

INPUT_FILES = \
  src/a.txt   \
  src/b.txt   \

OPTIMIZED_FILES=$(patsubst src/%.ext,build/%.ext,$(INPUT_FILES))

$(OPTIMIZED_FILES): build/%.ext: src/%.txt
     optimize_command $@ 
lt;

Try somethink like this:

INPUT_FILES = \
  src/a.txt   \
  src/b.txt   \

OPTIMIZED_FILES=$(patsubst src/%.ext,build/%.ext,$(INPUT_FILES))

$(OPTIMIZED_FILES): build/%.ext: src/%.txt
     optimize_command $@ 
lt;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文