[comp.unix.questions] Parallelism of Make

benson@ksr.UUCP (Benson Margulies) (12/27/87)

I have seen two advanced replacements for make -- mk and nmake, both
from AT&T. Both are incompatible with 4.3 and SysVr3 make. Both offer
partial conversion tools, in the forward direction only. 

Thus, neither is a solution that allows a user to bring an application
from a machine with a 'vanilla' make to a multiprocessor and type

   make

and get the benefit of the parallel processor. The user must make some
conversion investment.

In the case of mk, the syntax is close to that of make, and so one
might imagine implementing make as a filter that processed the
makefile and passed it along to mk. In the case of nmake, this is out
of the question.

Has anyone else gotten embroiled in this? Has anyone a compatible
parallel make, for licence of free?

--benson


-- 
Benson I. Margulies                         Kendall Square Research Corp.
harvard!ksr!benson			    ksr!benson@harvard.harvard.edu

benson@phantom.ksr.com (Benson Margulies) (12/31/87)

 I made a mistake in my posting. It should have said "for licence OR free,"
 not for licence OF free.
Benson I. Margulies                         Kendall Square Research Corp.
harvard!ksr!benson			    ksr!benson@harvard.harvard.edu

gsf@ulysses.homer.nj.att.com (Glenn Fowler[eww]) (01/05/88)

In article <206@ksr.UUCP>, benson@ksr.UUCP (Benson Margulies) writes:
> I have seen two advanced replacements for make -- mk and nmake, both
> from AT&T. Both are incompatible with 4.3 and SysVr3 make. Both offer
> partial conversion tools, in the forward direction only. 

nmake is distributed with conversion tools in both directions, but
neither provides 100% accuracy:

	mkcv:	convert old makefile to nmake makefile
	mkold:	generate old makefile given nmake makefile

The output from both programs definitely looks mechanically generated.
Some constructs do not easily convert.  Most problems involve the
property that old make actions are executed one line at a time by
separate shells whereas each nmake action is executed as a block by
a single shell.  mk actions are also executed as blocks, although
variable (macro) expansions are left up to the shell.

For parallel execution of actions any variant of make must provide
hooks for mutual exclusion; there is no standard way to specify this.

For the group I work with it is almost always a win to convert
foreign makefiles to nmake before hacking.  Our 3b2 sVr3 makefiles
went from ~20 files, ~5000 lines down to 1 file, 280 lines.

    Glenn Fowler                    AT&T Bell Laboratories, Murray Hill
    {ihnp4,allegra}!ulysses!gsf                          (201)-582-2195
-- 
    Glenn Fowler                    AT&T Bell Laboratories, Murray Hill
    {ihnp4,allegra}!ulysses!gsf                          (201)-582-2195