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()
 }