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.
31 lines
630 B
Makefile
31 lines
630 B
Makefile
# $NetBSD: modmatch.mk,v 1.8 2020/08/16 20:03:53 rillig Exp $
|
|
#
|
|
# Tests for the :M and :S modifiers.
|
|
|
|
X=a b c d e
|
|
|
|
.for x in $X
|
|
LIB${x:tu}=/tmp/lib$x.a
|
|
.endfor
|
|
|
|
X_LIBS= ${LIBA} ${LIBD} ${LIBE}
|
|
|
|
LIB?=a
|
|
|
|
var = head
|
|
res = no
|
|
.if !empty(var:M${:Uhead\:tail:C/:.*//})
|
|
res = OK
|
|
.endif
|
|
|
|
all: show-libs
|
|
|
|
show-libs:
|
|
@for x in $X; do ${.MAKE} -f ${MAKEFILE} show LIB=$$x; done
|
|
@echo "Mscanner=${res}"
|
|
|
|
show:
|
|
@echo 'LIB=${LIB} X_LIBS:M$${LIB$${LIB:tu}} is "${X_LIBS:M${LIB${LIB:tu}}}"'
|
|
@echo 'LIB=${LIB} X_LIBS:M*/lib$${LIB}.a is "${X_LIBS:M*/lib${LIB}.a}"'
|
|
@echo 'LIB=${LIB} X_LIBS:M*/lib$${LIB}.a:tu is "${X_LIBS:M*/lib${LIB}.a:tu}"'
|