[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.
http://lists.gnu.org/archive/html/bug-make/2001-09/msg00013.html
http://lists.gnu.org/archive/html/bug-make/2004-09/msg00001.html
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