[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Error in processing of :: targets

From: Howard Chu
Subject: Re: Error in processing of :: targets
Date: Tue, 14 Jun 2005 06:20:46 -0700
User-agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8b2) Gecko/20050606

address@hidden wrote:
Gnumake maintainers,
I've run into a functional difference between the standard unix make and GNUmake (3.80) involving how the :: rules are processed. In the standard unix make (Solaris), the :: targets ( i.e., all::) are process in the order they are found in the Makefile serially, regardless of whether parallelism is used (i.e., -jN, where N is > 1).

That's funny, my "standard Unix" (Solaris) make doesn't have a "-j" switch, and doesn't support parallelism. In fact, -j is a GNU-specific extension, and it Works As Designed.
In GNUmake (3.80), the when -j1 is used, the "::" targets are executed serially. When -jN is used the "::" targets are executed in parallel.

Consider the following -- from an IMAKE generated Makefile:

This, like most of the dreck that Imake produces, is bogus.


all:: all.prologue
all:: all.serial all.parallel
all:: ; @echo $@; sleep 1; echo address@hidden <mailto:address@hidden>
all:: all.epilogue
all.epilogue all.prologue:: ; @echo $@; sleep 2; echo address@hidden <mailto:address@hidden> all.serial:: ; @echo address@hidden <mailto:address@hidden>; sleep 1; echo address@hidden <mailto:address@hidden> all.serial:: ; @echo address@hidden <mailto:address@hidden>; sleep 1; echo address@hidden <mailto:address@hidden>
all.parallel: aaa bbb ccc
aaa bbb ccc: ; @echo $@; sleep 1; echo address@hidden <mailto:address@hidden>

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support

reply via email to

[Prev in Thread] Current Thread [Next in Thread]