我在使用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實施了這個解決方案,謝謝。 –