Awesome
build-them-all
Bin util to build go programs to multiple targets
Install
Pick an msi package here!
chocolatey
choco install build-them-all -y
deb/ubuntu/rpm repositories
wget -O - https://raw.githubusercontent.com/mh-cbon/latest/master/source.sh \
| GH=mh-cbon/build-them-all sh -xe
# or
curl -L https://raw.githubusercontent.com/mh-cbon/latest/master/source.sh \
| GH=mh-cbon/build-them-all sh -xe
deb/ubuntu/rpm packages
curl -L https://raw.githubusercontent.com/mh-cbon/latest/master/install.sh \
| GH=mh-cbon/build-them-all sh -xe
# or
wget -q -O - --no-check-certificate \
https://raw.githubusercontent.com/mh-cbon/latest/master/install.sh \
| GH=mh-cbon/build-them-all sh -xe
go
mkdir -p $GOPATH/src/github.com/mh-cbon
cd $GOPATH/src/github.com/mh-cbon
git clone https://github.com/mh-cbon/build-them-all.git
cd build-them-all
glide install
go install
Usage
NAME:
build-them-all - Command line to build go programs to multiple targets
USAGE:
build-them-all <cmd> <options>
VERSION:
0.0.1
COMMANDS:
clean Clean up directories
build Build the binaries
GLOBAL OPTIONS:
--help, -h show help
--version, -v print the version
clean
NAME:
build-them-all clean - Clean up directories
USAGE:
build-them-all clean [command options] [arguments...]
OPTIONS:
--dir value, -d value Directoires to clean (default: "build/")
EXAMPLES:
build-them-all clean -d build/ -d some/
build
NAME:
build-them-all build - Build the binaries
USAGE:
build-them-all build [command options] [arguments...]
OPTIONS:
--os value OS selector (default: "major")
--arch value Arch selector (default: "major")
--output value, -o value Output pattern
--gobin value Go bin path (default: "go")
--dir value, -d value Directoires to clean (default: "build/")
--wd value Working directory
-i Installs the packages that are dependencies of the target
-a Force rebuilding of packages that are already up-to-date
-n Print the commands but do not run them
-p value The number of programs that can be run in parallel
-v Print the names of packages as they are compiled
-x Print the commands
--work Print the name of the temporary work directory and do not delete it when exiting.
--race Enable data race detection
--msan Enable interoperation with memory sanitizer
--asmflags value Arguments to pass on each go tool asm invocation
--buildmode value Build mode to use. See 'go help buildmode' for more
--compiler value Name of compiler to use, as in runtime.Compiler (gccgo or gc)
--gccgoflags value Arguments to pass on each gccgo compiler/linker invocation
--gcflags value Arguments to pass on each go tool compile invocation
--installsuffix value A suffix to use in the name of the package installation directory
--ldflags value Arguments to pass on each go tool link invocation
--linkshared value Link against shared libraries previously created with -buildmode=shared
--pkgdir value Install and load all packages from dir instead of the usual locations
--tags value A list of build tags to consider satisfied during the build
--toolexec value A program to use to invoke toolchain programs like vet and asm
EXAMPLES:
build-them-all build main.go -o "build/&pkg-&os-&arch" --ldflags "-X main.VERSION=0.0.1"
build-them-all build main.go -o "build/&pkg-&os-&arch" --ldflags "-X main.VERSION=0.0.1" --arch "amd64"
build-them-all build main.go -o "build/&pkg-&os-&arch" --ldflags "-X main.VERSION=0.0.1" --os "windows"