Home | History | Annotate | Line # | Download | only in unit-tests
varcmd.mk revision 1.2
      1 # $Id: varcmd.mk,v 1.2 2017/11/18 22:34:04 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 _FU:= ${FU}
     31 two: immutable
     32 immutable:
     33 	@echo "$@ FU='${_FU}'"
     34 .endif
     35 .ifmake four
     36 VAR=Internal
     37 .MAKEOVERRIDES+= VAR
     38 .endif
     39 
     40 four:	show
     41 	@${.MAKE} -f ${MAKEFILE} five
     42 
     43 M = x
     44 V.y = is y
     45 V.x = is x
     46 V := ${V.$M}
     47 K := ${V}
     48 
     49 show-v:
     50 	@echo '${TAG} v=${V} k=${K}'
     51 
     52 five:	show show-v
     53 	@${.MAKE} -f ${MAKEFILE} M=y six
     54 
     55 six:	show-v
     56 	@${.MAKE} -f ${MAKEFILE} V=override show-v
     57 
     58