Module Name: src Committed By: rillig Date: Sun Oct 18 16:33:18 UTC 2020
Modified Files: src/distrib/sets/lists/tests: mi src/usr.bin/make/unit-tests: Makefile Added Files: src/usr.bin/make/unit-tests: suff-main.exp suff-main.mk Log Message: make(1): add test for turning a target into a transformation To generate a diff of this commit: cvs rdiff -u -r1.942 -r1.943 src/distrib/sets/lists/tests/mi cvs rdiff -u -r1.166 -r1.167 src/usr.bin/make/unit-tests/Makefile cvs rdiff -u -r0 -r1.1 src/usr.bin/make/unit-tests/suff-main.exp \ src/usr.bin/make/unit-tests/suff-main.mk Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/distrib/sets/lists/tests/mi diff -u src/distrib/sets/lists/tests/mi:1.942 src/distrib/sets/lists/tests/mi:1.943 --- src/distrib/sets/lists/tests/mi:1.942 Fri Oct 16 07:12:26 2020 +++ src/distrib/sets/lists/tests/mi Sun Oct 18 16:33:18 2020 @@ -1,4 +1,4 @@ -# $NetBSD: mi,v 1.942 2020/10/16 07:12:26 mgorny Exp $ +# $NetBSD: mi,v 1.943 2020/10/18 16:33:18 rillig Exp $ # # Note: don't delete entries from here - mark them as "obsolete" instead. # @@ -4987,6 +4987,8 @@ ./usr/tests/usr.bin/make/unit-tests/shell-ksh.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/shell-sh.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/shell-sh.mk tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/suff-main.exp tests-usr.bin-tests compattestfile,atf +./usr/tests/usr.bin/make/unit-tests/suff-main.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/suff-rebuild.exp tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/suff-rebuild.mk tests-usr.bin-tests compattestfile,atf ./usr/tests/usr.bin/make/unit-tests/suffixes.exp tests-usr.bin-tests compattestfile,atf Index: src/usr.bin/make/unit-tests/Makefile diff -u src/usr.bin/make/unit-tests/Makefile:1.166 src/usr.bin/make/unit-tests/Makefile:1.167 --- src/usr.bin/make/unit-tests/Makefile:1.166 Sat Oct 17 16:53:26 2020 +++ src/usr.bin/make/unit-tests/Makefile Sun Oct 18 16:33:18 2020 @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.166 2020/10/17 16:53:26 rillig Exp $ +# $NetBSD: Makefile,v 1.167 2020/10/18 16:33:18 rillig Exp $ # # Unit tests for make(1) # @@ -250,6 +250,7 @@ TESTS+= shell-custom TESTS+= shell-ksh TESTS+= shell-sh TESTS+= # suffixes # runs into an endless loop (try -dA) +TESTS+= suff-main TESTS+= suff-rebuild TESTS+= sunshcmd TESTS+= sysv Added files: Index: src/usr.bin/make/unit-tests/suff-main.exp diff -u /dev/null src/usr.bin/make/unit-tests/suff-main.exp:1.1 --- /dev/null Sun Oct 18 16:33:18 2020 +++ src/usr.bin/make/unit-tests/suff-main.exp Sun Oct 18 16:33:18 2020 @@ -0,0 +1,2 @@ +: Making next-main +exit status 0 Index: src/usr.bin/make/unit-tests/suff-main.mk diff -u /dev/null src/usr.bin/make/unit-tests/suff-main.mk:1.1 --- /dev/null Sun Oct 18 16:33:18 2020 +++ src/usr.bin/make/unit-tests/suff-main.mk Sun Oct 18 16:33:18 2020 @@ -0,0 +1,22 @@ +# $NetBSD: suff-main.mk,v 1.1 2020/10/18 16:33:18 rillig Exp $ +# +# Demonstrate that an inference rule is considered the main target if its +# suffixes are not known at the point of declaration. + +.1.2: + : Making ${.TARGET} from ${.IMPSRC}. + +# At this point, the target '.1.2' is a normal target. +# Since it is the first target in the first dependency declaration, +# it becomes the main target. + +next-main: + : Making ${.TARGET} + +# At this point, 'next-main' is effectively ignored. + +# Declaring both '.1' and '.2' as suffixes turns the '.1.2' target into an +# inference rule (OP_TRANSFORM). As a side effect, this target is no longer +# a candidate for the main target. Therefore the next target is selected as +# the main target, which in this case is 'next-main'. +.SUFFIXES: .1 .2