suff.mk revision 1.2 1 # $NetBSD: suff.mk,v 1.2 2025/01/12 23:10:30 rillig Exp $
2 #
3 # Demonstrate suffix rules and dependency resolution.
4
5
6 # Circumvent the file system cache.
7 .if !make(init) && !make(step*)
8 all:
9 @${MAKE} -f ${MAKEFILE} init
10 @${MAKE} -f ${MAKEFILE} step1
11 .endif
12
13
14 .if make(init)
15 init:
16 . if ${.PARSEDIR:tA} != ${.CURDIR:tA}
17 ${:U}!= cd ${MAKEFILE:H} && cp a*.mk ${.CURDIR}
18 . endif
19 .endif
20
21
22 .if make(step1)
23 step1: .PHONY edge-case.to everything
24
25 .MAKEFLAGS: -dsv
26
27 .SUFFIXES: .from .to
28
29 .from.to:
30 : Making ${.TARGET} from ${.ALLSRC}.
31
32 # When making this target, ${.ARCHIVE} is undefined, but there's no warning.
33 # expect: Var_Parse: ${.ARCHIVE}.additional (eval-defined)
34 edge-case.to: ${.PREFIX}${.ARCHIVE}.additional
35
36 edge-case.from edge-case.additional:
37 : Making ${.TARGET} out of nothing.
38
39 everything: .PHONY a*.mk
40 : Making ${.TARGET} from ${.ALLSRC}.
41 .endif
42