Handle multiple parameters for $(wildcard)
diff --git a/func.go b/func.go
index ca445b6..a9330f5 100644
--- a/func.go
+++ b/func.go
@@ -201,12 +201,15 @@
func funcWildcard(ev *Evaluator, args []string) string {
args = arity("wildcard", 1, args)
- pattern := ev.evalExpr(args[0])
- files, err := filepath.Glob(pattern)
- if err != nil {
- panic(err)
+ var result []string
+ for _, pattern := range splitSpaces(ev.evalExpr(args[0])) {
+ files, err := filepath.Glob(pattern)
+ if err != nil {
+ panic(err)
+ }
+ result = append(result, files...)
}
- return strings.Join(files, " ")
+ return strings.Join(result, " ")
}
// https://www.gnu.org/software/make/manual/html_node/File-Name-Functions.html#File-Name-Functions
diff --git a/testcase/wildcard_multi.mk b/testcase/wildcard_multi.mk
new file mode 100644
index 0000000..9054ca3
--- /dev/null
+++ b/testcase/wildcard_multi.mk
@@ -0,0 +1,7 @@
+files = $(wildcard P* M*)
+
+test1:
+ touch PASS
+
+test2:
+ echo $(files)