Now that we have go-1.4 and (almost) go-1.5, we should start thinking about a go-build-system. I just wrote my first package using Go, the crude Syncthing package that is attached. It still needs a lot of work, especially since it builds Syncthing's dependencies from bundled copies instead of external packages. But, it does illustrate some of the assumptions that Go makes when building. It seems that Go is very particular about directory structures; it would be better if we could avoid these contortions by setting some environment variables. Should Go packages refer to the compiler? This Syncthing package does retain a reference. I hope to get some replies from some people who have been building Go software for longer than 1 day ;) This is the guide that I used to create this package: https://docs.syncthing.net/dev/building.html