gox は Vagrant はじめ数々の HashiCorp プロダクトでおなじみの Mitchell Hashimoto さんによる、Go のクロスコンパイルを簡単に行うためのコマンドラインツールです。
gox でビルドを実行すると、デフォルトではファイル名に OS 名や CPU アーキテクチャ名が含まれるものになってしまいます。
$ gox
Number of parallel builds: 4
--> darwin/386: github.com/yuya-takeyama/gox-test
--> darwin/amd64: github.com/yuya-takeyama/gox-test
--> linux/386: github.com/yuya-takeyama/gox-test
--> linux/amd64: github.com/yuya-takeyama/gox-test
--> linux/arm: github.com/yuya-takeyama/gox-test
--> freebsd/386: github.com/yuya-takeyama/gox-test
--> freebsd/amd64: github.com/yuya-takeyama/gox-test
--> openbsd/386: github.com/yuya-takeyama/gox-test
--> openbsd/amd64: github.com/yuya-takeyama/gox-test
--> windows/386: github.com/yuya-takeyama/gox-test
--> windows/amd64: github.com/yuya-takeyama/gox-test
--> freebsd/arm: github.com/yuya-takeyama/gox-test
--> netbsd/386: github.com/yuya-takeyama/gox-test
--> netbsd/amd64: github.com/yuya-takeyama/gox-test
--> netbsd/arm: github.com/yuya-takeyama/gox-test
--> plan9/386: github.com/yuya-takeyama/gox-test
$ tree
.
├── gox-test_darwin_386
├── gox-test_darwin_amd64
├── gox-test_freebsd_386
├── gox-test_freebsd_amd64
├── gox-test_freebsd_arm
├── gox-test_linux_386
├── gox-test_linux_amd64
├── gox-test_linux_arm
├── gox-test_netbsd_386
├── gox-test_netbsd_amd64
├── gox-test_netbsd_arm
├── gox-test_openbsd_386
├── gox-test_openbsd_amd64
├── gox-test_plan9_386
├── gox-test_windows_386.exe
├── gox-test_windows_amd64.exe
└── main.go
0 directories, 17 files
gox には -output
オプションがあり、ここに text/template
形式のフォーマットで出力先を指定できます。
gox -output "pkg/{{.OS}}_{{.Arch}}/{{.Dir}}"
Number of parallel builds: 4
--> darwin/386: github.com/yuya-takeyama/gox-test
--> darwin/amd64: github.com/yuya-takeyama/gox-test
--> linux/386: github.com/yuya-takeyama/gox-test
--> linux/amd64: github.com/yuya-takeyama/gox-test
--> linux/arm: github.com/yuya-takeyama/gox-test
--> freebsd/386: github.com/yuya-takeyama/gox-test
--> freebsd/amd64: github.com/yuya-takeyama/gox-test
--> openbsd/386: github.com/yuya-takeyama/gox-test
--> openbsd/amd64: github.com/yuya-takeyama/gox-test
--> windows/386: github.com/yuya-takeyama/gox-test
--> windows/amd64: github.com/yuya-takeyama/gox-test
--> freebsd/arm: github.com/yuya-takeyama/gox-test
--> netbsd/386: github.com/yuya-takeyama/gox-test
--> netbsd/amd64: github.com/yuya-takeyama/gox-test
--> netbsd/arm: github.com/yuya-takeyama/gox-test
--> plan9/386: github.com/yuya-takeyama/gox-test
$ tree
.
├── main.go
└── pkg
├── darwin_386
│ └── gox-test
├── darwin_amd64
│ └── gox-test
├── freebsd_386
│ └── gox-test
├── freebsd_amd64
│ └── gox-test
├── freebsd_arm
│ └── gox-test
├── linux_386
│ └── gox-test
├── linux_amd64
│ └── gox-test
├── linux_arm
│ └── gox-test
├── netbsd_386
│ └── gox-test
├── netbsd_amd64
│ └── gox-test
├── netbsd_arm
│ └── gox-test
├── openbsd_386
│ └── gox-test
├── openbsd_amd64
│ └── gox-test
├── plan9_386
│ └── gox-test
├── windows_386
│ └── gox-test.exe
└── windows_amd64
└── gox-test.exe
17 directories, 17 files