Я использую файл для запоминания последнего значения таких параметров, например:
.PHONY: force
compiler_flags: force
echo '$(CC_FLAGS)' | cmp -s - $@ || echo '$(CC_FLAGS)' > $@
Бит cmp || echo
означает, что файл compiler_flags
касается только изменения настроек, так что теперь выможет написать что-то вроде
$(OBJECTS): compiler_flags
, чтобы вызвать перестроение $(OBJECTS)
всякий раз, когда меняются флаги компилятора.Правило для compiler_flags будет выполняться каждый раз, когда вы запускаете make, но перестройка $(OBJECTS)
будет запускаться только в том случае, если файл compiler_flags
действительно был изменен.