xref: /freebsd/contrib/bmake/unit-tests/dep.mk (revision 148ee84570001f46b7b667c86573d378101c3801)
1*148ee845SSimon J. Gerraty# $NetBSD: dep.mk,v 1.4 2023/06/01 07:27:30 rillig Exp $
22c3632d1SSimon J. Gerraty#
32c3632d1SSimon J. Gerraty# Tests for dependency declarations, such as "target: sources".
42c3632d1SSimon J. Gerraty
59f45a3c8SSimon J. Gerraty.MAIN: all
69f45a3c8SSimon J. Gerraty
79f45a3c8SSimon J. Gerraty# As soon as a target is defined using one of the dependency operators, it is
89f45a3c8SSimon J. Gerraty# restricted to this dependency operator and cannot use the others anymore.
99f45a3c8SSimon J. Gerratyonly-colon:
109f45a3c8SSimon J. Gerraty# expect+1: Inconsistent operator for only-colon
119f45a3c8SSimon J. Gerratyonly-colon!
129f45a3c8SSimon J. Gerraty# expect+1: Inconsistent operator for only-colon
139f45a3c8SSimon J. Gerratyonly-colon::
149f45a3c8SSimon J. Gerraty# Ensure that the target still has the original operator.  If it hadn't, there
159f45a3c8SSimon J. Gerraty# would be another error message.
169f45a3c8SSimon J. Gerratyonly-colon:
172c3632d1SSimon J. Gerraty
18*148ee845SSimon J. Gerraty
19*148ee845SSimon J. Gerraty# Before parse.c 1.158 from 2009-10-07, the parser broke dependency lines at
20*148ee845SSimon J. Gerraty# the first ';', without parsing expressions as such.  It interpreted the
21*148ee845SSimon J. Gerraty# first ';' as the separator between the dependency and its commands, and the
22*148ee845SSimon J. Gerraty# '^' as a shell command.
23*148ee845SSimon J. Gerratyall: for-subst
24*148ee845SSimon J. Gerraty.for file in ${.PARSEFILE}
25*148ee845SSimon J. Gerratyfor-subst:	  ${file:S;^;./;g}
26*148ee845SSimon J. Gerraty	@echo ".for with :S;... OK"
27*148ee845SSimon J. Gerraty.endfor
28*148ee845SSimon J. Gerraty
29*148ee845SSimon J. Gerraty
302c3632d1SSimon J. Gerratyall:
31