summaryrefslogtreecommitdiff
path: root/src/cmd/dist/buildgo.c
blob: 41208fac5f734d3e3078d868a77a5c88d11fbdcc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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",
		defaultcctarget, defaultcxxtarget);

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