DMAKE(1)

NAME
dmake - parallel make from Distributed Make

SYNOPSIS
dmake [-c dmake-rcfile] [ -g dmake-group ] [ -j dmake-max-jobs ]
[-m {serial | parallel} ] [-x MODE_NAME=VALUE]
[-o dmake-odir] [-R]

DESCRIPTION
This man page supplements the man page for the Solaris make(1s) utility.

This version of dmake(1) implements a subset of the features of the dmake(1) program delivered with the Sun Studio compiler suite. It implements serial and parallel mode, but neither the distributed nor the grid mode.

OPTIONS

-c dmake-rcfile
    This version of dmake neither supports the default configuration file $(HOME)/.dmakerc nor an alternate location specified by the -c option.

-g dmake-group
    This version of dmake does not support to set a dmake group via the -g option.

-j dmake-max-jobs
    Specifies the maximum total number of jobs that are run in parallel.

    The environment DMAKE_ADJUST_MAX_JOBS and the command line macro of the same name manage the way make controls the number of jobs. See the chapter ENVIRONMENT for more information.

-m {serial | parallel}
    Allows specifying one of the following key words:

    serial
        Causes dmake to behave like the standard serial version of make.

    parallel
        Causes dmake to run several jobs in parallel on the dmake host.

-o dmake-odir
    This version of dmake does not support to set a common physical directory via the -o option.

-O filedesc
    This version of dmake does not support to set a file descriptor to send job start and result messages to using the -O option.

-R  Do not run in parallel mode.

-x SUN_MAKE_COMPAT_MODE=value
-x DMAKE_OUTPUT_MODE=value
    Allows setting the dmake compat mode or the output mode. See ENVIRONMENT for more information.

USAGE

For the general usage, see the make(1s) man page for more information.

  Special-purpose Targets
dmake supports the special targets .PARALLEL, .NO_PARALLEL, .NOTPARALLEL, .LOCAL, and .WAIT to control the way the targets are made.

.NO_PARALLEL:
    Add targets to the dependency list of this target to control which targets are to be processed serially.

.NOTPARALLEL:
    When this special target is seen in a makefile, all targets in this dmake instance are processed serially. Sub-makes may still run in parallel mode.

.PARALLEL:
    Add targets to the dependency list of this target to control which targets are to be processed in parallel.

.LOCAL:
    Add targets to the dependency list of this target to control which targets are to be processed serially on the local host. This version of dmake does not support distributed builds.

.WAIT
    When this target is specified in a dependency list, dmake waits until the dependencies to the left of the .WAIT pseudo target are finished before starting to process targets to the right of .WAIT.

ENVIRONMENT/MACROS

DMAKE_ADJUST_MAX_JOBS
    This macro allows one to control the parallel make behavior. The macro DMAKE_ADJUST_MAX_JOBS may either be imported from the environment or specified on the command line. The following values are possible:

    YES This is the same as specifying DMAKE_ADJUST_MAX_JOBS=M1

    NO  The number of jobs is not adjusted based on the load of the system or the total number of jobs.

    M1  Allow dmake to control the number of jobs based on the current system load. If the load is high, the number of jobs will be reduced. If the load is low, the number of jobs specified by the user is used.

        This is the default method used to control the number of jobs.

    M2  The number of jobs is adjusted based on the total number of jobs run by the current group of running make programs. This is implemented via shared memory that is set up between recursively called make programs.

DMAKE_GROUP
    This version of dmake does not support to set a dmake group via the DMAKE_GROUP environment or macro.

DMAKE_MAX_JOBS
    Allows setting the maximum number of jobs in case that -j was not specified.

DMAKE_MODE
    May contain one of the following key words:

    serial
        Causes dmake to behave like the standard serial version of make.

    parallel
        Causes dmake to run several jobs in parallel on the dmake host.

DMAKE_ODIR
    This version of dmake does not support to set the dmake-odir via the DMAKE_ODIR environment or macro.

DMAKE_OUTPUT_MODE
    Controls the output format used by dmake. The following values are possible:

    TXT1
        The default behavior. Serialize stdout and stderr, and print a label before the output from a new job starts.

    TXT2
        Serialize stdout and stderr, but do not print the labels from TXT1 mode.

DMAKE_RCFILE
    This version of dmake neither supports the default configuration file $(HOME)/.dmakerc nor an alternate location specified by the DMAKE_RCFILE environment or macro.

__DMAKE_M2_FILE__
    If DMAKE_ADJUST_MAX_JOBS is set to M2, this environment variable holds a handle to the shared memory that is used to manage the job pool. Do never set this environment variable.

For other ENVIRONMENT/MACROS variables, see the make(1s) man page.

FILES
See make(1s) for a list of files.

SEE ALSO
make(1s), attributes(7), largefile(7)

BUGS
See make(1s) for a list of known bugs. Mail other bugs and suggestions to schilytools@mlists.in-berlin.de or open a ticket at https://codeberg.org/schilytools/schilytools/issues.

The mailing list archive may be found at:

https://mlists.in-berlin.de/mailman/listinfo/schilytools-mlists.in-berlin.de.

AUTHORS
This version of dmake(1) was originally written by Sun Microsystems in 1993. Since 2016, it has been maintained by Joerg Schilling and the schilytools project authors.

SOURCE DOWNLOAD
The source code for dmake is included in the schilytools project and may be retrieved from the schilytools project at Codeberg at

https://codeberg.org/schilytools/schilytools.

The download directory is

https://codeberg.org/schilytools/schilytools/releases.