Release Archive Naming (Version 1.0)
General Rule
- End-user archives:
<Project>_<version>_<os>_<os-arch> - Developer archives:
<project>_dev_<version>_<target>
Developer archives contain the same files as end-user archives, but they also contain debug symbols and may contain additional files like source code fragments or pre-built libraries. Developer archive names are always entirely lowercase.
<target> has the format <target-arch>-<target-os>[-<target-abi>][-static].
<target-abi> is optional, not all targets have one. It may also encode whether a soft-float or hard-float ABI is being used.
<target> may end with -static which means the binary has been statically linked and has no external library dependencies.
OSes
The list format is <os-arch> (<target-os>).
- Linux (linux)
- macOS (macos)
- Windows (windows)
OS and Target Architectures
The list format is <os-arch> (<target-arch>).
Linux
Common Desktop and Server
- i686 (x86)
- x86_64 (x86_64)
- aarch64 (aarch64)
Common Embedded
- arm (arm with
eabisuffix in<target-abi>) - MIPS-BE (mips with
eabisuffix in<target-abi>) - MIPS-LE (mipsel with
eabisuffix in<target-abi>)
Less Common Desktop and Server
- PPC (powerpc)
- PPC64-BE (powerpc64)
- PPC64-LE (powerpc64le)
Less Common Embedded
- arm-hardfloat (arm with
eabihfsuffix in<target-abi>) - MIPS-BE-hardfloat (mips with
eabihfsuffix in<target-abi>) - MIPS-LE-hardfloat (mipsel with
eabihfsuffix in<target-abi>) - RISC-V32 (riscv32)
- RISC-V64 (riscv64)
- MIPS64-BE (mips64)
- MIPS64-LE (mips64el)
macOS
- Intel (x86_64)
- Apple-Silicon (aarch64)
- Universal (universal)
Windows
- 32-bit (x86)
- 64-bit (x86_64)
- ARM64 (aarch64)
Target ABIs
Linux
- gnu (glibc)
- musl (musl)
- gnueabi (GNU libc with soft-float EABI)
- gnueabihf (GNU libc with hard-float EABI)
- musleabi (musl with soft-float EABI)
- musleabihf (musl with hard-float EABI)
macOS
macOS has no ABI variants, so the target doesn't use any.
Windows
- gnu (MinGW-w64 / GNU toolchain ABI)
- msvc (Microsoft Visual C++ toolchain ABI)