2016-07-23 16 views
1

Я новичок в autotools, но я не могу найти главу в документе autotools, который соответствует моему вопросу.configure.ac указать папку для всех файлов сборки

Есть ли команда, которую я могу указать в скрипте configure.ac, который будет хранить все сборки stuf (файлы конфигурации, файлы Makefile и т. Д.) В одной папке (например ./build)? Или как я должен настроить autotools, чтобы избежать беспорядка в моем репо? Мои шаги:

$autoreconf --install 
$./configure 
$make 

Любой учебник или статья будет очень полезна.

ответ

1

Вам не нужно ничего делать в configure.ac, чтобы включить внеурочный сбор . Вам просто нужно не делать ничего плохого. Правильный пакет с автоохлаждением будет строить в дереве или вне дерева.

Произнесите autotooled пакет находится в ./foobar и вы сделали свою autotooling правильно, так что:

cd foobar 
./configure 
make 
make distcheck 

все работает успешно. Тогда одинаково:

mkdir foobar_build 
cd foobar_build 
../foobar/configure 
make 
make distcheck 

также будет работать точно так же, за исключением того, что все артефакты, созданные с помощью сценария configure и make будет ./foobar_build вместо ./foobar.

Вы не можете получить autoreconf генерировать файлы, которые это создает вне дерева (в configure сценарий и друзей), потому что они должны быть включены в распределения тарболла производимого make dist (например foobar-1.0.tar.gz) , конечный пользователь из autotooled пакета не должен иметь или понимать Autotools: они просто должны быть в состоянии:

  • клона, или скачать и извлечь
  • настроить
  • сделать
  • как корень, сделать установку

по той же причине configure сценария и друзья должны быть в репозитории источника управления , по крайней мере, в ветви освобождения, которую вы публикуете для клонирования, .

+0

Большое спасибо Майку, это действительно прояснило мое мнение. – Constantine