Makefile
A Makefile is a file defining targets, dependencies, and command recipes for automating software builds and other tasks with Make.
Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu
A makefile is a configuration file that defines targets and the commands used to build, test, or automate tasks in a software project.
- How it is used
- Collects formatting, documentation, installation, and validation commands into repeatable project tasks.
- How deep it goes
- Works through targets, dependencies, phony declarations, variables, and file-backed initialization; leaves advanced Make features aside.
- Examples
- Uses a combined chores target, backend-disabled validation, package installation targets, and a Terraform–OpenTofu engine switch.
- What you can do after
- Build it from scratch to give developers consistent commands for common project chores and checks.
Read how Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu explains Makefile →
Shipping Go: Develop, deliver, discuss, design, and go again
A Makefile is a configuration file that defines inputs, targets, and command recipes for the Make build automation tool.
- How it is used
- Standardizes recurring setup and build commands for developers and continuous integration.
- How deep it goes
- Demonstrates small setup and build targets, while deferring more complex build configurations and broader platform support.
- Examples
- Uses Go setup targets, `sudo make setup`, `sudo make install-go`, and `make build` as concrete workflows.
- What you can do after
- Operate/configure repeatable setup and build workflows locally and from a continuous integration pipeline.
Read how Shipping Go: Develop, deliver, discuss, design, and go again explains Makefile →
Related concepts
- makeused by · Make is a build automation tool that executes dependency-driven rules and commands defined in a makefile to create or update targets.
- Dockerfileused by · A Dockerfile is a text file containing declarative instructions for building a container image and specifying its contents and runtime metadata.
- package manageruses · A package manager is software that retrieves, installs, updates, removes, and manages software packages and their dependencies.
- deployment pipelineimplements · A deployment pipeline is a sequence of stages for building, validating, packaging, and delivering software or related changes toward deployment.
- make targethas part · A Make target is a named build-automation goal associated with prerequisites and commands, often represented by a file or directory.
- standardused by · A standard is an established rule, specification, or convention that defines a consistent reference for practice, representation, behavior, or evaluation.
These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.

