make
Use when writing or debugging Makefiles, understanding pattern rules and automatic dependency generation, managing CFLAGS/LDFLAGS, or diagnosing incremental build, phony targets, or recursive make.
Install / Use
npx skills add OutlineDriven/outline-driven-development --skill makeInstalls into whichever agent you are using.
SKILL.md
Installable skill definition
Quality Score
Category
AutomationSupported Platforms
Tags
Our assessment of make
make scores 66/100 on our quality scale, 2707th of 2,880 Automation skills we index.
Its SKILL.md is 5.7 KB long, well organised into 8 sections with 7 code examples: a solid amount of guidance for an agent.
It has no GitHub stars yet, so there is no community track record; judge it on its content.
Maintenance, license and trust
- We could not determine when the repository was last updated.
- No license is declared. By default that means all rights are reserved: you can read it, but reusing or redistributing it is not clearly permitted. Ask the author before building on it commercially.
- Its trust signals score 68/100, with 3 cautions from licensing, adoption, age or documentation. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.
make compared with similar skills
All 4 of these similar skills score higher than make; compare them before choosing.
| Skill | Score | Stars | Updated | Format |
|---|---|---|---|---|
| make (this skill)by OutlineDriven | 66 | 0 | — | SKILL.md |
| Agent-Reachby Panniantong | 100 | 103.3k | 1d ago | CLAUDE.md |
| Scraplingby D4Vinci | 100 | 89.9k | today | MCP Server |
| rufloby ruvnet | 100 | 79.5k | today | MCP Server |
| algorithmic-artby anthropics | 100 | 177.9k | 34d ago | SKILL.md |
Frequently asked questions
- How do I install make?
- Run
npx skills add OutlineDriven/outline-driven-development --skill make. The install tabs above show the steps for each supported agent. - Which AI agents does make work with?
- It is written for Universal, as a SKILL.md file. Other agents that read the same format can often use it too.
- Is make safe to use?
- It declares no license and scores 68/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
- Is make still maintained?
- We could not determine when the repository was last updated.
Skill content
View source on GitHubname: make description: 'Use when writing or debugging Makefiles, understanding pattern rules and automatic dependency generation, managing CFLAGS/LDFLAGS, or diagnosing incremental build, phony targets, or recursive make.'
GNU Make
Idiomatic Makefile patterns for C/C++ projects: phony targets, pattern rules, automatic dependency generation, and incremental-build hygiene. Grounded against GNU Make 4.4.
Contract
| Field | Bound contract |
|---|---|
| Trigger | The task writes or debugs a Makefile, sets up pattern rules or automatic dependency generation, manages CFLAGS/LDFLAGS, converts ad-hoc compile commands into a Makefile, or diagnoses incremental build failures. |
| Authority | Reversible local: writes only Makefile/*.mk files and local build outputs; rollback is version control plus make clean. No remote mutation. |
| Side effect | make runs the compiler and writes objects and binaries into the tree or build directory. |
| Done | make builds the target incrementally (a second run reports nothing to do) and make clean removes the outputs. |
Inputs
- Source layout (required): where
.c/.cppfiles and headers live. - Compiler and flags (required if not inferrable):
CC,CFLAGS,LDFLAGS,LDLIBS. - Build variants (optional): debug/release split, install prefix.
Procedure
- Write the minimal correct Makefile. Recipes start with a tab, not spaces. Done when:
makebuilds andmake cleanremoves outputs.
CC := gcc
CFLAGS := -std=c23 -Wall -Wextra -g -O2
LDFLAGS :=
LDLIBS :=
SRCS := $(wildcard src/*.c)
OBJS := $(SRCS:src/%.c=build/%.o)
TARGET := build/prog
.PHONY: all clean
all: $(TARGET)
$(TARGET): $(OBJS)
$(CC) $(LDFLAGS) -o $@ $^ $(LDLIBS)
build/%.o: src/%.c | build
$(CC) $(CFLAGS) -c -o $@ $<
build:
mkdir -p build
clean:
rm -rf build
Automatic variables: $@ is the target, $< the first prerequisite, $^ all prerequisites deduplicated, $* the pattern stem, $(@D) the target's directory part.
- Add automatic dependency generation. Without it, editing a header rebuilds nothing.
-MMDwrites a.dfile per object;-MPadds phony targets for headers so deleting one does not break the build. Done when: touching a header rebuilds exactly its dependents.
DEPFLAGS = -MMD -MP
DEPS := $(OBJS:.o=.d)
build/%.o: src/%.c | build
$(CC) $(CFLAGS) $(DEPFLAGS) -MF $(@:.o=.d) -c -o $@ $<
-include $(DEPS) # leading - ignores missing .d files on first build
- Use pattern rules for repeated transforms. Done when: one rule covers each source-to-output shape.
%.o: %.c
$(CC) $(CFLAGS) -c -o $@ $<
%.o: %.cpp
$(CXX) $(CXXFLAGS) -c -o $@ $<
%.s: %.c
$(CC) $(CFLAGS) -S -o $@ $<
- Add build variants and quiet output. Done when:
make BUILD=debugswitches flags andmake V=1shows full commands.
BUILD ?= release
ifeq ($(BUILD),debug)
CFLAGS += -g -Og -DDEBUG
else
CFLAGS += -O2 -DNDEBUG
endif
Q := $(if $(V),,@)
build/%.o: src/%.c | build
@echo " CC $<"
$(Q)$(CC) $(CFLAGS) -c -o $@ $<
- Add an install target with
DESTDIRandPREFIX. Done when:make install DESTDIR=/tmp/stagestages the tree.
PREFIX ?= /usr/local
install: $(TARGET)
install -d $(DESTDIR)$(PREFIX)/bin
install -m 0755 $(TARGET) $(DESTDIR)$(PREFIX)/bin/
- Structure multi-directory projects with included
.mkfiles, not recursive make. Recursive make fragments the dependency graph and breaks parallelism. Done when: one top-level Makefile sees every prerequisite.
# Makefile
include lib/module.mk
include src/app.mk
# lib/module.mk
LIB_SRCS := $(wildcard lib/*.c)
LIB_OBJS := $(LIB_SRCS:lib/%.c=build/lib_%.o)
OBJS += $(LIB_OBJS)
build/lib_%.o: lib/%.c
$(CC) $(CFLAGS) -c -o $@ $<
- Diagnose failures against this table. Done when: the error maps to a cause and a fix.
| Error | Cause | Fix |
|---|---|---|
| No rule to make target 'foo.o' | Missing source or rule | Check the source path and pattern rule |
| Nothing to be done for 'all' | Targets up to date | Touch a source or run make clean |
| Circular dependency dropped | Target depends on itself | Trace the prerequisite chain |
| missing separator | Spaces where a tab belongs | Recipes need a literal tab |
| multiple target patterns | Bad pattern rule syntax | Check % placement |
| Rebuilds everything | Wrong timestamps or missing .PHONY | Check date; mark all and clean phony |
| Header edit rebuilds nothing | No dependency tracking | Add -MMD -MP and -include $(DEPS) |
Useful flags: make -j"$(nproc)" parallel, make -O synchronizes output, make -n dry run, make -B force rebuild, make -k keep going, make -p print the rule database, make --warn-undefined-variables catch typos.
For the full variable, function, and special-target reference see references/cheatsheet.md.
Failure and recovery
makedoes nothing after a header edit: dependency files are missing; add-MMD -MPand-include $(DEPS).- Parallel build races: a missing order-only prerequisite or an undeclared generated header; declare the real dependency, never serialize to hide it.
missing separator: convert the recipe's leading spaces to a tab.- Variable expands empty:
=defers expansion to use time,:=expands at definition; pick:=unless late expansion is the point.::=is the POSIX immediate form, available in GNU Make 4.4 and later. - Recursive make is already present: include the child
.mkfiles from the top Makefile instead of$(MAKE) -C.
Output
A Makefile that builds incrementally, tracks header dependencies, supports clean and install, and survives make -j. For debugging tasks, the diagnosed cause and the minimal fix.
Related Skills
Agent-Reach
103.3kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
Scrapling
89.9k🕷️ The BEST Web Scraping framework that handles everything from a single request to a full-scale crawl! Don't be shy, join here: https://discord.gg/EMgGbDceNQ and follow here for daily tips and tricks: https://x.com/Scrapling_dev
ruflo
79.5k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
algorithmic-art
177.9kCreating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems.
Trust signals
From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.
