Операционная система UNIX. Руководство программиста




ВВЕДЕНИЕ


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

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

Всякий программист запросто может забыть:

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

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

Основные операции утилиты make таковы:

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

Файлу описаний, задающему информацию о межфайловых зависимостях и последовательностях команд для порождения файлов, принято давать имя makefile, Makefile или s.[mM]akefile. Если следовать этому соглашению, для достижения цели чаще всего оказывается достаточно просто набрать

make

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

Имеется одно применение утилиты make, с которым приходится сталкиваться всем системным программистам - это перегенерация ОС UNIX. В каталоге /usr/src/uts находится файл описаний с именем Makefile, управляющий процессом перегенерации. Изучение подобного реального примера должно способствовать лучшему пониманию данного описания.




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