存储GNU使生成的文件在别处

时间:2009-08-21 10:43:27

标签: linux makefile

如何存储GNU make&在别处配置文件?我有一个我正在研究的项目,我使用以下方法编译:

./configure --prefix=/usr && make && su -c 'make install'

问题是我不想污染当前文件夹,这是一个svn / git / hg /无论沙箱与该命令生成的文件。我想将这些文件放在一个单独的位置。我不知道它是否相似,但是当我从源代码编译linux内核时,我可以通过将'O'选项传递给'make'来指定放置输出的位置,如下所示:

make O=/home/user/linux-output

2 个答案:

答案 0 :(得分:9)

Makefile必须支持此功能。

认为 autoconf生成的makefile都支持以下用途:

mkdir ../build
cd ../build
../configure --prefix=/usr
make
make install

(肯定推荐用于gcc版本。)

答案 1 :(得分:1)

正如Kristof已经指出的那样,GNU autotools固有地支持configure级别的树外构建。

因此,您可以轻松地从源代码树中获取Makefile和构建的二进制文件。

要从源树中获取所有自动生成的文物,需要做更多的工作。

我们有一个脚本可以将源树中的更改复制到working_copy中,在working_copy中仔细保留配置脚本等,这样可以使原始源树保持原始状态。然而,这是非常低效的,所以我不推荐它。

我建议使用正常的树外构建,然后明确排除源树中剩余的自动生成的文件。