axiom-developer
[Top][All Lists]
Advanced

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

Re: [Axiom-developer] Building Axiom twice


From: Waldek Hebisch
Subject: Re: [Axiom-developer] Building Axiom twice
Date: Thu, 23 Nov 2006 18:04:01 +0100 (CET)

Gabriel Dos Reis wrote:
> Let me clarify this.  Assume you say "make -j 4".  Make creates a
> jobserver and spawn sub-makes.  The sub-makes communicate with the
> master make to ensure that at any given that, there are at most 4
> sub-make processes running.  And that count does not include the
> target firing recursive makes.  Furthermore, there is no
> synchronisation in that loop that suggest that the directories will be
> made sequentially. As a consequence, the sub-makes ae firex almost
> simultaneously (the difference being the time it takes to initiate a
> sub-make). 
> 
> That is how you see make fails in src/graph long before src/boot
> completed. 
>

Gaby, you are writing here about src/Makefile.  AFAICS src/Makefile
does not use the recursive loop (it just sits unused at the end
of the Makefile).  Concering make logic: my understanding is that
commands for single taget are executed as a shell script (make can
play some tricks here, but this should not affect the result).  In
particular, if you write a shell loop the loop executes sequentially.
The main makefile has such loop and uses it.
 
> | I would put this in a diffent way: you have two rules which invoke
> | make of main target in src subdirectory.  The first is the recursive
> | rule, the second one is via src stamp.  Currently the second rule
> | can only fire after the first run has finished.  But if you allow
> | both rules to run in parallel then you will get a mess in src.
> 
> Not if the dependencies are set up correctly.  
> 

The main Makefile is essentially as follows:

all : all-recursive

all-ax: src/stamp

src/stamp:
        cd src && make

all-recursive:
        cd src && make all
        make all-ax

I do not see how you can set up dependencies to correct the above
Makefile (assuming that in src "make all" and "make" give the
same effect).

Now, if you prefer stamps, you can use then, but then drop all-recursive
part.
 
-- 
                              Waldek Hebisch
address@hidden 






reply via email to

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