# mitchellh/gox

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/mitchellh-gox).**

4,580 stars · 349 forks · Go · MPL-2.0 · archived

## Links

- GitHub: https://github.com/mitchellh/gox
- awesome-repositories: https://awesome-repositories.com/repository/mitchellh-gox.md

## Description

Gox is a cross-platform build automator and command line tool designed for Go cross-compilation. It serves as a toolchain manager that builds and configures the necessary compilation tools and flags required to target diverse hardware platforms.

The system automates the setup, installation, and provisioning of the assemblers and linkers needed for different operating systems and architectures. It manages the generation of executable binaries for multiple platforms in parallel, utilizing custom naming templates and linker flags to prepare software releases.

The tool provides capabilities for target platform filtering using inclusive and exclusive patterns and allows for build setting overrides via environment variables. It also supports the discovery of available operating system and architecture combinations.

## Tags

### Development Tools & Productivity

- [Cross-Platform Build Systems](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-build-systems.md) — Automates the compilation and packaging of Go software for multiple target operating systems.
- [Go Release Tools](https://awesome-repositories.com/f/development-tools-productivity/build-release-automation/go-release-tools.md) — Specialized command line tool for automating the parallel compilation and distribution of Go binaries.
- [Go Source Compilations](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/binary-compilation-toolchains/server-binary-compilers/go-source-compilations.md) — Builds Go binaries for multiple operating systems and architectures from a single host machine.
- [Cross-Compilation Toolchains](https://awesome-repositories.com/f/development-tools-productivity/cross-compilation-toolchains.md) — Manages external compiler toolchains to produce native binaries for target platforms different from the host.
- [Binary Toolchain Provisioning](https://awesome-repositories.com/f/development-tools-productivity/toolchain-configuration-automations/binary-toolchain-provisioning.md) — Automates the setup and installation of the assemblers and linkers needed for diverse target platforms.
- [Binary Naming Customization](https://awesome-repositories.com/f/development-tools-productivity/binary-naming-customization.md) — Generates executable filenames by substituting platform variables into predefined naming patterns.
- [Compiler Flag Customization](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/compilation-flags/compiler-flag-customization.md) — Applies custom linker, compiler, and assembler flags, as well as build tags, during the compilation process. ([source](https://github.com/mitchellh/gox/blob/master/go.go))
- [Build Task Parallelism](https://awesome-repositories.com/f/development-tools-productivity/concurrent-task-execution/build-task-parallelism.md) — Triggers multiple compilation processes simultaneously to speed up the generation of binaries for several platforms.
- [Cross-Platform Build Targets](https://awesome-repositories.com/f/development-tools-productivity/cross-platform-build-targets.md) — Allows users to specify and narrow the build set by targeting specific operating systems and architectures. ([source](https://github.com/mitchellh/gox/blob/master/platform_flag.go))

### Programming Languages & Runtimes

- [Compiler Toolchain Management](https://awesome-repositories.com/f/programming-languages-runtimes/compiler-toolchain-management.md) — Configures and manages the necessary compilation toolchains to enable Go cross-compilation.
- [Cross-Platform Binary Generation](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/multi-target-compilers/cross-platform-binary-generation.md) — Produces native executable binaries for multiple operating systems and architectures in parallel. ([source](https://github.com/mitchellh/gox#readme))
- [Toolchain Managers](https://awesome-repositories.com/f/programming-languages-runtimes/toolchain-managers.md) — Automates the installation and configuration of the compilers and linkers required for Go cross-compilation.

### DevOps & Infrastructure

- [Environment Variable Config Overrides](https://awesome-repositories.com/f/devops-infrastructure/configuration-management/environment-management/environment-variable-management/environment-variable-configurations/configuration-variable-overrides/environment-variable-config-overrides.md) — Allows target-specific build flags to be overridden using mapped environment variables.
- [Cross-Platform Binary Distribution](https://awesome-repositories.com/f/devops-infrastructure/cross-platform-binary-distribution.md) — Generates a complete set of native executables for various platforms to prepare software releases.
- [Pattern-Based Selection](https://awesome-repositories.com/f/devops-infrastructure/dependency-management/environment-scoping-controls/dependency-scoping/package-scope-filtering/dependency-list-filters/platform-filters/pattern-based-selection.md) — Provides inclusive and exclusive string matching to filter which target platforms are included in the build.

### Software Engineering & Architecture

- [Build Configuration Overrides](https://awesome-repositories.com/f/software-engineering-architecture/runtime-configuration-overrides/build-time-overrides/build-configuration-overrides.md) — Enables overriding target configuration values via specifically formatted environment variables. ([source](https://github.com/mitchellh/gox/blob/master/env_override.go))

### Part of an Awesome List

- [Infrastructure Tools](https://awesome-repositories.com/f/awesome-lists/devops/infrastructure-tools.md) — Simplifies cross-compilation for Go projects.
- [Build and Compilation Tools](https://awesome-repositories.com/f/awesome-lists/devtools/build-and-compilation-tools.md) — Tool for simplified cross-compilation.
