1 1.8 rillig # $NetBSD: depsrc-usebefore.mk,v 1.8 2022/04/18 14:38:24 rillig Exp $ 2 1.1 rillig # 3 1.3 rillig # Tests for the special source .USEBEFORE in dependency declarations, 4 1.3 rillig # which allows to prepend common commands to other targets. 5 1.6 rillig # 6 1.8 rillig # If a target depends on several .USE or .USEBEFORE targets, the commands get 7 1.8 rillig # appended in declaration order. For .USE targets, this is the expected 8 1.8 rillig # order, for .USEBEFORE targets the order is somewhat reversed. 9 1.8 rillig # 10 1.6 rillig # See also: 11 1.6 rillig # .USE 12 1.6 rillig # depsrc-use.mk 13 1.1 rillig 14 1.7 rillig # Before make.h 1.280 from 2021-12-28, a .USEBEFORE target was accidentally 15 1.7 rillig # regarded as a candidate for the main target. On the other hand, a .USE 16 1.7 rillig # target was not. 17 1.7 rillig not-a-main-candidate: .USEBEFORE 18 1.7 rillig 19 1.8 rillig all: 20 1.8 rillig @${MAKE} -r -f ${MAKEFILE} ordering 21 1.8 rillig @${MAKE} -r -f ${MAKEFILE} directly 22 1.8 rillig 23 1.8 rillig ordering: before-1 before-2 after-1 after-2 24 1.8 rillig 25 1.8 rillig before-1: .USEBEFORE before-1-before-1 before-1-before-2 before-1-after-1 before-1-after-2 26 1.8 rillig @echo before-1 1 27 1.8 rillig @echo before-1 2 28 1.8 rillig 29 1.8 rillig before-1-before-1: .USEBEFORE 30 1.8 rillig @echo before-1-before-1 1 31 1.8 rillig @echo before-1-before-1 2 32 1.8 rillig 33 1.8 rillig before-1-before-2: .USEBEFORE 34 1.8 rillig @echo before-1-before-2 1 35 1.8 rillig @echo before-1-before-2 2 36 1.8 rillig 37 1.8 rillig before-1-after-1: .USE 38 1.8 rillig @echo before-1-after-1 1 39 1.8 rillig @echo before-1-after-1 2 40 1.8 rillig 41 1.8 rillig before-1-after-2: .USE 42 1.8 rillig @echo before-1-after-2 1 43 1.8 rillig @echo before-1-after-2 2 44 1.8 rillig 45 1.8 rillig before-2: .USEBEFORE before-2-before-1 before-2-before-2 before-2-after-1 before-2-after-2 46 1.8 rillig @echo before-2 1 47 1.8 rillig @echo before-2 2 48 1.8 rillig 49 1.8 rillig before-2-before-1: .USEBEFORE 50 1.8 rillig @echo before-2-before-1 1 51 1.8 rillig @echo before-2-before-1 2 52 1.8 rillig 53 1.8 rillig before-2-before-2: .USEBEFORE 54 1.8 rillig @echo before-2-before-2 1 55 1.8 rillig @echo before-2-before-2 2 56 1.8 rillig 57 1.8 rillig before-2-after-1: .USE 58 1.8 rillig @echo before-2-after-1 1 59 1.8 rillig @echo before-2-after-1 2 60 1.8 rillig 61 1.8 rillig before-2-after-2: .USE 62 1.8 rillig @echo before-2-after-2 1 63 1.8 rillig @echo before-2-after-2 2 64 1.8 rillig 65 1.8 rillig after-1: .USE after-1-before-1 after-1-before-2 after-1-after-1 after-1-after-2 66 1.8 rillig @echo after-1 1 67 1.8 rillig @echo after-1 2 68 1.8 rillig 69 1.8 rillig after-1-before-1: .USEBEFORE 70 1.8 rillig @echo after-1-before-1 1 71 1.8 rillig @echo after-1-before-1 2 72 1.8 rillig 73 1.8 rillig after-1-before-2: .USEBEFORE 74 1.8 rillig @echo after-1-before-2 1 75 1.8 rillig @echo after-1-before-2 2 76 1.8 rillig 77 1.8 rillig after-1-after-1: .USE 78 1.8 rillig @echo after-1-after-1 1 79 1.8 rillig @echo after-1-after-1 2 80 1.8 rillig 81 1.8 rillig after-1-after-2: .USE 82 1.8 rillig @echo after-1-after-2 1 83 1.8 rillig @echo after-1-after-2 2 84 1.8 rillig 85 1.8 rillig after-2: .USE after-2-before-1 after-2-before-2 after-2-after-1 after-2-after-2 86 1.8 rillig @echo after-2 1 87 1.8 rillig @echo after-2 2 88 1.8 rillig 89 1.8 rillig after-2-before-1: .USEBEFORE 90 1.8 rillig @echo after-2-before-1 1 91 1.8 rillig @echo after-2-before-1 2 92 1.8 rillig 93 1.8 rillig after-2-before-2: .USEBEFORE 94 1.8 rillig @echo after-2-before-2 1 95 1.8 rillig @echo after-2-before-2 2 96 1.8 rillig 97 1.8 rillig after-2-after-1: .USE 98 1.8 rillig @echo after-2-after-1 1 99 1.8 rillig @echo after-2-after-1 2 100 1.8 rillig 101 1.8 rillig after-2-after-2: .USE 102 1.8 rillig @echo after-2-after-2 1 103 1.8 rillig @echo after-2-after-2 2 104 1.3 rillig 105 1.5 rillig # It is possible but uncommon to have a .USEBEFORE target with no commands. 106 1.4 rillig # This may happen as the result of expanding a .for loop. 107 1.3 rillig empty: .USEBEFORE 108 1.3 rillig 109 1.8 rillig # It is technically possible to directly make a .USEBEFORE target, but it 110 1.8 rillig # doesn't make sense since GNode_IsOODate considers such a target to always be 111 1.8 rillig # up to date. 112 1.3 rillig directly: .USEBEFORE 113 1.3 rillig @echo directly 114