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

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

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



Alex Otwagin 2002-12-16