Antelope¶
A small, nimble C/C++ compile-and-link tool. Describe build targets in one or more JSON configs and produce static libraries, shared libraries, or executables — without hand-maintaining build scripts.
-
Configuration as the build script
Each JSON config describes a build target.
antel.jsonis the default filename; use multiple configs for libraries, tools, and tests, and commit them alongside the source for review. -
Dependency-based incremental builds
Every compile unit records its
-MMDdependencies: touch a header and only the affected source files are rebuilt; missing object files or dependency files are rebuilt automatically. -
Aggregated diagnostics
Parallel build output is captured per compile unit: successes are reduced to a warning count, failures are replayed in full, grouped by file with counts — no more drowning in interleaved output.
-
Visual analysis reports
Set
report: trueor runantel analyzeto generate a self-containedreport.html: artifacts, incremental status, compile arguments, symbol tables, header dependencies, size distribution, dynamic dependencies, and a log listing — open it directly in your browser. -
Versioned shared libraries
version/soname/rpath: produceslibX.so.<version>with symlinks; consumers link against the SONAME and load via the$ORIGINrpath. -
Sanitizers and coverage
sanitize: ["address"]/coverage: trueinject ASan and gcov instrumentation with a single flag; run your program and a coverage report is at hand.
Four commands to get started¶
python3 antelope_install.py # installs the antel command
antel init # interactively generates antel.json
antel rebuild # full build
antel run # runs the built executable
Artifacts¶
| Target type | Artifact | Description |
|---|---|---|
static |
lib<project-name>.a |
Static library, stripped automatically after the build |
shared |
lib<project-name>.so |
Shared library, linked via the compiler driver |
exe |
<project-name> |
Executable, run directly with antel run |
Compilers supported are gxx (gcc/g++), llvm (clang), and msvc (cl); linking of shared libraries and executables is currently implemented only for the gxx and llvm paths, see Compiler Support.
Where to start¶
| What you want to do | Read this page |
|---|---|
| Get a minimal project up and running | Quick Start |
| Understand every field of antel.json | Configuration |
| See complete projects configured and running | Examples |
| Browse verified upstream project builds | Success Cases |
| Look up command flags and exit codes | Commands |
| Understand when a rebuild happens | Incremental Build |
| Switch compilers or target types | Compiler Support |
| Run tests, package, and release | Development |