【发布时间】:2012-08-09 11:00:09
【问题描述】:
作为构建过程的一部分,我需要使用 m4 处理一些文件。这些文件具有“.in”扩展名,不仅位于顶级目录中,还位于子目录中。 我使用 find 找到它们并在 shell 循环中处理它们。
是否有一些 makefile 语法魔法可以编写更简单的规则来处理它们,将输出保存到与输入文件位于同一目录的文件中(去掉 '.in' 扩展名)?
这就是我现在的 makefile 中的内容:
PROCESS_FILES=$(shell find . -name \*.in)
WORK_FILES=$(subst .in,,$(PROCESS_FILES))
$(WORK_FILES): $(PROCESS_FILES)
for file in $(PROCESS_FILES); \
do \
m4 $$file > $${file%.*};\
done
【问题讨论】:
-
答案可能是肯定的,但是我们有些人对m4并不熟悉。你能展示一下你现在使用的(最小的)makefile吗?
-
嗨,我添加了当前makefile的相关部分