2009-11-12 6 views
2

Когда я запускаю созданный с помощью Autotools Makefile с «make», он генерирует файлы в текущем каталоге. Я бы предпочел, чтобы он не «загрязнял» мой каталог, а переводил программы в «bin /» (поскольку источник находится в «src /»)Локальный каталог-каталог Autotools

Возможно ли это с помощью autotools? (Использование Autoconf и Automake - Не LIBTOOL)

ответ

3
mkdir builddir 
cd builddir 
../foobar-1.2.3/configure --my --options (or) 
/path/to/foobar-1.2.3/configure --my --options 
make 
make foobar 
make check 
make install 

Что я обычно заканчиваю ти при создании вручную что-то вроде

cd foobar-1.2.3 
(mkdir _b && cd _b && ../configure --prefix=$PWD/../_i) 
make -C _b all check install installcheck 
./_i/bin/foobar 
vi foo.c bar.c foobar.h 
gimp icons/foobar-moo.png 
make -C _b install && ./_i/bin/foobar 

Тогда у меня есть все вещи, связанные с программой Foobar внутри одной директории foobar-1.2.3 , включая исходный код, встроенные файлы и тестовую установку.

Встроенные файлы foobar-1.2.3/_b легко удаляются с rm -rf _b и испытательная установка с rm -rf _i, в процессе редактирования исходного дерева из оболочки с текущей рабочей директории foobar-1.2.3.

Конечно, вы можете использовать этот вариант и переместить сборки/установки в один каталог: foobar-1.2.3--b и foobar-1.2.3--i рядом с foobar-1.2.3.

+0

Это выглядит хорошо, и я, вероятно, в конечном итоге воспользуюсь этим. Но нет ли простого способа перенаправить его по умолчанию? – alternative

+0

Правила make Automake создает компиляцию в исходное дерево каталогов и в виде «пустого зеркала» исходного дерева каталогов. Третьего варианта нет. – ndim

+0

Не могли бы вы рассказать об этом? – alternative

Смежные вопросы