2c3632d14f
Lots of code refactoring, simplification and cleanup. Lots of new unit-tests providing much higher code coverage. All courtesy of rillig at netbsd. Other significant changes: o new read-only variable .SHELL which provides the path of the shell used to run scripts (as defined by the .SHELL target). o variable parsing detects more errors. o new debug option -dl: LINT mode, does the equivalent of := for all variable assignments so that file and line number are reported for variable parse errors.
26 lines
554 B
Makefile
Executable File
26 lines
554 B
Makefile
Executable File
# $NetBSD: varname-dot-shell.mk,v 1.2 2020/08/23 09:28:52 rillig Exp $
|
|
#
|
|
# Tests for the special .SHELL variable, which contains the shell used for
|
|
# running the commands.
|
|
#
|
|
# This variable is read-only.
|
|
|
|
ORIG_SHELL:= ${.SHELL}
|
|
|
|
.SHELL= overwritten
|
|
.if ${.SHELL} != ${ORIG_SHELL}
|
|
.error
|
|
.endif
|
|
|
|
# Trying to delete the variable.
|
|
# This has no effect since the variable is not defined in the global context,
|
|
# but in the command-line context.
|
|
.undef .SHELL
|
|
.SHELL= newly overwritten
|
|
.if ${.SHELL} != ${ORIG_SHELL}
|
|
.error
|
|
.endif
|
|
|
|
all:
|
|
@echo ${.SHELL:M*}
|