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.
29 lines
696 B
Makefile
29 lines
696 B
Makefile
# $NetBSD: varmod-exclam-shell.mk,v 1.2 2020/08/16 12:48:55 rillig Exp $
|
|
#
|
|
# Tests for the :!cmd! variable modifier.
|
|
|
|
.if ${:!echo hello | tr 'l' 'l'!} != "hello"
|
|
.warning unexpected
|
|
.endif
|
|
|
|
# The output is truncated at the first null byte.
|
|
# Cmd_Exec returns only a string pointer without length information.
|
|
.if ${:!echo hello | tr 'l' '\0'!} != "he"
|
|
.warning unexpected
|
|
.endif
|
|
|
|
.if ${:!echo!} != ""
|
|
.warning A newline at the end of the output must be stripped.
|
|
.endif
|
|
|
|
.if ${:!echo;echo!} != " "
|
|
.warning Only a single newline at the end of the output is stripped.
|
|
.endif
|
|
|
|
.if ${:!echo;echo;echo;echo!} != " "
|
|
.warning Other newlines in the output are converted to spaces.
|
|
.endif
|
|
|
|
all:
|
|
@:;
|