Sun Studio 12: Distributed Make (dmake)


Distributed Make (dmake) parses your makefiles and determines which target can be built concurrently, and distributes the build of those targets over a number of hosts set by you.

If you have use the standard make utility on the Solaris Operating System (Solaris OS), the transition to dmake requires little if any alteration to your makefiles. dmake is a superset of the Solaris make utility, which can be used both on Solaris and Linux platforms. With nested makes, if a top-level makefile calls "make", you need to use $(MAKE).

You execute dmake on a "dmake host" and distribute "jobs" to "build servers."

You can also distribute jobs to the dmake host, in which case the dmake host also becomes a build server. dmake distributes jobs based on makefile targets that dmake determines (based on your makefiles) can be built concurrently.

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

demo% rsh <machine_name> which dmake

The rsh must be "clean", with no additional output.

From the dmake host you can control which build servers are used and how many dmake jobs are allotted to each build server.

The number of dmake jobs that can run on a given build server can also be limited on that server.