| # Copyright 2003 Dave Abrahams |
| # Copyright 2006 Rene Rivera |
| # Distributed under the Boost Software License, Version 1.0. |
| # (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| |
| # Demonstration that module variables have the right effect in actions. |
| |
| |
| # Top-level rule that causes a target to be built by invoking the specified |
| # action. |
| rule make ( target : sources * : act ) |
| { |
| DEPENDS all : $(target) ; |
| DEPENDS $(target) : $(sources) ; |
| $(act) $(target) : $(sources) ; |
| } |
| |
| |
| X1 = X1-global ; |
| X2 = X2-global ; |
| X3 = X3-global ; |
| |
| module A |
| { |
| X1 = X1-A ; |
| |
| rule act ( target ) |
| { |
| NOTFILE $(target) ; |
| ALWAYS $(target) ; |
| } |
| |
| actions act { echo A.act $(<): $(X1) $(X2) $(X3) } |
| |
| make t1 : : A.act ; |
| make t2 : : A.act ; |
| make t3 : : A.act ; |
| } |
| |
| module B |
| { |
| X2 = X2-B ; |
| |
| actions act { echo B.act $(<): $(X1) $(X2) $(X3) } |
| |
| make t1 : : B.act ; |
| make t2 : : B.act ; |
| make t3 : : B.act ; |
| } |
| |
| actions act { echo act $(<): $(X1) $(X2) $(X3) } |
| |
| make t1 : : act ; |
| make t2 : : act ; |
| make t3 : : act ; |
| |
| X1 on t1 = X1-t1 ; |
| X2 on t2 = X2-t2 ; |
| X3 on t3 = X3-t3 ; |
| |
| DEPENDS all : t1 t2 t3 ; |