| Базовый синтаксис Makefile |
|
Итак, чтобы работать с make, необходимо создать Makefile. В make-файлах могут присутствовать следующие конструкции:
Для правильного составления make-файла необходимо определить основную цель сборки проекта. Затем следует выявить промежуточные цели, если таковые существуют. Вернемся к примеру формирование бинарного файла printup. Чтобы его получить, требуются файлы print__up.o и main.o. Это промежуточные цели. В make-файлах за каждую цель отвечает своя целевая связка. После определения целей нужно выявить зависимости. В нашем примере основная цель (файл printup) может быть достигнута только при наличии файлов print_up.o и main.o. А файл print_up.o может быть получен только при наличии исходного файла print_up.c и заголовочного файла print_up.h. Аналогичным образом, файл main.o может быть получен только при наличии файлов main.c и print_up.h Итак, мы знаем, что в Makefile обязательны только целевые связки. Каждая целевая связка состоит из следующих компонентов:
Теперь проверим систему в действии, организовав автосборку проекта printup из предыдущей главы. Сначала создаем Makefile. Файл Makefile_1 # Makefile for printup Далее вызываем утилиту make с указанием цели, которую нужно достичь. В нашем случае это будет выглядеть так: $ make printup Итак, проект собран. Осталось только во всем разобраться. Первая строка в Makefile — это комментарий. Затем следуют целевые связки. Первая связка Отвечает за создание исполняемого файла printup и формируется следующим образом:
Аналогичным образом оформляются остальные целевые связки. Последняя (clean) требует особого рассмотрения:
Эта цель очищает проект от всех файлов, автоматически созданных при сборке. Итак, чтобы очистить проект, достаточно набрать следующую команду: $ make clean Очистка проекта обычно выполняется в следующих случаях:
Вообще говоря, при запуске make имя цели можно не указывать. Тогда основной целью будет считаться первая цель в Makefile. Следовательно, в нашем случае, чтобы собрать проект, достаточно вызвать make без аргументов: $ make Иногда требуется вписать в make-файл нечто длинное, например, инструкцию, не умещающуюся в одной строке. В таком случае строки условно соединяются символом \ (обратная косая черта): gcc -Wall -pedantic -g -о my_very_long_output_file one.о two.о \ three.о four.о five.о Автосборщик при обработке make-файла будет интерпретировать такую конструкцию как единую строку.
Related Articles
Set as favorite
Bookmark
Email This
Hits: 727 Комментарии (0)RSS feed CommentsНаписать комментарий |