diff options
author | Jan Mercl <0xjnml@gmail.com> | 2017-06-29 23:16:00 +0200 |
---|---|---|
committer | Jan Mercl <0xjnml@gmail.com> | 2017-06-29 23:16:00 +0200 |
commit | 8370d1a12ed5bbad6630675316ee3985d8372a7b (patch) | |
tree | 5f36521446dc8fcfd3461ec506634697b5ec67b2 /generator.go | |
parent | 52871d4e6818abcda24a35bc8a79a6c280b80f04 (diff) |
Regenerate bin_linux_*.go using latest CCGO.
modified: generator.go
modified: internal/bin/bin_linux_386.go
modified: internal/bin/bin_linux_amd64.go
Diffstat (limited to 'generator.go')
-rw-r--r-- | generator.go | 55 |
1 files changed, 41 insertions, 14 deletions
diff --git a/generator.go b/generator.go index 2a7c450..adcf212 100644 --- a/generator.go +++ b/generator.go @@ -15,6 +15,7 @@ import ( "io" "io/ioutil" "os" + "os/exec" "path/filepath" "runtime" "sort" @@ -31,15 +32,16 @@ import ( ) var ( - cpp = flag.Bool("cpp", false, "") - dict = xc.Dict - errLimit = flag.Int("errlimit", 10, "") - filter = flag.String("re", "", "") - ndebug = flag.Bool("ndebug", false, "") - noexec = flag.Bool("noexec", false, "") - oLog = flag.Bool("log", false, "") - trace = flag.Bool("trc", false, "") - yydebug = flag.Int("yydebug", 0, "") + cpp = flag.Bool("cpp", false, "") + dict = xc.Dict + errLimit = flag.Int("errlimit", 10, "") + filter = flag.String("re", "", "") + ndebug = flag.Bool("ndebug", false, "") + noexec = flag.Bool("noexec", false, "") + oLog = flag.Bool("log", false, "") + trace = flag.Bool("trc", false, "") + unconvertBin string + yydebug = flag.Int("yydebug", 0, "") ) const ( @@ -63,9 +65,6 @@ import ( "github.com/cznic/crt" ) -var inf = math.Inf(1) - - func ftrace(s string, args ...interface{}) { _, fn, fl, _ := runtime.Caller(1) fmt.Fprintf(os.Stderr, "# %%s:%%d: %%v\n", path.Base(fn), fl, fmt.Sprintf(s, args...)) @@ -122,6 +121,27 @@ func errStr(err error) string { } } +func unconvert(pth string) { + wd, err := os.Getwd() + if err != nil { + log.Fatal(err) + } + + defer func() { + if err := os.Chdir(wd); err != nil { + log.Fatal(err) + } + }() + + if err := os.Chdir(filepath.Dir(pth)); err != nil { + log.Fatal(err) + } + + if out, err := exec.Command(unconvertBin, "-apply").CombinedOutput(); err != nil { + log.Fatalf("unconvert: %s\n%s", err, out) + } +} + func build(predef string, tus [][]string, opts ...cc.Opt) ([]*cc.TranslationUnit, []byte) { ndbg := "" if *ndebug { @@ -236,9 +256,14 @@ func macros(buf io.Writer, ast *cc.TranslationUnit) { } func main() { - const repo = "sqlite.org/sqlite-amalgamation-3180000/" + const repo = "sqlite.org/sqlite-amalgamation-3190300/" log.SetFlags(log.Lshortfile | log.Lmicroseconds) + var err error + if unconvertBin, err = exec.LookPath("unconvert"); err != nil { + log.Fatal("Please install the unconvert tool (go get -u github.com/mdempsky/unconvert)") + } + flag.Parse() pth := findRepo(repo) if pth == "" { @@ -281,7 +306,9 @@ func main() { log.Fatal(err) } - if err := ioutil.WriteFile(fmt.Sprintf("internal/bin/bin_%s_%s.go", runtime.GOOS, runtime.GOARCH), b2, 0664); err != nil { + dst := fmt.Sprintf("internal/bin/bin_%s_%s.go", runtime.GOOS, runtime.GOARCH) + if err := ioutil.WriteFile(dst, b2, 0664); err != nil { log.Fatal(err) } + unconvert(dst) } |