Updated 2007/05/31

Sun[tm] Studio: dmake Readme

Contents

  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

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.

dmake is integrated with the IDE. By default all projects are built with dmake, which runs in parallel mode. Project properties let users specify the maximum number of build jobs. By default dmake runs 2 jobs in parallel, which means many projects will build twice as fast on multi-CPU systems.

For information about how to use dmake, see the Distributed Make (dmake) manual.

 


C. New and Changed Features

This section describes the new and changed features for dmake. For details, see the dmake(1) man page.

The following new features were added in this release:

  1. dmake is now integrated in Sun Studio IDE. This means that by default all projects are built using dmake in parallel mode. To change the build mode or change the number of parallel jobs can be done from inside the IDE:

    From the main menu, choose Tools -> Options to open the "Options" dialog
    • In "Options", select the C/C++ icon (left panel) to show the C/C++ options on right panel
    • Click on the "Project Options" tab (right panel) to show the project options, and select "Make Options"
    • Enter "-m parallel -j 24"
    • Press "Ok" button.
    Now all projects will be built in parallel mode up to a maximum of 24 jobs.

The following features were added in previous releases:

  1. The "-x SUN_MAKE_COMPAT_MODE=..." command line option
    gives users three options to specify dmake's behavior
    (compatibility mode):
    SUN_MAKE_COMPAT_MODE=SUN - compatibility with Sun "make"
    (this is the default behavior)
    SUN_MAKE_COMPAT_MODE=POSIX - compatibility with POSIX "make"
    SUN_MAKE_COMPAT_MODE=GNU - compatibility with GNU "make"
    Compatibility with GNU "make" is partially implemented, and
    will be improved in next releases.
  2. The SUN_MAKE_COMPAT_MODE environment variable gives users
    three options to specify dmake's behavior (compatibility mode):
    SUN_MAKE_COMPAT_MODE=POSIX - compatibility with POSIX "make"
    SUN_MAKE_COMPAT_MODE=SUN - compatibility with Sun "make"
    SUN_MAKE_COMPAT_MODE=GNU - compatibility with GNU "make"
    Compatibility with GNU "make" is partially implemented, and
    will be improved in next releases.
  3. UNIX 2003 compliance. dmake and the make utility in the Solaris 10 OS passed the UNIX 2003 conformance tests (XPG5).
  4. dmake now includes support for the Sun Grid Engine on the AMD64 architecture.
  5. System overloading control is now available on the AMD64 architecture.
  6. 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.


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/sunstudio/support/.

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 at http://developers.sun.com/sunstudio/documentation/ss12/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 © 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.