Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материалы / MAKE_posix_creprc_sem_sig.DOC
Скачиваний:
27
Добавлен:
01.05.2014
Размер:
146.94 Кб
Скачать

стр. 23из23

Дата печати 31.03.2004 12:04 AM

Утилита make

Утилита makeтрадиционно служит для построения исполняемых образов программ. Построение происходит по заданным правилам, которые могут определяться пользователем в специальном файле. Кроме непосредственно набора команд, с помощью которых производится построения того или иного файла, пользователь может задать зависимости между файлами, составляющими программный проект. При этом изменения или обновления какого-либо файла автоматически влечет перепостроение, других файлов, зависящих от обновленного. Также правила могут использовать переменные как те, которые были заданы в системном окружении или переданы через параметры при запуске утилитыmake, так и те, которые определяются пользователем непосредственно в файле описания правил. Кроме того, в синтаксисеmakeопределен набор функций для работы с переменными, которые позволяют довольно гибко настраивать правила под различные проекты.

Запуск утилиты make

Командная строка запуска утилиты makeвыглядит так:

Make[опции] [переменные] [цели_построения]

Опции – параметры, определяющие дополнительные условия при выполнении правил. Опции всегда начинаются со знака ‘-‘.

Например:

make -f aaa -s -v

Опции:

-n

Предписывает выводить команды, порождаемые make'ом, не выполняя их на самом деле

-s

Подавляет вывод командный строк перед их выполнением (если входящая в правило команда начинается с @, она не распечатывается)

-S

Отменяет действие опции –k. Это необходимо только при рекурсивном запуске make.

-i

Предписывает игнорировать ошибки (ошибка игнорируется также, если командная строка в файле описаний начинается со знака минус)

-I dir

Определяет директории для поиска включенных makefiles. В случае, если определяется несколько различных путей, поиск будет производиться в порядке их перечисления.

-k

При возникновении ошибки выполнение команд, связанных с текущей зависимостью, прекращается, однако обработка других зависимостей продолжается

-f имя_файла

Задает имя файла описаний (пример: make -f mymakefile)

-p

Указывает make'у вывести все макроопределения, а также описания зависимостей и операций для создания целевых_файлов. Если использовать пустой make-файл, мы получим полную информацию о неявных предопределенных правилах, макросах и суффиксах. Имя файла-обозначает стандартный ввод. Если опция не указана, читается файл с именемmakefileилиMakefile.

-C dir

осуществляется переход в директорию dirдо прочтения makefile. В случае многократного применения опции -C , каждая из них относится к предыдущей: -C / -C etc эквивалентно -C /etc. Это часто используется при рекурсивном вызове make.

-e

Дает переменным оболочки больший приоритет, чем переменным makefile.

-r

Отключение встроенных правил (по умолчанию). Очистка списка суффиксов по умолчанию.

-v

Печать версии make

-w

Печать имени текущего каталога

Make обычно прекращает работу, если какая-либо команда возвращает ненулевой код завершения (чаще всего это признак ошибки).

Опции не обязательно указывать в командной строке, их можно помещать в переменную окружения MAKEFLAGS. Она обрабатывается как содержащая любую из допустимых опций (естественно, кроме -f). При запуске make в нее дописываются опции, указанные в командной строке.

Переменные – параметры, позволяющие задать новые значения уже созданных переменных или определить новые переменные, значения которых могут быть использованы при выполнении правил. Переменные, указанные в командной строке имеют более высокий приоритет, чем переменные, указанные в makefile.

Например:

makeABC=”aaa.c”CPU=”x86” - при запуске определяется две переменныеABCиCPU.

Цели построения – имена файлов или просто символические имена, которые при выполнении правил считаются конечным результатом выполнения утилиты make. Важно чтобы в файле описания правил существовало правило для построения указанной цели. Если такого правила не существует, то утилита выдаст ошибку.

Если при запуске утилиты не указывается ни одной цели, то по умолчанию будет выполнена попытка построить цель, указанную в первом найденном правиле.

Например:

Maketarget- выполнить построение целиtarget.

Соседние файлы в папке Материалы