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