1 1.5 rillig # $NetBSD: cond-op-not.mk,v 1.5 2020/11/15 14:14:24 rillig Exp $ 2 1.1 rillig # 3 1.5 rillig # Tests for the ! operator in .if conditions, which negates its argument. 4 1.1 rillig 5 1.3 rillig # The exclamation mark negates its operand. 6 1.3 rillig .if !1 7 1.4 rillig . error 8 1.3 rillig .endif 9 1.3 rillig 10 1.3 rillig # Exclamation marks can be chained. 11 1.3 rillig # This doesn't happen in practice though. 12 1.3 rillig .if !!!1 13 1.4 rillig . error 14 1.3 rillig .endif 15 1.3 rillig 16 1.3 rillig # The ! binds more tightly than the &&. 17 1.3 rillig .if !!0 && 1 18 1.4 rillig . error 19 1.3 rillig .endif 20 1.1 rillig 21 1.5 rillig # The '==' binds more tightly than '!'. 22 1.5 rillig .if !${:Uexpression} == "expression" 23 1.5 rillig . error 24 1.5 rillig .endif 25 1.5 rillig 26 1.5 rillig .if !${:U} 27 1.5 rillig . info Not empty evaluates to true. 28 1.5 rillig .else 29 1.5 rillig . info Not empty evaluates to false. 30 1.5 rillig .endif 31 1.5 rillig 32 1.5 rillig .if !${:U } 33 1.5 rillig . info Not space evaluates to true. 34 1.5 rillig .else 35 1.5 rillig . info Not space evaluates to false. 36 1.5 rillig .endif 37 1.5 rillig 38 1.5 rillig .if !${:U0} 39 1.5 rillig . info Not 0 evaluates to true. 40 1.5 rillig .else 41 1.5 rillig . info Not 0 evaluates to false. 42 1.5 rillig .endif 43 1.5 rillig 44 1.5 rillig .if !${:U1} 45 1.5 rillig . info Not 1 evaluates to true. 46 1.5 rillig .else 47 1.5 rillig . info Not 1 evaluates to false. 48 1.5 rillig .endif 49 1.5 rillig 50 1.5 rillig .if !${:Uword} 51 1.5 rillig . info Not word evaluates to true. 52 1.5 rillig .else 53 1.5 rillig . info Not word evaluates to false. 54 1.5 rillig .endif 55 1.5 rillig 56 1.1 rillig all: 57 1.1 rillig @:; 58