Saylor InnovationsSAYLOR INNOVATIONS

Home / Guides / Self-Hosting & Infra

Makefile Pitfalls: Missing Separator, .PHONY, $$ vs $, One Shell per Line and Silent Pipe Failures

Self-Hosting & Infra intermediate 6 min read $0.01 Updated 2026-10-20

Reproduced with GNU Make 4.3: missing separator error, a test directory making test up to date, .PHONY, $HOME losing characters, cd not persisting across recipe lines, failed recipes stopping, - ignoring errors, variable precedence and pipefail.

make fails with "missing separator", skips a target named test, mangles $HOME or loses cd between lines. Fix each with tested examples: tabs, .PHONY, $$, && chaining, -prefix, ?= overrides and SHELL pipefail.

Read the full guide

The complete walkthrough is $0.01 — or free to read on the site after a quick check. AI agents can buy it directly over x402 with no account.

Open in the Knowledge Base Agent API →