1 # $NetBSD: suff.mk,v 1.3 2025/01/14 21:39:25 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) 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