summaryrefslogtreecommitdiff
path: root/src/cmd/dist/buildgo.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/dist/buildgo.c')
-rw-r--r--src/cmd/dist/buildgo.c49
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);
+}