2

当我使用“make”运行我的自动工具生成的 Makefile 时,它​​会在当前目录中生成文件。我希望它不要“污染”我的目录,而是将程序移动到“bin/”(因为源在“src/”中)

使用自动工具可以做到这一点吗?(使用 autoconf 和 automake - 不是 libtool)

4

1 回答 1

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中,包括源代码、构建文件和测试安装。

在使用当前工作目录从 shell 编辑源代码树的过程中,foobar-1.2.3/_b可以轻松删除内置文件rm -rf _b,并使用测试安装。rm -rf _ifoobar-1.2.3

当然,您可以使用它的一种变体并将构建/安装目录移动到一个目录:foobar-1.2.3--bfoobar-1.2.3--i旁边foobar-1.2.3的 .

于 2009-11-12T00:27:29.200 回答