freebsd-skq/contrib/bmake/unit-tests/varname-dot-path.mk
Simon J. Gerraty 956e45f6fb Update to bmake-20201101
Lots of new unit-tests increase code coverage.

Lots of refactoring, cleanup and simlpification to reduce
code size.

Fixes for Bug 223564 and 245807

Updates to dirdeps.mk and meta2deps.py
2020-11-07 21:46:27 +00:00

57 lines
1.5 KiB
Makefile

# $NetBSD: varname-dot-path.mk,v 1.3 2020/10/02 18:46:54 rillig Exp $
#
# Tests for the special .PATH variable, which TODO: describe the purpose.
_!= mkdir -p varname-dot-path.d
# By default, .PATH consists of "." and .CURDIR.
# XXX: Why both? Shouldn't they have the same effect?
.if ${.PATH} != ". ${.CURDIR}"
. error ${.PATH}
.endif
# The special target .PATH adds a directory to the path.
.PATH: /
.if ${.PATH} != ". ${.CURDIR} /"
. error ${.PATH}
.endif
# Only existing directories are added to the path, the others are ignored.
.PATH: /nonexistent
.if ${.PATH} != ". ${.CURDIR} /"
. error ${.PATH}
.endif
# Only directories are added to the path, not regular files.
.PATH: ${.PARSEDIR}/${.PARSEFILE}
.if ${.PATH} != ". ${.CURDIR} /"
. error ${.PATH}
.endif
# Relative directories can be added as well.
# Each directory is only added once to the path.
.PATH: varname-dot-path.d /
.if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d"
. error ${.PATH}
.endif
# The pathnames are not normalized before being added to the path.
.PATH: ./.
.if ${.PATH} != ". ${.CURDIR} / varname-dot-path.d ./."
. error ${.PATH}
.endif
# The two default entries can be placed at the back of the path,
# by adding the special entry ".DOTLAST" somewhere in the path.
# The entry .DOTLAST, if any, is listed in the path, always at the
# very beginning, to make this magic less surprising.
.PATH: .DOTLAST
.if ${.PATH} != ".DOTLAST / varname-dot-path.d ./. . ${.CURDIR}"
. error ${.PATH}
.endif
_!= rmdir varname-dot-path.d
all:
@:;