Sequenced, not collected
Every concept arrives after its prerequisites. The target / prerequisite / recipe model before any rule, rules before variables, variables and automatic variables before pattern rules, and debugging last — because make -n only teaches something once there is a dependency graph to inspect.
Two parts, 8 modules, 32 chapters
Part I is a complete GNU Make education that stands on its own for any learner — the execution model, rules and dependencies, variables and functions, pattern rules and debugging. Part II is the engineering continuation: it builds on Part I and never re-teaches it, applying the same rules to simulation, regressions and EDA tools.
Targets → dependencies → ship
From a first two-rule Makefile to a complete APB/AXI verification flow — compile / elaborate / run, waves and logs, UVM test and seed selection, regression reports, VCS / Xcelium / Questa dispatch, synthesis and STA, and the parallelism and structure a production Makefile needs.
Your Learning Roadmap
32 chapters · 8 modules — two parts — GNU Make taught from zero, then the Make a semiconductor engineer needs for simulation, regressions, EDA tools and production flows.
Part I — GNU Make Fundamentals
GNU Make taught from zero, with no semiconductor prerequisite: what Make is and the problem it solves, the target / prerequisite / recipe model, writing and running a first Makefile, file and .PHONY targets, dependencies and automatic rebuilding, the four variable assignment operators, command-line overrides, automatic variables, wildcards and the essential functions, pattern rules, conditionals and includes, shell execution and error handling, and debugging a Makefile with make -n and --debug.
Part II — Makefiles for VLSI Engineering
The same GNU Make applied to semiconductor engineering work, building on Part I and never repeating it: Makefiles in RTL and verification projects, source filelists, includes and defines, compile / elaborate / run targets, waveform, log and clean targets, UVM test selection and seed control, regression targets, test lists and pass/fail reports, VCS / Xcelium / Questa integration and simulator selection, hand-offs to Bash, Tcl and Python, synthesis and STA automation, and the organisation, parallelism and debugging habits a production Makefile needs.
