Make - это инструмент, который компилирует ваш проект новым, когда один из ваших файлов в проекте изменяется.
например. когда вы изменяете ваш .h файл, он распознает это изменение и перестраивает все файлы, которые зависят от него, а затем перестраивает все, что зависит от новых сборок, ...
Но когда вы изменяете флаги компилятора и / или определения в make-файле, входные файлы проекта не меняются, поэтому проект не перестраивается.
Есть три способа добиться того, чего вы хотите: сначала вручную выполнить make clean после изменения make-файла. Во-вторых, включить сам make-файл в ваш make-файл (и выпустить там make clean после его изменения). И, наконец, переместите определения в какой-то проект .h файл.
Как правило, только решение "in-ah-file-on-own" является единственным, позволяющим избежать создания всего нового, поскольку другие не знают, какие исходные файлы на самом деле имеют ссылку на измененные определения. .