Home | History | Annotate | Line # | Download | only in unit-tests
varcmd.mk revision 1.3
      1 # $Id: varcmd.mk,v 1.3 2017/12/08 03:36:42 sjg Exp $
      2 #
      3 # Test behaviour of recursive make and vars set on command line.
      4 
      5 FU=fu
      6 FOO?=foo
      7 .if !empty(.TARGETS)
      8 TAG=${.TARGETS}
      9 .endif
     10 TAG?=default
     11 
     12 all:	one
     13 
     14 show:
     15 	@echo "${TAG} FU=<v>${FU}</v> FOO=<v>${FOO}</v> VAR=<v>${VAR}</v>"
     16 
     17 one:	show
     18 	@${.MAKE} -f ${MAKEFILE} FU=bar FOO+=goo two
     19 
     20 two:	show
     21 	@${.MAKE} -f ${MAKEFILE} three
     22 
     23 three:	show
     24 	@${.MAKE} -f ${MAKEFILE} four
     25 
     26 
     27 .ifmake two
     28 # this should not work
     29 FU+= oops
     30 FOO+= oops
     31 _FU:= ${FU}
     32 _FOO:= ${FOO}
     33 two: immutable
     34 immutable:
     35 	@echo "$@ FU='${_FU}'"
     36 	@echo "$@ FOO='${_FOO}'"
     37 .endif
     38 .ifmake four
     39 VAR=Internal
     40 .MAKEOVERRIDES+= VAR
     41 .endif
     42 
     43 four:	show
     44 	@${.MAKE} -f ${MAKEFILE} five
     45 
     46 M = x
     47 V.y = is y
     48 V.x = is x
     49 V := ${V.$M}
     50 K := ${V}
     51 
     52 show-v:
     53 	@echo '${TAG} v=${V} k=${K}'
     54 
     55 five:	show show-v
     56 	@${.MAKE} -f ${MAKEFILE} M=y six
     57 
     58 six:	show-v
     59 	@${.MAKE} -f ${MAKEFILE} V=override show-v
     60 
     61