【发布时间】:2014-03-11 18:31:29
【问题描述】:
我在几台机器上做 Linux 开发,主要是 Slackware 13.37 和 Ubuntu 12.04。我正在测试和验证几个简单的 makefile 的结果,并想确认make install 的输出。但是,在继续测试之前,我想知道是否有一种可移植的方法来更改任何 makefile 的 make install 的默认输出目标。
如果我能以某种方式暂存我的输出,我会更喜欢,所以所有输出都会转到,例如:
/test/bin
/test/lib
/test/usr/bin
代替:
/bin
/lib
/usr/bin
我知道,例如,在 QNX 开发环境中,我可以设置像QCONF_OVERRIDE 和INSTALL_ROOT_nto 这样的环境变量,并保证除了/test 的子目录之外没有任何makefile 可以安装。 Ubuntu上的GCC是否有类似的机制,只需要在我的~/.bashrc文件中设置一些环境变量?我的所有工作都是通过命令行和 VIM 完成的,所以我不担心漂亮的 IDE 由于它们不在.kderc、.gnomerc 或等效项中而无法理解这些环境变量的情况.
谢谢。
【问题讨论】:
-
你试过
make --prefix=/path/to/local/directory吗? -
那不行;
--prefix不是make的有效标志。要回答最初的问题,不,您无法设置任何变量来保证无论生成文件如何。是否有办法做到这一点是makefile的一个功能。如果makefile有办法做到这一点,你可以;如果不是,你不能。然而,几乎每个 makefile确实 都有办法做到这一点。 -
好的。有点遗憾,这不是一个可以管理的独立于发行版的东西,特别是考虑到 GCC 从早期开始就与 Linux 耦合(我从 Slackware 3.0 开始)。 QNX 完美地做到了这一点,甚至允许您覆盖
make install目标明确尝试安装到绝对路径的情况,只需在登录时所有用户来源的脚本中设置一些环境变量。 -
make DESTDIR=/test install
标签: linux ubuntu gcc compilation makefile