我有一個在make文件中定義的列表,並且用戶應該設置一個我需要在這個列表中找到的環境變量。有沒有辦法使用GNU make來做到這一點?在製作任何目標之前,我想在任何配方之外進行此操作。這是一個確保用戶設置env的QA檢查。變量爲範圍/列表中的值。GNU-make檢查元素是否存在於列表/數組中
在終端:
setenv ENV_PARAM x
在Makefile中:
PARAMS := a b c
if ${ENV_PARAM} exists in $(PARAMS)
true
else
false
endif
@ MadScientist的答案作品。有沒有辦法用foreach循環來包裝if塊來測試多個參數?
KEYS := PARAMS FACTORS
PARAMS := a b c
FACTORS := x y z
foreach v in ($(KEYS)) {
ifneq ($(filter $(ENV_$(v)),$(v)),)
$(info $(ENV_$(v)) exists in $(v))
else
$(info $(ENV_$(v)) does not exist in $(v))
endif
}
你給的例子不夠清楚。有兩個不同的地方可以使用這樣的測試:您可能想要在目標的配方中進行該測試,或者在開始構建目標之前,您可能想在任何配方之外進行測試。它們的語法非常不同,因此您需要提供更多關於您想要完成的內容的信息。 – MadScientist 2014-12-06 14:15:23
我剛編輯我的問題。 – Wilderness 2014-12-06 19:06:59