Updated 2004/12/06

Sun[tm] Studio: dmake Readme


  1. Introduction
  2. About dmake
  3. New and Changed Features
  4. Software Corrections
  5. Problems and Workarounds
  6. Limitations and Incompatibilities
  7. Documentation Errors


A. Introduction

This document contains information about the dmake command-line tool for the Sun[tm] Studio compilers and tools. This document describes the software corrections, known problems, limitations, and incompatibilities of this release.

Product Documentation

Note - If your Sun Studio compilers and tools have not been installed in the default /opt directory, ask your system administrator for the equivalent path on your system.


B. About dmake

This release of the dmake command-line tool is available on the following operating systems and platforms:

dmake is a command-line tool, compatible with make(1). dmake can build targets in grid, distributed, parallel, or serial mode. If you use the standard make(1) utility, the transition to dmake requires little if any alteration to your makefiles. dmake is a superset of the make utility. With nested makes, if a top-level makefile calls "make", you need to use $(MAKE). dmake parses the makefiles and determines which targets can be built concurrently and distributes the build of those targets over a number of hosts set by you.

For information about how to use dmake, see Distributed Make (dmake), available in the Sun Studio Collection on http://docs.sun.com.


C. New and Changed Features

This section describes the new and changed features for dmake.

The following new features were added in this release:

  1. UNIX 2003 compliance. dmake and the make utility in the Solaris 10 OS passed the UNIX 2003 conformance tests (XPG5).
  2. dmake now includes support for the Sun Grid Engine on the AMD64 architecture.
  3. System overloading control is now available on the AMD64 architecture.
  4. The DMAKE_OUTPUT_MODE environment variable gives you two format options for the log file, one of which serializes the output of parallel jobs, making the log file more readable.

The following new features were added in the previous release:

  1. dmake provides support for the Sun Grid Engine on all platforms.
  2. Performance, reliablity, and usability improvements in dmake on the Solaris OS.

    The makefile parser is 10 times faster than the previous version, and 3 times faster than GNU make. Builds run faster and are more stable. The log file is also more readable.

  3. Linux dmake implementation
  4. Full dmake functionality is implemented for Linux builds in serial, parallel, and distributed modes. Consequently, Solaris applications can be built on Linux without big changes in makefiles. One build can be distributed to both Linux and Solaris platforms.


D. Software Corrections

There is no new information at this time.

E. Problems and Workarounds

This section discusses known software problems and possible workarounds for those problems. For updates or patches, check the updated information at http://developers.sun.com/prodtech/cc/support_index.html.

If there are any problems with using dmake in distributed mode, verify the following:

  1. The $HOME environment variable is set to an accessible directory.
    % ls -la $HOME
  2. The file $HOME/.dmakerc exists, is readable, and contains correct information.
    % cat $HOME/.dmakerc
  3. All hosts mentioned in $HOME/.dmakerc file are alive by using the /usr/sbin/ping command to check each host.
    % /usr/sbin/ping $HOST
    where $HOST is the name of the system, which is listed as the host in $HOME/.dmakerc file.
  4. The path to the DMAKE binaries is correct by using the dmake, rxm, and rxs commands.
    % which dmake
    % which rxm
    % which rxs
  5. The remote login (rsh) on each host works without a password, and each remote login takes an acceptable time (less than 2 seconds).
    % time rsh $HOST uname -a
  6. The file /etc/opt/SPROdmake/dmake.conf exists on each host and contains the correct information.
    % rsh $HOST cat /etc/opt/SPROdmake/dmake.conf
  7. The path to DMAKE binaries is correct for each host.
    % rsh $HOST `which dmake`
    % rsh $HOST `which rxm`
    % rsh $HOST `which rxs`
  8. The build area is available from each host (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
    where $BUILD is the full path to the build area.
  9. That $HOME is available from each host:
    % cd $HOME
    % rm $HOST.check.tmp
    % echo "HOME is available from host $HOST" > $HOST.check.tmp
    % rsh $HOST cat $HOME/$HOST.check.tmp

F. Limitations and Incompatibilities

This section discusses limitations and incompatibilities with systems or other software.

For last-minute information, see the release notes for Solaris platforms at http://developers.sun.com/tools/cc/documentation/ss10_docs/release_notes.html and the release notes for Linux platforms at http://developers.sun.com/tools/cc/documentation/ss10_docs/Linux_release_notes.html

dmake has the following limitations:

You can use any machine as a build server as long as it meets the following requirements:


G. Documentation Errata

There is no new information at this time. 


Copyright © 2004 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.