amake is the ArmorPaint build tool (based on kmake). It orchestrates the entire build pipeline: converting image assets to an optimized internal format, compilingDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/armory3d/armorpaint/llms.txt
Use this file to discover all available pages before exploring further.
.kong shaders to platform-specific bytecode, and generating IDE project files for Visual Studio, Xcode, or Android Studio — or compiling the project directly from the command line.
Components
amake is composed of four main parts that each handle a distinct stage of the build process.aimage.c
Converts common image formats (
.jpg, .png, .hdr) into the custom .k format, which is faster to load at runtime. Also handles converting icon.png into platform-specific icon formats (e.g. .ico on Windows).ashader.c
Converts
.kong shader source files into graphics API-specific formats: HLSL compiled to D3D bytecode (Windows/Direct3D 12), MSL for Metal (macOS/iOS), and SPIRV for Vulkan (Linux).quickjs
An embedded JavaScript engine used to execute the
make.js script. This enables the build system logic to be written in JavaScript without any external runtime dependency.make.js
Handles processing of
project.js files and generating target-specific project files — a Visual Studio solution (.sln), an Xcode project (.xcodeproj), or an Android Studio project.The .k Image Format
Images referenced in the project are converted from PNG, JPG, or HDR into the.k format at build time. The .k format is intentionally simple:
- A small image header containing width, height, and format metadata
- Pixel data compressed with lz4
CLI Usage
All amake commands are run from the project directory (e.g.armorpaint/paint/), referencing the binary in the sibling base/ tree.
The
--embed flag requires a compiler with C23 #embed support. Clang 19 or newer is required for this feature. Earlier versions of Clang will fail to compile the embedded data file header.Pre-Built Binaries
Pre-compiled amake binaries for each supported platform are checked into the repository at:../base/make.
Building amake Itself
If you need to rebuild amake from source (for example, after modifyingaimage.c or ashader.c), navigate to the amake tool source directory and compile it:
base/tools/amake/ and targeting Linux x64. Adjust the destination path for other platforms (e.g. ../bin/windows_x64/amake.exe or ../bin/macos_arm64/amake).