57 lines
1.5 KiB
Makefile
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:
|
|
@:;
|