Вперед Назад Содержание

1. Обзор make

Утилита make автоматически определяет, какие части большой программы должны быть перекомпилированы и команды для их перекомпиляции, Это руководство описывает GNU make, который был реализован Ричардом Столлманом и Роландом МакГратом, GNU make удовлетворяет разделу 6.2 стандарта IEEE 1003.2-1992 (POSIX.2).

В наших примерах демонстрируются C-программы, поскольку они встречаются наиболее часто, но вы можете использовать make с любым языком программирования, компилятор которого может запускаться из командной строки. На самом деле, применение утилиты make не ограничивается программами. Вы можете использовать его для описания любой задачи, где некоторые файлы должны автоматически порождаться из других всегда, когда те изменяются.

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

Как только существует подходящий make-файл, для выполнения всех необходимых перекомпиляций при изменении исходных файлов достаточно просто набрать в командной строке:

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

Вы можете при вызове make использовать аргументы командной строки для управления тем, какие файлы следует перекомпилировать и как это делать. Смотрите главу 9 [Как запускать make].

1.1 Как читать это руководство

Если вы начинающий пользователь make или вы ищете общее описание, читайте несколько первых разделов каждой главы, пропуская остальные. В каждой главе несколько первых разделов содержат введение или общую информацию, а следующие разделы- специализированную или техническую информацию. Исключение составляет глава 2 [Введение в make-файлы], целиком являющаяся введением.

Если вы знакомы с другими версиями программы make, смотрите главу 12 [Особенности GNU-версии программы make], в которой перечисляются все дополнительные возможности, имеющиеся в GNU-версии программы make, а также главу 13 [Несовместимость и недостающие возможности], в которой объясняются те немногие возможности, которые отсутствуют в GNU-версии программы make и имеются в других версиях.

Краткий обзор возможностей утилиты можно увидеть в разделе 9.7 [Обзор опций], приложении А [Краткий справочник] и в разделе 4.7 [Специальные цели].

1.2 Проблемы и ошибки

Если у вас возникли проблемы с использованием утилиты make или вам кажется, что вы обнаружили ошибку в ее работе, сообщите об этом разработчикам; мы не можем обещать сделать все, что угодно, но мы хотели бы исправить ошибки.

Прежде, чем сообщать об ошибке, убедитесь, что вы на самом деле обнаружили настоящую ошибку. Внимательно перечитайте документацию и посмотрите, утверждает ли она на самом деле, что вы можете сделать то, что пытаетесь. Если неясно, способны вы сделать что-либо или нет, также сообщите об этом - это ошибка в документации!

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

Как только вы точно выявили проблему, пошлите, пожалуйста, сообщение по электронной почте через Internet или посредством UUCP:

адрес в Internet : bug-gnu-<htmlurl name="utils@prep.ai.mit.edu" url="mailto:utils@prep.ai.mit.edu"> UUCP-путь : mit-eddie!prep.ai.mit.edu!bug-gnu-utils
Включите, пожалуйста, в письмо, номер версии make, которой вы пользуетесь. Вы можете получить эту информацию, набрав в командной строке 'make --version'. Проверьте также, что вы включили в сообщение тип используемых Вами машины и операционной системы. Включите, если возможно, содержимое файла 'config.h', который генерируется в процессе конфигурации.

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


Вперед Назад Содержание