Hi there,
continuing my make adventure, I've stumbled across the following
inconsistency. I would even call it a bug.
In any event, could someone point me to a place in the make(1) man page
where it says that the S and C modifiers dereference variables given in
both the pattern and replacement, while the N and M modifiers insist on
being fed literal strings? I couldn't find it. Thanks! :)
--
If you cc me or take the list(s) out completely I'll most likely
ignore your message.
NAME= foo.c
RE= ^.+\.c$
GLOB= *.c
SUBST= SUBST
FILES= foo.a foo.b foo.c
.BEGIN:
@echo '$${FILES} -> ${FILES}'
@echo '$${NAME} -> ${NAME}'
@echo '$${RE} -> ${RE}'
@echo '$${SUBST} -> ${SUBST}'
@echo '$${GLOB} -> ${GLOB}'
all: works broken
works:
@echo ${.TARGET}:
@echo '$${FILES:S/$${NAME}/$${SUBST}/} -> ${FILES:S/${NAME}/${SUBST}/}'
@echo '$${FILES:C/$${RE}/$${SUBST}/} -> ${FILES:C/${RE}/${SUBST}/}'
broken:
@echo ${.TARGET}:
@echo '$${FILES:M$${GLOB}} -> ${FILES:M${GLOB}}'
@echo '$${FILES:N$${GLOB}} -> ${FILES:N${GLOB}}'