Move bootstrap Makefile to main.go
diff --git a/main.go b/main.go
index 35d8928..d958890 100644
--- a/main.go
+++ b/main.go
@@ -1,8 +1,6 @@
package main
-import (
- "flag"
-)
+import "flag"
var noKatiLogFlag bool
var makefileFlag string
@@ -17,10 +15,35 @@
flag.Parse()
}
+func getBootstrapMakefile() Makefile {
+ bootstrap := `
+CC:=cc
+CXX:=g++
+MAKE:=kati
+# Pretend to be GNU make 3.81, for compatibility.
+MAKE_VERSION:=3.81
+# TODO: Add more builtin vars.
+
+# http://www.gnu.org/software/make/manual/make.html#Catalogue-of-Rules
+# The document above is actually not correct. See default.c:
+# http://git.savannah.gnu.org/cgit/make.git/tree/default.c?id=4.1
+.c.o:
+ $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
+.cc.o:
+ $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
+# TODO: Add more builtin rules.
+`
+ mk, err := ParseMakefileString(bootstrap, "*bootstrap*")
+ if err != nil {
+ panic(err)
+ }
+ return mk
+}
+
func main() {
parseFlags()
- bmk := GetBootstrapMakefile()
+ bmk := getBootstrapMakefile()
var mk Makefile
var err error
diff --git a/parser.go b/parser.go
index 13da4df..9e914d5 100644
--- a/parser.go
+++ b/parser.go
@@ -449,29 +449,8 @@
return Makefile{}, errors.New("no targets specified and no makefile found.")
}
-func GetBootstrapMakefile() Makefile {
- bootstrap := `
-CC:=cc
-CXX:=g++
-MAKE:=kati
-# Pretend to be GNU make 3.81, for compatibility.
-MAKE_VERSION:=3.81
-# TODO: Add more builtin vars.
-
-# http://www.gnu.org/software/make/manual/make.html#Catalogue-of-Rules
-# The document above is actually not correct. See default.c:
-# http://git.savannah.gnu.org/cgit/make.git/tree/default.c?id=4.1
-.c.o:
- $(CC) $(CFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
-.cc.o:
- $(CXX) $(CXXFLAGS) $(CPPFLAGS) $(TARGET_ARCH) -c -o $@ $<
-# TODO: Add more builtin rules.
-`
- rd := strings.NewReader(bootstrap)
- parser := newParser(rd, "*bootstrap*")
- mk, err := parser.parse()
- if err != nil {
- panic(err)
- }
- return mk
+func ParseMakefileString(s string, name string) (Makefile, error) {
+ rd := strings.NewReader(s)
+ parser := newParser(rd, name)
+ return parser.parse()
}