Implement $(MAKECMDGOALS)
diff --git a/main.go b/main.go
index 8c406a7..47d9587 100644
--- a/main.go
+++ b/main.go
@@ -20,7 +20,7 @@
flag.Parse()
}
-func getBootstrapMakefile() Makefile {
+func getBootstrapMakefile(targets []string) Makefile {
bootstrap := `
CC:=cc
CXX:=g++
@@ -38,6 +38,7 @@
$(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
# TODO: Add more builtin rules.
`
+ bootstrap = fmt.Sprintf("%s\nMAKECMDGOALS:=%s\n", bootstrap, strings.Join(targets, " "))
mk, err := ParseMakefileString(bootstrap, "*bootstrap*", 0)
if err != nil {
panic(err)
@@ -47,8 +48,9 @@
func main() {
parseFlags()
+ targets := flag.Args()
- bmk := getBootstrapMakefile()
+ bmk := getBootstrapMakefile(targets)
var mk Makefile
var err error
@@ -89,7 +91,7 @@
vars.Assign(k, v)
}
- err = Exec(er, flag.Args(), vars)
+ err = Exec(er, targets, vars)
if err != nil {
panic(err)
}
diff --git a/testcase/flavor.mk b/testcase/flavor.mk
index dc5cdd3..2bbafc9 100644
--- a/testcase/flavor.mk
+++ b/testcase/flavor.mk
@@ -6,4 +6,8 @@
D?=d
all:
- echo $(flavor A) $(flavor B) $(flavor C) $(flavor D) $(flavor E) $(flavor PATH)
+ echo $(flavor A) $(flavor B) $(flavor C) $(flavor D) $(flavor E)
+ echo $(flavor PATH)
+
+# For some reason, $(flavor MAKECMDGOALS) should be "undefined"
+# echo $(flavor MAKECMDGOALS)
diff --git a/testcase/makecmdgoals.mk b/testcase/makecmdgoals.mk
new file mode 100644
index 0000000..bd6ceb1
--- /dev/null
+++ b/testcase/makecmdgoals.mk
@@ -0,0 +1,2 @@
+test:
+ echo $(MAKECMDGOALS)