make(1): add test for the special .PATH target and variable
This commit is contained in:
parent
311d5aead3
commit
e2e28fa7a8
@ -1,8 +1,56 @@
|
||||
# $NetBSD: varname-dot-path.mk,v 1.2 2020/08/16 14:25:16 rillig Exp $
|
||||
# $NetBSD: varname-dot-path.mk,v 1.3 2020/10/02 18:46:54 rillig Exp $
|
||||
#
|
||||
# Tests for the special .PATH variable.
|
||||
# Tests for the special .PATH variable, which TODO: describe the purpose.
|
||||
|
||||
# TODO: Implementation
|
||||
_!= 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:
|
||||
@:;
|
||||
|
Loading…
Reference in New Issue
Block a user