go to the first, previous, next, last section, table of contents.
в неплоских пакетах в файле `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.
|