Заден план
Ако имам makefile с незадължителен аргумент, обикновено ще използвам:
make target
но понякога (ако мисля, че може да има проблем с оптимизациите на асемблера) искам да предам допълнителен аргумент на командния ред, напр.
make target VERIFY_ASSEMBLY_OPTIMISATIONS=1
проблем
Понякога може да има правописна грешка в аргумента на командния ред, напр.
make target VERIFY_ASSEMBLY_OPTIMIZATIONS=1
и това може да ме накара да загубя много време, тъй като е построено грешното нещо.
Въпрос
Има ли лесен начин за проверка на аргументите на командния ред на Makefile?
С други думи, искам Makefile незабавно да генерира грешка, ако е използван неразпознат аргумент на командния ред.
Това, което съм пробвал
Опитах следния код за откриване на неочаквани променливи:
ALLOWED_VARS := foo bar
$(foreach v, \
$(filter-out $(ALLOWED_VARS),$(.VARIABLES)), \
$(info $(v) = $($(v))))
За съжаление, това изглежда открива много допълнителни променливи (като LANG, TERM, LEX), които не съм посочил в командния ред.