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.
24 lines
618 B
Makefile
24 lines
618 B
Makefile
# $NetBSD: varname-dot-newline.mk,v 1.3 2020/08/19 05:51:18 rillig Exp $
|
|
#
|
|
# Tests for the special .newline variable.
|
|
#
|
|
# Contrary to the special variable named "" that is used in expressions like
|
|
# ${:Usome-value}, the variable ".newline" is not protected against
|
|
# modification. Nobody exploits that though.
|
|
|
|
NEWLINE:= ${.newline}
|
|
|
|
.newline= overwritten
|
|
|
|
.if ${.newline} == ${NEWLINE}
|
|
.info The .newline variable cannot be overwritten. Good.
|
|
.else
|
|
.info The .newline variable can be overwritten. Just don't do that.
|
|
.endif
|
|
|
|
# Restore the original value.
|
|
.newline= ${NEWLINE}
|
|
|
|
all:
|
|
@echo 'first${.newline}second'
|