open source · makefile generator · v1.0.0

gmake

An interactive TUI Makefile generator for C/C++ projects. Configure flags, pick targets, toggle tools — generate a production-ready Makefile in seconds.

↓ Download .deb View docs
jokerz@workstation ~
$ gmake generate

gmake — Makefile Generator   ↑↓ navigate · Enter toggle · e edit · g generate
Project Name : myproject
  Target Binary : app
  Compiler (C) : gcc
  C Standard : c11
  ─── Debug & Analysis ─────────────────
  GDB Support : ON
  Valgrind Target : off
  AddressSanitizer : ON
  ─── Actions ────────────────────────────
  ✦ Generate Makefile

[OK ] Makefile generated successfully!
Targets: all clean rebuild gdb valgrind static install format
scroll

interactive TUI

Navigate with arrow keys, toggle booleans with Space, edit text fields inline. No config files, no flags to memorize.

🐛

GDB & Valgrind

Toggle GDB and Valgrind targets on/off. When enabled, debug flags (-g3 -ggdb) are automatically added to your CFLAGS.

🔬

AddressSanitizer

One keypress enables ASan + UBSan across compile and link flags. Catch memory bugs before Valgrind even runs.

📦

static & shared libs

Optionally emit a static or shared library target alongside your binary. Both configured automatically.

🧹

format & lint

Enable clang-format and clang-tidy targets. Both recurse your source and include directories automatically.

🔗

auto-dependency tracking

Generated Makefiles use -MMD -MP for correct incremental builds. Header changes always trigger the right recompiles.

🧪

test runner target

Enable a test target that compiles everything in your tests/ directory and runs the test binary.

📥

install / uninstall

Optional install and uninstall targets with a configurable prefix. Defaults to /usr/local.

🐚

pure bash

No runtime dependencies beyond bash 4+. Works on any Debian/Ubuntu system without installing anything else first.

One command. Full control.


key action
↑ / ↓ / j / k Navigate menu
Enter / Space Toggle boolean / activate
e Edit selected text field
g Generate Makefile immediately
q Quit without generating
jk
Navigate items
EnterSpace
Toggle / select
e
Edit text value
g
Generate now
q
Quit
examples
# Open TUI and generate $ gmake generate # Show help $ gmake help

configurable fields
Project name Target binary C compiler C++ compiler C standard C++ standard src / include / build dirs Extra CFLAGS Extra libs Install prefix
Toggles GDB Valgrind ASan -Wall -Werror -O2 static shared tests install clang-format clang-tidy

Get started in three steps.

Debian / Ubuntu · x86_64 & arm64 · gmake 1.0.0

01 wget https://spdlab.hu/gmake/gmake_1.0.0_all.deb
02 sudo dpkg -i gmake_1.0.0_all.deb
03 gmake generate


# Download the script directly $ wget https://spdlab.hu/gmake/gmake -O ~/bin/gmake $ chmod +x ~/bin/gmake $ gmake generate