gmake
действия для цели будут выполняться всякий
раз, когда gmake
обратится к ней. Обычно это используют для помещения в
make-файл стандартной операции ``очистки'', определяющей способ
удаления неиспользуемых файлов. Например, вы часто можете встретить в
make-файле такое правило:
clean:
rm -f *.o
Каждый раз, при выполнении команды gmake clean
, это действие будет
удалять все файлы .o
.
Программа gmake
обычно выводит информацию о выполнении каждого действия, но
иногда это не желательно. Поэтому символ `@'
в начале действия может запретить
вывод по умолчанию. Вот пример его обычного использования:
edit : $(OBJS)|
Результатом этих действий будет то, что в начале компиляции вы увидите строку
@echo Linking edit ...
@gcc -g -o edit $(OBJS)
@echo Done
``Linking edit...''
, а в конце компиляции - строку ``Done''
.
Когда gmake
встречает действие, возвращающее ненулевой код выхода, т.е.,
сообщение об ошибке по соглашениям UNIX, его стандартной реакцией является
прекращение обработки. Коды ошибок от строк действий, начинающихся с символа
`--'
(возможно с предшествующим `@'
) игнорируются. Ключ -k
для gmake
приводит в случае ошибки к прекращению обработки только текущего правила (и
всех, зависящих от него целей), позволяя продолжить обработку всех
последующих.