1 1.18 rillig # $NetBSD: vardebug.mk,v 1.18 2025/03/29 19:08:52 rillig Exp $ 2 1.1 rillig # 3 1.1 rillig # Demonstrates the debugging output for var.c. 4 1.1 rillig 5 1.4 rillig .MAKEFLAGS: -dv FROM_CMDLINE= 6 1.1 rillig 7 1.9 rillig # expect: Global: VAR = added 8 1.1 rillig VAR= added # VarAdd 9 1.9 rillig # expect: Global: VAR = overwritten 10 1.1 rillig VAR= overwritten # Var_Set 11 1.9 rillig # expect: Global: delete VAR 12 1.9 rillig .undef VAR 13 1.9 rillig # expect: Global: ignoring delete 'VAR' as it is not found 14 1.9 rillig .undef VAR 15 1.1 rillig 16 1.1 rillig # The variable with the empty name cannot be set at all. 17 1.9 rillig # expect: Global: ignoring ' = empty name' as the variable name '${:U}' expands to empty 18 1.1 rillig ${:U}= empty name # Var_Set 19 1.9 rillig # expect: Global: ignoring ' += empty name' as the variable name '${:U}' expands to empty 20 1.1 rillig ${:U}+= empty name # Var_Append 21 1.1 rillig 22 1.1 rillig FROM_CMDLINE= overwritten # Var_Set (ignored) 23 1.1 rillig 24 1.9 rillig # expect: Global: VAR = 1 25 1.1 rillig VAR= 1 26 1.9 rillig # expect: Global: VAR = 1 2 27 1.1 rillig VAR+= 2 28 1.9 rillig # expect: Global: VAR = 1 2 3 29 1.1 rillig VAR+= 3 30 1.1 rillig 31 1.9 rillig # expect: Pattern for ':M' is "[2]" 32 1.9 rillig # expect: Result of ${VAR:M[2]} is "2" 33 1.6 rillig .if ${VAR:M[2]} # ModifyWord_Match 34 1.1 rillig .endif 35 1.9 rillig # expect: Pattern for ':N' is "[2]" 36 1.9 rillig # expect: Result of ${VAR:N[2]} is "1 3" 37 1.9 rillig .if ${VAR:N[2]} # ModifyWord_NoMatch 38 1.1 rillig .endif 39 1.1 rillig 40 1.6 rillig .if ${VAR:S,2,two,} # ParseModifierPart 41 1.1 rillig .endif 42 1.1 rillig 43 1.9 rillig # expect: Result of ${VAR:Q} is "1\ 2\ 3" 44 1.1 rillig .if ${VAR:Q} # VarQuote 45 1.1 rillig .endif 46 1.1 rillig 47 1.1 rillig .if ${VAR:tu:tl:Q} # ApplyModifiers 48 1.1 rillig .endif 49 1.1 rillig 50 1.2 rillig # ApplyModifiers, "Got ..." 51 1.16 rillig # expect: Result of ${:Mvalu[e]} is "value" (eval, defined) 52 1.2 rillig .if ${:Uvalue:${:UM*e}:Mvalu[e]} 53 1.2 rillig .endif 54 1.2 rillig 55 1.9 rillig # expect: Global: delete VAR 56 1.1 rillig .undef ${:UVAR} # Var_Delete 57 1.1 rillig 58 1.18 rillig # expect+1: Unknown modifier ":unknown" 59 1.3 rillig .if ${:Uvariable:unknown} 60 1.3 rillig .endif 61 1.3 rillig 62 1.16 rillig # expect+1: Variable "UNDEFINED" is undefined 63 1.3 rillig .if ${UNDEFINED} 64 1.3 rillig .endif 65 1.3 rillig 66 1.5 rillig # By default, .SHELL is not defined and thus can be set. As soon as it is 67 1.7 rillig # accessed, it is initialized in the command line scope (during VarFind), 68 1.5 rillig # where it is set to read-only. Assigning to it is ignored. 69 1.9 rillig # expect: Command: ignoring '.SHELL = overwritten' as it is read-only 70 1.5 rillig .MAKEFLAGS: .SHELL=overwritten 71 1.5 rillig 72 1.16 rillig DYN = ${:U$@} $@ ${@} 73 1.16 rillig # expect: Global: DYN = $(.TARGET) $(.TARGET) ${@} 74 1.16 rillig DYN := ${DYN} 75 1.16 rillig 76 1.4 rillig .MAKEFLAGS: -d0 77