Quick Start¶
Installation¶
The install script builds a wheel and installs it with sudo pip into the system interpreter's executable path, leaving you with the antel command. If you'd rather not touch the system environment, you can also install it in a virtual environment:
Requires Python 3.8 or later. The runtime dependencies hash_calc, alive_progress, prompt_toolkit, and click are resolved automatically by pip.
Initializing the configuration¶
Run this in your project's source directory:
init walks you through a series of prompts asking for the configuration file name, project name, target type, and compiler type, then generates antel.json. The default compile arguments template already includes -fPIC, so it works for shared libraries out of the box.
Filling in antel.json¶
A minimal working configuration looks like this:
{
"projectName": "helloworld",
"target_type": "exe",
"compiler": "gxx",
"source": ["helloworld.c"],
"exclude_source": [],
"include_directories": ["include"],
"compile_args": ["-std=c++17", "-w", "-Os", "-fPIC"],
"link_args": ["-lm"],
"report": false
}
See the Configuration reference for what each field means; source and include_directories are the starting points for incremental builds.
Building and running¶
antel rebuild # full rebuild — use it the first time or to force a rebuild
antel build # build only the parts that changed
antel run # run the built executable (exe targets only)
Build output goes under ./<project-name>_<config-file-name>/; with the configuration above you'll get:
helloworld_antel/
├── helloworld # built target
├── obj/ # object files and dependency files
│ ├── helloworld.o
│ └── helloworld.o.d
└── log/ # compile commands, link scripts, hash baseline, symbol analysis
Next steps¶
- Want to understand "when and why things get rebuilt" → Incremental Build
- Need a static or shared library → Configuration and Compiler Support
- Want third-party libraries or bundled runtime resources →
pkg_config/data_files/gresource/embedin the Configuration reference - Curious what a complete, runnable project looks like → Examples (GTK calculator, resource packaging demo)
- Plan to hook it into CI or scripts → the exit-code conventions in Commands