Допустим, у вас есть Makefile с двумя псевдо-целями, 'all' и «отладка». Цель «отладка» предназначена для создания того же проекта, что и «все», за исключением некоторых других параметров компиляции (например, -ggdb). весь проект, если вы переключаетесь между ними. Но GNUmake естественно этого не распознает.
Так что, если вы наберете make all
, вы получите
Building ...
...
Затем, если вы наберете make debug
, вы получите
make: Nothing to be done for `debug'.
Итак, мой вопрос: как вы реализуете чистое решение в Makefile, чтобы заметить, что последняя сборка использовала другую псевдо-цель или другие переключатели компиляции, чем тот, который вы хотите в настоящее время? Если они разные, Makefile перестроит все.