Registry / devops / tcbuilder

tcbuilder

JSON →
library1.0.4jsnpmunverified

tcbuilder (also known as 'bb') is a Bash-based build system that generates automated Makefiles from user-defined bash variables. The current version is 1.0.4, released with an irregular cadence. It is designed for projects that already use Bash and Make, offering a lightweight alternative to full-featured build systems. Key differentiators include its simple variable-based configuration, no external dependencies beyond Bash and Make, and the ability to handle multi-group builds with per-source flags. It requires Node.js >= 20 for the npm package but the core build generator is purely bash scripts.

npm install tcbuilder
INSTALL
IMPORT
SIG · TCBUILDER
T
tcbuilder
devopsjavascriptv1.0.4
Install
Import
Disk
Pass rate
0/ 6
Env Coverage0 / 6
glibc
1822
musl
1822
Install & Compatibility
Where this runs
tested against v? · npm install
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
musl
node 18226 runs
build_error
glibc
node 18226 runs
build_error
Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

tcbuilder
npx tcbuilder [options]
const tcbuilder = require('tcbuilder')
The package is a CLI tool, not a library. Use npx or install globally.
shebang usage
#! ./bb/bb
npm install tcbuilder && require('tcbuilder')
The main usage is via a shebang line in a build variables file.
Git submodule
git submodule add --depth 1 https://github.com/umtozkn/bb.git
npm install tcbuilder
Install via git submodule for concurrent versioning alongside project.

Demonstrates creating a build variables file with shebang, defining groups and sources, generating a Makefile, and running make.

# Install tcbuilder globally or use npx npm install -g tcbuilder # Create a build variables file (e.g., build.vars.sh) #! /usr/bin/bb # Enable silent output all_silent="true" # Define groups groups="app" app_description="Build the application" app_build_dir="build" app_sources="src/main.c src/utils.c" # Final executable app_final_executable="myapp" # Make the file executable and run it to generate Makefile chmod +x build.vars.sh ./build.vars.sh > Makefile # Build the project using make make
tcbuilder --version
Debug
Known issues
gotchaThe 'groups' variable cannot contain 'all' or 'default' as values.
fix
Use unique group names like 'app', 'lib', etc.
affects: >=1.0
gotchaThe build directory must never be empty; always specify a build path.
fix
Set ..._build_dir to a non-empty path.
affects: >=1.0
gotchaShebang line must point to the correct bb binary location (./bb/bb for submodule, /usr/bin/bb for system install).
fix
Adjust the first line according to your installation method.
affects: >=1.0
deprecatedThe 'default_final_executable' may be overridden by group-specific variables; behavior might change in future versions.
fix
Use group-specific '..._final_executable' to avoid ambiguity.
affects: 1.0.4
Errors
Common errors & fixes
make: *** No targets specified and no makefile found. Stop.
Forgot to generate the Makefile from the build variables file.
fix
Run the build variables file (e.g., ./build.vars.sh > Makefile) before executing make.
line 1: ./bb/bb: No such file or directory
Shebang points to a non-existent bb binary (submodule not installed or wrong path).
fix
Install bb as a git submodule into the ./bb/ directory or adjust the shebang to /usr/bin/bb if globally installed.
make: warning: overriding commands for target `all'
Multiple groups with the same target name or conflicting rules in the generated Makefile.
fix
Ensure group names are unique and do not use 'all' or 'default'.
Upgrade
Version history
1.0.4latest on npm
Audit
Dependencies
makerequiredGenerated Makefiles require GNU Make to execute.
bashrequiredThe package itself is a bash script that generates Makefiles.
Agent activity
7 hits · last 30 days
node
6
Amazon
1
Resources
tcbuilder — npm install tcbuilder · libregistry