next up previous contents
Next: Создание make-файлов Up: Средство управления проектом make Previous: Шаблонные правила   Contents

Специальные действия

Часто удобно иметь цели, которым не ставится в соответствие никакая генерация файлов. Если действия цели не создают файла с соответствующим именем, то исходя из принципов работы 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 приводит в случае ошибки к прекращению обработки только текущего правила (и всех, зависящих от него целей), позволяя продолжить обработку всех последующих.



2004-06-22