Home | History | Annotate | Line # | Download | only in unit-tests
      1 # $NetBSD: varname-dot-makeflags.mk,v 1.11 2025/05/20 17:56:40 sjg Exp $
      2 #
      3 # Tests for the special .MAKEFLAGS variable, which collects almost all
      4 # command line arguments and passes them on to any child processes via
      5 # the environment variable MAKEFLAGS (without leading '.').
      6 #
      7 # See also:
      8 #	varname-dot-makeoverrides.mk
      9 
     10 # expect+1: MAKEFLAGS=<undefined>
     11 .info MAKEFLAGS=<${MAKEFLAGS:Uundefined}>
     12 # expect+1: .MAKEFLAGS=< -r -k>
     13 .info .MAKEFLAGS=<${.MAKEFLAGS}>
     14 # expect+1: .MAKEOVERRIDES=<>
     15 .info .MAKEOVERRIDES=<${.MAKEOVERRIDES:Uundefined}>
     16 
     17 # Append an option with argument, a plain option and a variable assignment.
     18 .MAKEFLAGS: -DVARNAME -r VAR=value
     19 
     20 # expect+1: MAKEFLAGS=<undefined>
     21 .info MAKEFLAGS=<${MAKEFLAGS:Uundefined}>
     22 # expect+1: .MAKEFLAGS=< -r -k -D VARNAME -r>
     23 .info .MAKEFLAGS=<${.MAKEFLAGS}>
     24 # expect+1: .MAKEOVERRIDES=< VAR>
     25 .info .MAKEOVERRIDES=<${.MAKEOVERRIDES}>
     26 
     27 # The environment variable 'MAKEFLAGS' is not available to child processes
     28 # when parsing the makefiles.  This is different from exported variables,
     29 # which are already available during parse time.
     30 .if ${:!echo "\${MAKEFLAGS-undef}"!} != "undef"
     31 .  error
     32 .endif
     33 
     34 # After parsing, the environment variable 'MAKEFLAGS' is set based on the
     35 # special variables '.MAKEFLAGS' and '.MAKEOVERRIDES'.
     36 runtime:
     37 	@echo '$@: MAKEFLAGS=<'${MAKEFLAGS:Q}'>'
     38 	@echo '$@: .MAKEFLAGS=<'${.MAKEFLAGS:Q}'>'
     39 	@echo '$@: .MAKEOVERRIDES=<'${.MAKEOVERRIDES:Q}'>'
     40