1 1.3 rillig # $NetBSD: varname-vpath.mk,v 1.3 2020/11/10 00:19:19 rillig Exp $ 2 1.1 rillig # 3 1.3 rillig # Tests for the special VPATH variable, which is an obsolete way of 4 1.3 rillig # specifying a colon-separated search path. This search path is not active 5 1.3 rillig # when the makefiles are read, but only later when the shell commands are run. 6 1.3 rillig # 7 1.3 rillig # Instead of the VPATH, better use the -I option or the special target .PATH. 8 1.3 rillig 9 1.3 rillig .if !defined(TEST_MAIN) 10 1.3 rillig 11 1.3 rillig all: .SILENT 12 1.3 rillig rm -rf varname-vpath.dir 13 1.3 rillig mkdir varname-vpath.dir 14 1.3 rillig touch varname-vpath.dir/file-in-subdirectory 15 1.3 rillig rm -rf varname-vpath.dir2 16 1.3 rillig mkdir varname-vpath.dir2 17 1.3 rillig touch varname-vpath.dir2/file2-in-subdirectory 18 1.3 rillig 19 1.3 rillig TEST_MAIN=yes VPATH=varname-vpath.dir:varname-vpath.dir2 \ 20 1.3 rillig ${MAKE} -f ${MAKEFILE} -dc 21 1.1 rillig 22 1.3 rillig rm -r varname-vpath.dir 23 1.3 rillig rm -r varname-vpath.dir2 24 1.3 rillig 25 1.3 rillig .else 26 1.3 rillig 27 1.3 rillig # The VPATH variable does not take effect at parse time. 28 1.3 rillig # It is evaluated only once, between reading the makefiles and making the 29 1.3 rillig # targets. Therefore it could also be an ordinary variable, it doesn't need 30 1.3 rillig # to be an environment variable or a command line variable. 31 1.3 rillig . if exists(file-in-subdirectory) 32 1.3 rillig . error 33 1.3 rillig . endif 34 1.3 rillig . if exists(file2-in-subdirectory) 35 1.3 rillig . error 36 1.3 rillig . endif 37 1.1 rillig 38 1.1 rillig all: 39 1.3 rillig : ${exists(file-in-subdirectory):L:?yes 1:no 1} 40 1.3 rillig : ${exists(file2-in-subdirectory):L:?yes 2:no 2} 41 1.3 rillig 42 1.3 rillig .endif 43