# tsoding/nob.h

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/tsoding-nob-h).**

2,615 stars · 165 forks · C · other

## Links

- GitHub: https://github.com/tsoding/nob.h
- awesome-repositories: https://awesome-repositories.com/repository/tsoding-nob-h.md

## Description

nob.h is a build system automation tool for C projects that allows build scripts and execution logic to be defined directly in the C programming language. It provides a way to manage custom compiler orchestration and the sequence of shell commands required to transform source code into binaries.

The project is implemented as a header-only library, allowing build tooling to be integrated without a separate compilation step. It supports multi-stage build workflows, enabling the execution of configuration steps and the generation of intermediate files before final compilation.

The system handles process-based task execution by interfacing with operating system APIs to manage file system operations and spawn external system processes.

## Tags

### Development Tools & Productivity

- [C-Based Build Scripts](https://awesome-repositories.com/f/development-tools-productivity/c-based-build-scripts.md) — Provides a way to define build scripts and execution logic directly in the C programming language.
- [Build Automation Systems](https://awesome-repositories.com/f/development-tools-productivity/build-automation-systems.md) — Automates the compilation and packaging of C projects without requiring external makefiles.
- [Toolchain Orchestration](https://awesome-repositories.com/f/development-tools-productivity/build-tooling/build-orchestration-logic/build-orchestration-configuration/build-automation-systems/build-systems/compilation-flags/compiler-flag-customization/toolchain-orchestration.md) — Allows for precise definition of compiler flags and the sequence of shell commands needed to transform source into binaries.
- [Header-Only Libraries](https://awesome-repositories.com/f/development-tools-productivity/header-only-libraries.md) — Implemented as a single header file containing all declarations and definitions to simplify integration.

### Operating Systems & Systems Programming

- [Process and Task Orchestration](https://awesome-repositories.com/f/operating-systems-systems-programming/system-administration-maintenance/system-administration-utilities/system-utilities/process-and-task-orchestration.md) — Spawns external system processes to run shell commands and compiler toolchains.
- [System Call Interfacing](https://awesome-repositories.com/f/operating-systems-systems-programming/system-call-interfacing.md) — Interfaces directly with operating system APIs to handle file system operations and process management.

### Programming Languages & Runtimes

- [Build Configuration Passes](https://awesome-repositories.com/f/programming-languages-runtimes/multi-pass-compiler-pipelines/build-configuration-passes.md) — Supports running scripts in distinct stages to generate configuration and intermediate files before final compilation.

### DevOps & Infrastructure

- [Multi-Stage Workflow Automations](https://awesome-repositories.com/f/devops-infrastructure/multi-stage-workflow-automations.md) — Enables chaining configuration and intermediate script generation as sequential steps before the main build. ([source](https://github.com/tsoding/nob.h/tree/main/how_to/010_nob_two_stage))
