我在使用makefile检查版本控制之前检查一些配置文件。我有困难的规则,这需要基本只是运行GNU Make:构建无目标的多个源文件
/usr/local/bin/check-program config/file1.conf
/usr/local/bin/check-program config/file2.conf
[...]
的检查程序不接受多个参数之一,所以每个配置文件都需要单独检查。所有配置文件都位于一个子目录中,并且全部以.config结束。
由于没有源/依赖关系,我一直无法找到正确的makefile语法来运行它。作为解决方法,for循环将为我执行检查,但这不会在失败时退出,也不会跳过已检查的文件。
这里是什么,我至今一个简化版本:
SHELL := /bin/sh
WD := $(shell pwd)
HOST := $(shell hostname -s)
BPCFG := $(wildcard config/*.conf)
all : check-bp
check-bp : $(BPCFG)
for file in $(BPCFG); do \
/usr/local/bin/check-program $$file; \
echo ""; \
done
”也不跳过已经被选中的文件“ - 如果你没有生成文件,你会如何知道它被检查?也许你应该为每个配置创建空标记文件,以使用它们的修改日期(和模式规则,作为副作用) – keltar
好点。我已经从@andrewdotn实施了这个解决方案,谢谢。 –