1 1.20 rillig # $NetBSD: varmod-order.mk,v 1.20 2025/06/28 22:39:29 rillig Exp $ 2 1.1 rillig # 3 1.6 rillig # Tests for the :O variable modifier and its variants, which either sort the 4 1.6 rillig # words of the value or shuffle them. 5 1.1 rillig 6 1.7 rillig WORDS= one two three four five six seven eight nine ten 7 1.7 rillig NUMBERS= 8 5 4 9 1 7 6 10 3 2 # in English alphabetical order 8 1.3 rillig 9 1.7 rillig .if ${WORDS:O} != "eight five four nine one seven six ten three two" 10 1.7 rillig . error ${WORDS:O} 11 1.3 rillig .endif 12 1.1 rillig 13 1.19 rillig # expect+1: Unknown modifier ":OX" 14 1.7 rillig _:= ${WORDS:OX} 15 1.4 rillig 16 1.19 rillig # expect+1: Unknown modifier ":OxXX" 17 1.7 rillig _:= ${WORDS:OxXX} 18 1.4 rillig 19 1.20 rillig # expect+1: Unclosed expression, expecting "}" for modifier "O" 20 1.7 rillig _:= ${WORDS:O 21 1.20 rillig # expect+1: Unclosed expression, expecting "}" for modifier "On" 22 1.6 rillig _:= ${NUMBERS:On 23 1.20 rillig # expect+1: Unclosed expression, expecting "}" for modifier "Onr" 24 1.6 rillig _:= ${NUMBERS:Onr 25 1.6 rillig 26 1.6 rillig # Shuffling numerically doesn't make sense, so don't allow 'x' and 'n' to be 27 1.6 rillig # combined. 28 1.6 rillig # 29 1.19 rillig # expect+1: Unknown modifier ":Oxn" 30 1.6 rillig .if ${NUMBERS:Oxn} 31 1.6 rillig . error 32 1.6 rillig .else 33 1.6 rillig . error 34 1.6 rillig .endif 35 1.6 rillig 36 1.6 rillig # Extra characters after ':On' are detected and diagnosed. 37 1.6 rillig # 38 1.19 rillig # expect+1: Unknown modifier ":On_typo" 39 1.6 rillig .if ${NUMBERS:On_typo} 40 1.6 rillig . error 41 1.6 rillig .else 42 1.6 rillig . error 43 1.6 rillig .endif 44 1.6 rillig 45 1.6 rillig # Extra characters after ':Onr' are detected and diagnosed. 46 1.6 rillig # 47 1.19 rillig # expect+1: Unknown modifier ":Onr_typo" 48 1.6 rillig .if ${NUMBERS:Onr_typo} 49 1.6 rillig . error 50 1.6 rillig .else 51 1.6 rillig . error 52 1.6 rillig .endif 53 1.6 rillig 54 1.6 rillig # Extra characters after ':Orn' are detected and diagnosed. 55 1.6 rillig # 56 1.19 rillig # expect+1: Unknown modifier ":Orn_typo" 57 1.6 rillig .if ${NUMBERS:Orn_typo} 58 1.6 rillig . error 59 1.6 rillig .else 60 1.6 rillig . error 61 1.6 rillig .endif 62 1.6 rillig 63 1.6 rillig # Repeating the 'n' is not supported. In the typical use cases, the sorting 64 1.6 rillig # criteria are fixed, not computed, therefore allowing this redundancy does 65 1.6 rillig # not make sense. 66 1.6 rillig # 67 1.19 rillig # expect+1: Unknown modifier ":Onn" 68 1.6 rillig .if ${NUMBERS:Onn} 69 1.6 rillig . error 70 1.6 rillig .else 71 1.6 rillig . error 72 1.6 rillig .endif 73 1.6 rillig 74 1.6 rillig # Repeating the 'r' is not supported as well, for the same reasons as above. 75 1.6 rillig # 76 1.19 rillig # expect+1: Unknown modifier ":Onrr" 77 1.6 rillig .if ${NUMBERS:Onrr} 78 1.6 rillig . error 79 1.6 rillig .else 80 1.6 rillig . error 81 1.6 rillig .endif 82 1.6 rillig 83 1.6 rillig # Repeating the 'r' is not supported as well, for the same reasons as above. 84 1.6 rillig # 85 1.19 rillig # expect+1: Unknown modifier ":Orrn" 86 1.6 rillig .if ${NUMBERS:Orrn} 87 1.6 rillig . error 88 1.6 rillig .else 89 1.6 rillig . error 90 1.6 rillig .endif 91 1.6 rillig 92 1.9 rillig 93 1.10 rillig # If a modifier that starts with ':O' is not one of the known sort or shuffle 94 1.19 rillig # forms, fall back to the SysV modifier. 95 1.10 rillig SWITCH= On 96 1.10 rillig .if ${SWITCH:On=Off} != "Off" 97 1.9 rillig . error 98 1.9 rillig .endif 99 1.9 rillig 100 1.1 rillig all: 101