xref: /freebsd/contrib/bmake/unit-tests/dep-duplicate.mk (revision 8d5c8e21c690b35d0a9a604d6b886fba222cd2fe)
1# $NetBSD: dep-duplicate.mk,v 1.4 2024/05/25 21:11:30 rillig Exp $
2#
3# Test for a target whose commands are defined twice.  This generates a
4# warning, not an error, so ensure that the correct commands are kept.
5#
6# Also ensure that the diagnostics mention the correct file in case of
7# included files.  Since parse.c 1.231 from 2018-12-22 and before parse.c
8# 1.653 from 2022-01-20, the wrong filename had been printed if the file of
9# the first commands section was included by its relative path.
10
11all: .PHONY
12	@exec > dep-duplicate.main; \
13	echo '# empty line 1'; \
14	echo '# empty line 2'; \
15	echo 'all:; @echo main-output'; \
16	echo '.include "dep-duplicate.tmp"'
17
18	@exec > dep-duplicate.tmp; \
19	echo 'all:; @echo inc-output'
20
21	# The main file must be specified using a relative path, just like the
22	# default 'makefile' or 'Makefile', to produce the same result when
23	# run via ATF or 'make test'.
24	@${MAKE} -r -f dep-duplicate.main
25
26	@rm -f dep-duplicate.main
27	@rm -f dep-duplicate.tmp
28