【发布时间】:2011-03-24 03:27:34
【问题描述】:
我如何在一个 makefile (gnu make) 中处理多个文件,以及:
- 为每个文件运行一个命令或一系列命令
- 单个大于零的错误代码失败
- 无需在 makefile 中输入每个文件名
- 即使在第一次失败后也继续在所有文件上运行
我想出了这个。它可以工作,除了最后一个要求,而且非常不成熟:
>.PHONY: lint
.PHONY: all
all: lint
lint:
for f in `find src/ -name \*.inc -o -name \*.html`; do php -l $$f && continue || exit 1; done
【问题讨论】:
-
"在大于零的单个错误代码上失败" "即使在第一次失败后也继续在所有文件上运行" 呃...
-
听起来脚本比 Makefile 更合适?
-
@Ignacio Vazquez-Abrams:它应该在所有文件上运行,因此该命令可以输出所有错误。但是,如果其中任何一个返回 >0,则 make 规则应该在构建链中失败。
-
确实,我现在同意脚本是更好的解决方案。