The OpenNET Project
 
Поиск (ключи):  ПРОГРАММЫ СТАТЬИ СОВЕТЫ ФОРУМ
ССЫЛКИ НОВОСТИ (+) MAN'ы ДОКУМЕНТАЦИЯ

Каталог документации / Раздел "Программирование, языки" / Оглавление документа
Go to the first, previous, next, last section, table of contents.


`Makefile.am' верхнего уровня

В неплоских пакетах в файле `Makefile.am' верхнего уровня надо указать Automake, в каких подкаталогах будет производится сборка. Это выполняется с помощью переменной SUBDIRS.

Макрос SUBDIRS содержит список подкаталогов, в которых могут производиться различные виды сборки. Многие цели (например, all) в сгенерированном файле `Makefile' будут выполняться как в текущем каталоге, так и во всех указанных подкаталогах. Заметьте, что подкаталоги, перечисленные в SUBDIRS, не обязаны содержать файл `Makefile.am', а только лишь `Makefile' (после выполнения конфигурации). Это позволяет использовать библиотеки из пакетов, которые не используют Automake (например, gettext). Каталоги, упомянутые в SUBDIRS, должны быть прямыми потомками текущего каталога. Например, вы не можете поместить каталог `src/subdir' в переменную SUBDIRS.

В глубоких пакетах `Makefile.am' верхнего уровня часто очень короток. Например, вот `Makefile.am' из дистрибутива GNU Hello:

EXTRA_DIST = BUGS ChangeLog.O README-alpha
SUBDIRS = doc intl po src tests

Можно переопределить переменную SUBDIRS если, как в случае GNU Inetutils, вы хотите собрать только некоторое подмножество пакета. Для этого включите в ваш файл `Makefile.am' следующие строки:

SUBDIRS = @SUBDIRS@

Затем в вашем файле `configure.in' вы можете указать:

SUBDIRS = "src doc lib po"
AC_SUBST(SUBDIRS)

В результате этого Automake сможет при построении пакета заставить его принимать список каталогов, но точное содержимое этого списка станет известно только после запуска configure.

Хотя макрос SUBDIRS может содержать подстановки (например `@DIRS@'); сам Automake в действительности не проверяет содержимое этой переменной.

Если определена переменная SUBDIRS, то ваш файл `configure.in' должен включать макрос AC_PROG_MAKE_SET.

Использование SUBDIRS не ограничено только `Makefile.am' верхнего уровня. Automake может использоваться для создания пакетов любой глубины.

По умолчанию Automake создает файлы `Makefile', которые работают, выполняя сначала make в подкаталогах (постфиксный метод). Однако, можно изменить это поведение, поместив `.' в переменную SUBDIRS. Например, поместив `.' в начало списка, вы заставите выполнять make сначала в текущем каталоге, а затем уже в подкаталогах (префиксный метод).


Go to the first, previous, next, last section, table of contents.
Подпишись на Linux Format и получи один из 3 ценных призов!

Началась подписка на журнал Linux Format на 2010 год. Спешите оформить подписку на единственный в России ежемесячный журнал о Linux!

Все, оформившие подписку на печатную версию журнала, получают диск с архивом журнала Linux Format за 2005-2009г. в подарок. Также в подарок вы получаете именную электронную версию в формате PDF. Теперь вы можете приступить к чтению журнала сразу в момент выхода свежего номера, не дожидаясь, пока вам доставят бумажную версию.

Кроме того, все, оформившие подписку на первую половину или весь 2010 год в интернет-магазине ГНУ/Линуксцентра, автоматически становятся участниками розыгрыша ценных призов:


  Закладки на сайте
  Проследить за страницей
Created 1996-2010 by Maxim Chirkov  
ДобавитьРекламаВебмастеруГИД  

RUNNet TopList