1 # $NetBSD: varmod-path.mk,v 1.4 2023/05/10 15:53:32 rillig Exp $ 2 # 3 # Tests for the :P variable modifier, which looks up the path for a given 4 # target. 5 # 6 # The phony target does not have a corresponding path, therefore ... oops, 7 # as of 2020-08-23 it is nevertheless resolved to a path. This is probably 8 # unintended. 9 # 10 # In this test, the real target is located in a subdirectory, and its full 11 # path is returned. If it had been in the current directory, the difference 12 # between its path and its name would not be visible. 13 # 14 # The enoent target does not exist, therefore the plain name of the target 15 # is returned. 16 17 .MAIN: all 18 19 _!= rm -rf varmod-path.subdir 20 _!= mkdir varmod-path.subdir 21 _!= > varmod-path.subdir/varmod-path.phony 22 _!= > varmod-path.subdir/varmod-path.real 23 24 # To have an effect, this .PATH declaration must be processed after the 25 # directory has been created. 26 .PATH: varmod-path.subdir 27 28 varmod-path.phony: .PHONY 29 varmod-path.real: 30 31 all: varmod-path.phony varmod-path.real 32 @echo ${varmod-path.phony:P} 33 @echo ${varmod-path.real:P} 34 @echo ${varmod-path.enoent:P} 35 36 .END: 37 @rm -rf varmod-path.subdir 38