Tup
Tup is a file-based build system for Linux, macOS, and Windows.
What Tup is
Tup is a file-based build system for Linux, macOS, and Windows. It follows file changes through a dependency graph and runs commands needed to update dependent outputs. Its build algorithms aim to avoid unnecessary work during incremental builds, and it automatically removes old files. Build instructions are written in one or more Tupfiles; Tup has no domain-specific knowledge of a language or project. Configuration files can create variant directories, with configuration linked or copied into each directory. On Linux, an inotify-based monitor can update Tup’s database as files change. Tup can generate compile_commands.json for tools that use the JSON compilation database format. For CI outside a Tup environment, it can generate a shell or Windows batch script, but those generated scripts do not support incremental builds. Tup reports when a build description is not safe for parallel execution. The GPL-v2 plan costs nothing. A commercial license uses case-by-case terms with no listed price. The newest listed release is Tup 0.8, dated 2024-03-31.
Good
- Runs only commands needed for changed dependencies
- Supports Linux, macOS, and Windows
- Automatically cleans obsolete files
- Generates compile_commands.json
- Can create configuration-based build variants
Watch out
- Linux file monitoring uses inotify
- Generated CI scripts lack incremental builds
- Commercial license terms are case by case
- Newest listed release is dated 2024-03-31
Who it suits
Tup suits developers who want file-driven, dependency-based builds across Linux, macOS, and Windows. It can also support CI output and third-party tooling through generated files and scripts.
Verdict
Tup provides dependency-aware incremental builds, cleanup, variant directories, and integration outputs across three desktop operating systems. Open-source use is free under GPL-v2, while commercial licensing requires negotiated terms.
Plans and prices
From Tup's own pricing page, checked 9 Oct 2001.
| Plan | Price | What it gives you |
|---|---|---|
| Tup (GPL-v2) | Free | Use and distribute under GPL-v2 |
| Commercial license | Priced on request | For including Tup in a larger work when GPL terms are not feasible · Case-by-case terms |
The facts
Each one read from Tup's own pages, with the date it was checked.
What it does
- Build cleanup
- Tup automatically cleans up old files.checked 9 Oct 2001
- Build configuration
- Users describe how to build a program in one or more Tupfiles because Tup has no domain-specific knowledge.checked 9 Oct 2001
- Build variants
- Tup can create variant directories from configuration files, with the configuration linked or copied into each directory.checked 9 Oct 2001
- CI use
- Tup can generate a shell or Windows batch script to build without running inside a Tup environment; the generated script does not support incremental builds.checked 9 Oct 2001
- File monitoring
- The inotify-based file monitor is Linux only and can update the Tup database as file changes occur.checked 9 Oct 2001
- Incremental builds
- Tup uses build algorithms to avoid unnecessary work and update projects with little overhead.checked 9 Oct 2001
- License
- Tup is dual-licensed under GPL-v2 or a commercial license whose terms are negotiated case by case.checked 9 Oct 2001
- Parallel safety
- Tup detects when a build description is not parallel-safe and reports it.checked 9 Oct 2001
- Purpose
- Tup is a file-based build system that processes file changes and a dependency graph to run commands needed to update dependent files.checked 9 Oct 2001
- Release history
- The release directory lists Tup 0.8 dated 2024-03-31 as its newest listed release.checked 9 Oct 2001
- Support
- The public mailing list is free for open-source and commercial projects, while private email support is offered free for open-source projects.checked 9 Oct 2001
- Tooling integration
- Tup can generate compile_commands.json for third-party tools that use the JSON compilation database format.checked 9 Oct 2001
Where it runs
- Platforms
- The maker describes Tup as available for Linux, OSX, and Windows; its macOS instructions require a FUSE implementation.checked 9 Oct 2001
Alternatives to Tup
- 1

AWS CodeBuild
Free planWebAPILinuxmacOS7.9From $0.01 a month - 2

fastlane
Free planAndroidiOSLinuxmacOS7.4Free plan - 3

Nx
Free planWebLinuxmacOSSelf-hosted7.2From $29 a month - 4

Bazel
Free planLinuxmacOSWindows6.7Free plan - 5

FASTBuild
Free planLinuxmacOSWindows6.6Free plan - 6
Open Build Service
Free planWebAPILinuxSelf-hosted6.6Free plan
