Implement $(info) and $(error)
diff --git a/eval.go b/eval.go
index 397682a..6693885 100644
--- a/eval.go
+++ b/eval.go
@@ -39,7 +39,9 @@
"shell": funcShell,
"call": funcCall,
"flavor": funcFlavor,
+ "info": funcInfo,
"warning": funcWarning,
+ "error": funcError,
},
}
}
diff --git a/func.go b/func.go
index 7bb94aa..65cd353 100644
--- a/func.go
+++ b/func.go
@@ -154,9 +154,23 @@
}
// http://www.gnu.org/software/make/manual/make.html#Make-Control-Functions
+func funcInfo(ev *Evaluator, args []string) string {
+ Log("warning %q", args)
+ arg := ev.evalExpr(strings.Join(args, ","))
+ fmt.Printf("%s\n", arg)
+ return ""
+}
+
func funcWarning(ev *Evaluator, args []string) string {
Log("warning %q", args)
arg := ev.evalExpr(strings.Join(args, ","))
fmt.Printf("%s:%d: %s\n", ev.filename, ev.lineno, arg)
return ""
}
+
+func funcError(ev *Evaluator, args []string) string {
+ Log("warning %q", args)
+ arg := ev.evalExpr(strings.Join(args, ","))
+ Error(ev.filename, ev.lineno, "*** %s.", arg)
+ return ""
+}
diff --git a/test/err_error.mk b/test/err_error.mk
new file mode 100644
index 0000000..a19babc
--- /dev/null
+++ b/test/err_error.mk
@@ -0,0 +1,4 @@
+
+$(error foo)
+
+test:
diff --git a/test/info.mk b/test/info.mk
new file mode 100644
index 0000000..8a7c138
--- /dev/null
+++ b/test/info.mk
@@ -0,0 +1,2 @@
+test:
+ echo $(info "%s:%s" foo bar)