diff options
Diffstat (limited to 'src/cmd/dist/buildgo.c')
-rw-r--r-- | src/cmd/dist/buildgo.c | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/src/cmd/dist/buildgo.c b/src/cmd/dist/buildgo.c new file mode 100644 index 000000000..a340252bc --- /dev/null +++ b/src/cmd/dist/buildgo.c @@ -0,0 +1,49 @@ +// Copyright 2012 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +#include "a.h" + +/* + * Helpers for building cmd/go and cmd/cgo. + */ + +// mkzdefaultcc writes zdefaultcc.go: +// +// package main +// const defaultCC = <defaultcc> +// const defaultCXX = <defaultcxx> +// +// It is invoked to write cmd/go/zdefaultcc.go +// but we also write cmd/cgo/zdefaultcc.go. +void +mkzdefaultcc(char *dir, char *file) +{ + Buf b, out; + + USED(dir); + + binit(&out); + bprintf(&out, + "// auto generated by go tool dist\n" + "\n" + "package main\n" + "\n" + "const defaultCC = `%s`\n" + "const defaultCXX = `%s`\n", + defaultcc, defaultcxx); + + writefile(&out, file, 0); + + // Convert file name to replace. + binit(&b); + bwritestr(&b, file); + if(slash[0] == '/') + bsubst(&b, "/go/zdefaultcc.go", "/cgo/zdefaultcc.go"); + else + bsubst(&b, "\\go\\zdefaultcc.go", "\\cgo\\zdefaultcc.go"); + writefile(&out, bstr(&b), 0); + + bfree(&b); + bfree(&out); +} |