Sun[tm] Studio 9：dmake 自述文件
Description: Sun Studio 9 自述
Keywords: dmake, 自述文件, 文档, 出版, Sun, Studio 9

2004 年 5 月 27 日更新

### Sun[tm] Studio 9：`dmake` 自述文件

> #### 目录

> 1. 简介
> 2. 关于 `dmake`
> 3. 新特性和更改的特性
> 4. 软件更正
> 5. 问题和解决办法
> 6. 限制和不兼容
> 7. 文档错误

> #### A. 简介

> 本文档包含 Sun[tm] Studio 9 编译器和工具相应的 `dmake` 命令行工具的有关信息。本文档描述了本发行版本的一些新功能，包括此发行版本作出的软件更正，并列出了已知的问题、限制和不兼容性。本文档中的信息优先于此发行版本各手册中的信息。

> 产品文档
> - Solaris 平台的发行说明：可以通过 Sun Studio 9 网站 http://developers.sun.com/tools/cc/documentation/ss9_docs/release_notes.html 获得此发行说明。发行说明中的信息会更新和扩展所有自述文件中的信息。
> - Linux 平台的发行说明：可以通过 Sun Studio 9 网站 http://developers.sun.com/tools/cc/documentation/ss9_docs/release_notes.html 获得此发行说明。发行说明中的信息会更新和扩展所有自述文件中的信息。
> - Sun Studio 9 文档：产品手册页、自述文件的 HTML 版本以及手册可以从 `/installation_directory/docs/index.html` 进行访问。Solaris 平台上的缺省安装目录是 `/opt/SUNWspro`。Linux 平台上的缺省安装目录是 `/opt/sun/sunstudio9`。
> - IDE 文档：Sun Studio 9 IDE 所有组件的联机帮助可从 IDE 中的 [帮助] 菜单进行访问。
> - 开发人员资源门户：有关技术文章、代码样例、文档和知识库，请参见开发人员门户，网址：`http://developers.sun.com/prodtech/cc`。

> 注意—如果 Sun Studio 9 编译器和工具未安装在缺省 `/opt` 目录中，请询问系统管理员以获得系统中的等价路径。

> #### B. 关于 `dmake`

> 该发行版的 `dmake` 命令行工具适用于下列操作系统和平台：

> - Solaris[tm] 操作系统 (SPARC(R) Platform Edition) 版本 8、9 和 10
> - Solaris 操作系统 (x86 Platform Edition) 版本 8、9 和 10
> - 以下版本的 Linux 操作系统：
> - Sun[tm] Java Desktop System 1.0
> - SuSE Linux Enterprise Server 8
> - RedHat Enterprise Linux 3

> `dmake` 是一个命令行工具，兼容 `make`(1)。`dmake` 能够以分布、并行或串行模式生成目标。如果使用的是标准 `make`(1) 公用程序，当 makefile 有变更时毫不费力就可以过渡到 `dmake`。`dmake` 是 `make` 公用程序的超集。对于嵌套 make，如果有某个顶级 makefile 调用“make”，需要使用 $(MAKE)。`dmake` 会对 makefile 进行分析，决定能并行生成哪些目标，并将这些目标的生成版本分布在您设置的多个主机上。

> 有关如何使用 `dmake` 的信息，请参见《分布式 Make (dmake)》，可以通过 Sun Studio 9 集合获得，网址为 `http://docs.sun.com`。

> #### C. 新特性和更改的特性

> 本节描述了 `dmake` 的新功能和更改功能。

> 1. `dmake` for Solaris 在性能、可靠性和可用性方面的改进之处

>    makefile 分析器在速度方面比上一个版本快 10 倍，比 GNU make 快 3 倍。在生成方面，不仅速度更快，而且更加稳定。此外，日志文件的可读性更强。

> 2. Linux `dmake` 实现

> 为了使 Linux 能够以串行、并行和分布式模式进行生成，将实现全面的 `dmake` 功能。因此，无需对 makefile 进行大范围更改即可在 Linux 上生成 Solaris 应用程序。一次生成结果可以同时分布到 Linux 和 Solaris 操作系统。

> #### D. 软件更正

> 1. `dmake` 内存使用减少，解决错误码 4693384。
> 2. `dmake` 现在同 Solaris `make` 一致了，解决错误码 4745280。
> 3. `dmake` 现在自动调节并行作业限制以防止过载，解决错误码 4694000。

> #### E. 问题和解决办法

> 本节讨论了已知的软件问题及其可能的解决方法。有关更新信息，请查看开发人员门户，网址：http://developers.sun.com/prodtech/cc/support_index.html。

> 如果在分布模式下使用 `dmake` 当中出现任何问题，请核实以下内容：

> 1. `$HOME` 环境变量设置为可访问目录。
>    `% ls -la $HOME`
> 2. 文件 `$HOME/.dmakerc` 存在且可读，并包含正确信息。
>    `% cat $HOME/.dmakerc`
> 3. 通过使用 /usr/sbin/ping 命令检查每台主机，`$HOME/.dmakerc` 文件中涉及的所有主机均是活动的。
>    `% /usr/sbin/ping $HOST`
>    其中 `$HOST` 是系统的名称，它作为主机列于 `$HOME/.dmakerc` 文件中。
> 4. 通过使用 `dmake`、`rxm` 和 `rxs` 命令，到 `DMAKE` 二进制文件的路径是正确的。
>    `%which dmake`
>    `% which rxm`
>    `% which rxs`
> 5. 在每台主机上远程登录 (`rsh`) 不需要密码，并且每次远程登录所用时间是可以接受的（不超过 2 秒钟）。
>    `% time rsh $HOST uname -a`
> 6. 文件 /etc/opt/SPROdmake/dmake.conf 位于每台主机中并包含正确的信息。
>    `% rsh $HOST cat /etc/opt/SPROdmake/dmake.conf`
> 7. 对于每台主机，DMAKE 二进制文件的路径均是正确的。
>    `% rsh $HOST `which dmake``
>    `% rsh $HOST `which rxm``
>    `% rsh $HOST `which rxs``
> 8. 可从每台主机中获得生成区域 (`rwx`)
>    `% cd $BUILD`
>    `% rm $HOST.check.tmp`
>    `% echo "Build area is available from host $HOST" > $HOST.check.tmp`
>    `% rsh $HOST cat $BUILD/$HOST.check.tmp`
>    其中 `$BUILD` 是生成区域的全路径。
> 9. 可从每台主机中获得 `$HOME`：
>    `% cd $HOME`
>    `% rm $HOST.check.tmp`
>    `% echo "HOME is available from host $HOST" > $HOST.check.tmp`
>    `% rsh $HOST cat $HOME/$HOST.check.tmp`

> #### F. 限制和不兼容

> `dmake` 有以下限制：

> > 您可以将任何机器作为生成服务器使用，只要其符合以下要求：

> > - 从 `dmake` 主机（您即将用来开始生成过程的机器），您必须能在不被提示输入密码的情况下，使用 `rsh` 在生成服务器上远程执行命令。
> > - 必须能够从生成服务器访问安装了 `dmake` 软件的 `bin` 目录。缺省情况下，`dmake` 会假设生成服务器上 `dmake` 可执行文件的逻辑路径与 `dmake` 主机上的是一样的。您可以通过在运行时配置文件中将路径名称指定为主机条目的属性来覆盖此假设。

> #### G. 文档错误

> 目前没有新的信息。

> 版权所有 © 2004 Sun Microsystems, Inc. 保留所有权利。必须依据许可证条款使用。