What is Makefile?
A file containing build rules and commands that automates compilation and common project tasks using the make utility.
Makefiles define targets (tasks) with dependencies and shell commands. Running "make build" executes the build target. Make only rebuilds what has changed based on file timestamps, saving time on large projects.
Beyond compilation, Makefiles serve as project task runners: make test, make deploy, make clean. They provide a universal interface regardless of the underlying technology. Every developer can run make help to see available commands.