<< Back to man.ChinaUnix.net

Next Previous Contents

3. 使用Make

Makefile 是构建过程中的重点。 比较简单的是, Makefile 是脚本,用来编译或构建二进制,包括了包的可执行选项部分。Makefile同样能提供升级软件包的方法,而不需要重新编译任何套件中的原文档。但这个是不同的情况(或不同的约定)。

某些情况是 Makefile 加载 cc 或 gcc 。这是预处理, C (或 C++) 编译和链接按照顺序来调用它们。这个过程是把源码转换成二进制并可执行。

调用 make通常的方法是输入 make。一般是为这个包构建所有的必须的可执行二进制文件,make同样也能执行其他任务,比如安装文件到适合的目录 (make install) ,并删除目标文件 (make clean).运行 make -n 能预览构建过程,用 make 打印输出所有的命令,而实际上并不需要去执行它们。

只有简单软件使用基本的 Makefile。更多复杂的安装需要根据不同机器的本地 libraries, include 文件来定制,特别是构建需要 X11 libraries 的安装。 Imake 和 xmkmf 可完成这样的任务。

Imakefile 可参照 man page 做模版 Makefile. imake 有效的通过 Imakefile 来根据你的系统制作 Makefile。在所有情况下,尽管你运行 xmkm,一个 shell 脚本来调用 imake, 是前端界面。检查 README 或 INSTALL 文件包括软件包中给的指定的指令。(否则 Imake 在包含这些源文件基本的目录的时候 xmkmf 应该会运行)阅读 Imake 和 xmkmf man pages 可以得到更多有效的分析。

必需知道的是调用 xmkmf 和 make 需要用 root 权限, 特别是用 make install 移动二进制到 /usr/bin 或 /usr/local/bin 目录里。普通用户没有 root 权限来 make 的时候很可能会导致write access denied 错误消息,因为你缺乏这些系统目录的许可权限,二进制创建还需要可执行权限给你和其他的用户。

通过调用 xmkmf ,用 Imake 文件构建一个新的适合你的系统的 Makefile 。你正常调用 xmkmf 会附加 -a 参数,来自动的做 make Makefiles, make includes,和 make depend 这会定义变量和函数库给编译器和连接器。有时会没有 Imake 文件,可用 INSTALL 或 configure 脚本完成这个单元。提示你运行 configure, 需要这样来调用 ./configure 要确保 configure 脚本在当前目录可访问大部分情况下 README 包括发布和解释安装程序的说明。

通常一个好方法是检查 Makefile 是否是 xmkmf 或其他程序构建的。Makefile 通常能正确检测出你的系统,但有时候需要手动调整它的错误。

安装刚才构建的二进制到适当的系统目录通常以 root 运行 make install 。这个目录一般在现在流行的 Linux 发行版上是 /usr/bin, /usr/X11R6/bin和 /usr/local/bin。新包的首选项是 /usr/local/bin, 以便和 Linux 原始安装的文件区分开来。

最初的商业版的 UNIX 会安装在 /opt 或其他不熟悉的目录上,这很明显会导致一个安装目录不存在的错误。有个简单的方法就是用 root 建立一个 /opt 目录,让包能安装到。并且增加目录到 PATH 的环境变量里。为了兼容,你可以选择创建一个链接到 /usr/local/bin 目录。

你的基本安装步骤如下:

提示:


Next Previous Contents