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