NuttX Build System Assistant - A Python tool for managing and building NuttX RTOS projects with ease.
ntxbuild is a wrapper around the many tools available in the NuttX repository. It wraps around utilities such as make, kconfig-tweak, menuconfig and most used bash scripts (such as configure.sh).
Also, it provides different features, such as downloading required toolchains and managing PATH.
This tool provides a command line interface that supports NuttX configuration and building, while also providing a Python API that allows you to script your builds.
- Environment Management: Automatic NuttX workspace detection and configuration
- Python API: ntxbuild is available as a Python package for building NuttX using Python scripts
- Real-time Output: Live build progress with proper ANSI escape sequence handling
- Configuration Management: Kconfig integration for easy system configuration
- Interactive Tools: Support for curses-based tools like menuconfig
- Toolchin Support: Download and use your required toolchain automatically through the CLI
Complete documentation, including usage examples and API reference, see: https://ntxbuild.readthedocs.io
- Python 3.10+
- NuttX source code and applications
- Make and standard build tools required by NuttX RTOS
- CMake supported but optional
Navigate to your NuttX workspace and download latest NuttX and NuttX Apps using ntxbuild.
$ mkdir ~/nuttxspace
$ cd ~/nuttxspace
$ ntxbuild downloadBuild the simulator using the nsh defconfig.
$ ntxbuild start sim nsh
$ ntxbuild build --parallel 8Alternatively, you can automate your builds using a Python script instead of the CLI.
from pathlib import Path
from ntxbuild.build import MakeBuilder
current_dir = Path.cwd()
# Use the Makefile-based builder
builder = MakeBuilder(current_dir, "nuttx", "nuttx-apps")
# Initialize the board/defconfig
setup_result = builder.initialize("sim", "nsh")
# Execute the build with 10 parallel jobs
builder.build(parallel=10)
# You can now clean the environment if needed
builder.distclean()Support for installing some of the most common toolchains is available.
$ ntxbuild toolchain install gcc-arm-none-eabi
Installing toolchain gcc-arm-none-eabi for NuttX v12.12.0
✅ Toolchain gcc-arm-none-eabi installed successfully
Installation directory: /home/user/ntxenv/toolchains
Note: Toolchains are sourced automatically during build.As an user, you can install this tool using pip:
pip install ntxbuildIf you are a developer or simply wants to install from source, you can clone
this repository and install using pip install -e <repo>
git clone <repository-url>
cd ntxbuild
pip install -e .Use the dev configuration to install development tools and docs to install
documentation tools.
pip install -e ".[dev]"pip install -e ".[docs]"Contributions are always welcome but will be subject to review and approval. Basic rules:
- Testing and documentation are mandatory for new features
- Depedencies should be kept to a minimal
- Code linting using pre-commit is mandatory