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