10.3 为多架构编译(Compiling For Multiple Architectures)

你可以将对象文件放置于每种架构相应的目录中,在同一时刻为多种架构计算机编译 Bash。如果要这样做,你必须使用带有支持 VPATH 变量版本的 make 程序,像 GNU make。使用 cd 命令进入对象文件和可执行文件生成的目录,并且运行源目录中的“configure”脚本(参见 10.1《基础安装》)。你可能需要提供“—srcdir=PATH”参数来告诉“configure”源文件在哪。“configure”会在其所在的目录和上级目录“..”中自动检查原代码。

如果你所使用的 make 程序不支持 VPATH 变量,你只能在源代码目录一次编译一种架构的 Bash。在你安装完一种架构的 Bash 之后,在重新为另一种架构配置之前需要使用“make distclean”来清除对象文件。

作为一种代替,如果你的系统支持软链接,你可以使用“support/mkclone”脚本来创建构建树,其可软连接回源目录中的每一个文件。下面是一个在当前目录中从源目录“/usr/gnu/src/bash-2.0”创建一个构建目录的例子:

bash /usr/gnu/src/bash-2.0/support/mkclone -s /usr/gnu/src/bash-2.0 .

需要使用 Bash 来运行 mkclone 脚本,所以在你为其它架构创建构建目录之前,你必须先构建拥有至少一种架构的 Bash。