跳转至

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.json is the default filename; use multiple configs for libraries, tools, and tests, and commit them alongside the source for review.

    Configuration

  • Dependency-based incremental builds


    Every compile unit records its -MMD dependencies: touch a header and only the affected source files are rebuilt; missing object files or dependency files are rebuilt automatically.

    Incremental Build

  • 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.

    Commands & Exit Codes

  • Visual analysis reports


    Set report: true or run antel analyze to generate a self-contained report.html: artifacts, incremental status, compile arguments, symbol tables, header dependencies, size distribution, dynamic dependencies, and a log listing — open it directly in your browser.

    Command Reference

  • Versioned shared libraries


    version / soname / rpath: produces libX.so.<version> with symlinks; consumers link against the SONAME and load via the $ORIGIN rpath.

    Configuration

  • Sanitizers and coverage


    sanitize: ["address"] / coverage: true inject ASan and gcov instrumentation with a single flag; run your program and a coverage report is at hand.

    Configuration

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