| # -*-perl-*- | |
| $description = "Test the subst and patsubst functions"; | |
| $details = ""; | |
| # Generic patsubst test: test both the function and variable form. | |
| run_make_test(' | |
| foo := a.o b.o c.o | |
| bar := $(foo:.o=.c) | |
| bar2:= $(foo:%.o=%.c) | |
| bar3:= $(patsubst %.c,%.o,x.c.c bar.c) | |
| all:;@echo $(bar); echo $(bar2); echo $(bar3)', | |
| '', | |
| 'a.c b.c c.c | |
| a.c b.c c.c | |
| x.c.o bar.o'); | |
| # Patsubst without '%'--shouldn't match because the whole word has to match | |
| # in patsubst. Based on a bug report by Markus Mauhart <qwe123@chello.at> | |
| run_make_test('all:;@echo $(patsubst Foo,Repl,FooFoo)', '', 'FooFoo'); | |
| # Variable subst where a pattern matches multiple times in a single word. | |
| # Based on a bug report by Markus Mauhart <qwe123@chello.at> | |
| run_make_test(' | |
| A := fooBARfooBARfoo | |
| all:;@echo $(A:fooBARfoo=REPL)', '', 'fooBARREPL'); | |
| 1; | |