Updated 2007/05/31 |
Sun[tm] Studio: dmake Readme |
Contents
- Introduction
- About dmake
- New and Changed Features
- Software Corrections
- Problems and Workarounds
- Limitations and Incompatibilities
- 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
- Release Notes: Available on the developer portal at http://developers.sun.com/sunstudio/documentation/ss12/release_notes.html. Information in the release notes updates and extends information in all readme files.
- Sun Studio Documentation: Product man pages, HTML versions of readmes, and manuals can be accessed from /installation_directory/docs/index.html. The default installation directory on Solaris platforms is /opt/SUNWspro. The default installation directory on Linux platforms is /opt/sun/sunstudio12.
- IDE Documentation: Online help for all components of the Sun Studio IDE can be accessed from the Help menu in the IDE.
- Developer Resources Portal: For technical articles, code samples, documentation, and a knowledge base, see the developers portal at http://developers.sun.com/sunstudio.
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:
- 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" dialogNow all projects will be built in parallel mode up to a maximum of 24 jobs.
- 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.
The following features were added in previous releases:
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. 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.- UNIX 2003 compliance. dmake and the make utility in the Solaris 10 OS passed the UNIX 2003 conformance tests (XPG5).
- dmake now includes support for the Sun Grid Engine on the AMD64 architecture.
- System overloading control is now available on the AMD64 architecture.
- 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:
- The $HOME environment variable is set to an accessible directory.
% ls -la $HOME
- The file $HOME/.dmakerc exists, is readable, and contains correct information.
% cat $HOME/.dmakerc
- 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.
- The path to the DMAKE binaries is correct by using the dmake, rxm, and rxs commands.
% which dmake
% which rxm
% which rxs
- 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
- The file /etc/opt/SPROdmake/dmake.conf exists on each host and contains the correct information.
% rsh $HOST cat /etc/opt/SPROdmake/dmake.conf
- The path to DMAKE binaries is correct for each host.
% rsh $HOST `which dmake`
% rsh $HOST `which rxm`
% rsh $HOST `which rxs`
- 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.
- 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:
- From the dmake host (the machine you are using to start the build process) you must be able to use rsh without being prompted for the password to remotely execute commands on the build server.
- The bin directory in which the dmake software is installed must be accessible from the build server. By default, dmake assumes that the logical path to the dmake executables on the build server is the same as on the dmake host. You can override this assumption by specifying a path name as an attribute of the host entry in the runtime configuration file.
- The /etc/opt/SPROdmake/dmake.conf file exists on the host, is readable, and contains the correct information.
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.