Аннотация
Здесь мы рассмотрим внутренности Borges. Это может быть интересным для разрабочиков, а также для пользователей, желающих воспользоваться преимуществами наиболее продвинутых возможностей Borges.
Если что-то из изложенного ниже не совсем понятно, или если вы хотите знать больше, используйте исходный код Luke. Если вам что-то совсем не понятно, задайте вопрос в списке рассылки Borges.
Мы перечислим здесь различные Makefile'ы, доступные в репозитории исходных текстов Borges и в репозиториях исполняемой части[5]. Мы подробно опишем методы создания этих Makefile'ов, их распространения и т.п.
Здесь существует только один используемый Makefile. Вы найдёте его в корне репозитория.
Этот Makefile имеет две главные цели:
компилирует документацию Borges и отчёты;
устанавливает Borges в систему, чтобы пользователи этой системы могли начать свои проекты документации с использованием Borges. Она устанавливает все скрипты и Makefile'ы и создаёт шаблон репозитория, чтобы пользователи могли быстро начать пользоваться Borges'ом.
По умолчанию Borges устанавливается в /usr/share (/usr/share/Borges/). Вы можете изменить этот путь, передав в make параметр TARGET. К примеру, если вы хотите перенести Borges в /home/joe/test/Borges/, просто выполните make install TARGET=/home/joe/test
Вы могли обратить внимание, что Borges не нуждается в компиляции. Действительно, все скрипты написаны на Perl или bash и компилировать их нет необходимости.
На приведенной ниже диаграмме показано, как различные Makefile'ы, предоставляемые Borges'ом, распределены в репозитории исполняемой части.
Здесь мы видим, каким образом Makefile'ы связаны друг с другом. На Рисунок 7.2, «Взаимосвязи между Makefile'ами» показано, как Makefile'ы включают друг друга. Стрелка на диаграмме означает «включение».
Все пути являются относительными по отношению к корневому каталогу, если не указаны другие.
Мы можем разделить их на четыре типа:
Makefile'ы слева используются для выполнения задач над руководствами, модулями, изображениями и т.п.
Этот Makefile по умолчанию пуст. Он может быть использован опытными пользователями для переопределения правил компиляции руководства по умолчанию. Подробнее смотрите в Раздел 3, «Добавление/изменение правил руководства».
Этот Makefile содерждит правила для преобразования исходных XML-файлов DocBook в любой нужный выходной формат (PDF, HTML и т.д.). Опытные пользователи могут разработать свой собственный Makefile.XXX для поддержки другого DTD. Подробнее о том, как это сделать, смотрите в Раздел 4, «Поддержка другого DTD, отличного от DocBook».
Чтобы определить, какой Makefile используется для создания выходных форматов, система ищет элемент(ы) <makefile> в conf/repository.xml и устанавливает соответственную переменную OUTPUTS в корневом Makefile.include, описанном ниже.
Этот Makefile автоматически создаётся корневым Makefile'ом. В нём содержится полезная информация для всех других Makefile'ов, полученная из окружающей среды и в особенности из главного конфигурационного файла conf/repository.xml. Также в нём содержатся некоторые стандартные функции и правила.
[5] Важно понимать разницу между репозиторием исходных текстов Borges, в котором находится весь исходный код Borges, сопровождаемого его разработчиками; и простой реализацией Borges, представляющей собой репозиторий проекта документации с исходными файлами документации, управляемыми Borges'ом.