Module Name: src Committed By: rillig Date: Tue Dec 22 19:38:44 UTC 2020
Modified Files: src/usr.bin/make/unit-tests: depsrc.exp depsrc.mk Log Message: make(1): add test for undefined variable in dependency declaration To generate a diff of this commit: cvs rdiff -u -r1.1 -r1.2 src/usr.bin/make/unit-tests/depsrc.exp cvs rdiff -u -r1.3 -r1.4 src/usr.bin/make/unit-tests/depsrc.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/usr.bin/make/unit-tests/depsrc.exp diff -u src/usr.bin/make/unit-tests/depsrc.exp:1.1 src/usr.bin/make/unit-tests/depsrc.exp:1.2 --- src/usr.bin/make/unit-tests/depsrc.exp:1.1 Sun Aug 16 12:07:51 2020 +++ src/usr.bin/make/unit-tests/depsrc.exp Tue Dec 22 19:38:44 2020 @@ -1 +1,4 @@ +: 'Undefined variables are expanded directly in the dependency' +: 'declaration. They are not preserved and maybe expanded later.' +: 'This is in contrast to local variables such as ${.TARGET}.' exit status 0 Index: src/usr.bin/make/unit-tests/depsrc.mk diff -u src/usr.bin/make/unit-tests/depsrc.mk:1.3 src/usr.bin/make/unit-tests/depsrc.mk:1.4 --- src/usr.bin/make/unit-tests/depsrc.mk:1.3 Sun Nov 15 20:20:58 2020 +++ src/usr.bin/make/unit-tests/depsrc.mk Tue Dec 22 19:38:44 2020 @@ -1,4 +1,4 @@ -# $NetBSD: depsrc.mk,v 1.3 2020/11/15 20:20:58 rillig Exp $ +# $NetBSD: depsrc.mk,v 1.4 2020/12/22 19:38:44 rillig Exp $ # # Tests for special sources (those starting with a dot, followed by # uppercase letters) in dependency declarations, such as .PHONY. @@ -7,5 +7,20 @@ # TODO: Test 'target: ${:U.SILENT}' +# Demonstrate when exactly undefined variables are expanded in a dependency +# declaration. +target: .PHONY source-${DEFINED_LATER} +# +DEFINED_LATER= later +# +source-: .PHONY + : 'Undefined variables are expanded directly in the dependency' + : 'declaration. They are not preserved and maybe expanded later.' + : 'This is in contrast to local variables such as $${.TARGET}.' +source-later: .PHONY + : 'Undefined variables are tried to be expanded in a dependency' + : 'declaration. If that fails because the variable is undefined,' + : 'the expression is preserved and tried to be expanded later.' + all: @:;