Drop any file to identify it
No upload. No signup. No sending your file halfway across the internet.
We tell you what it is, right here in your browser.
Drop it!
Let go to identify this file.
Couldn't identify this file
Need to convert it? fwip it →
Make is the granddaddy of build systems. Created in 1976, it defines targets, dependencies, and commands — if file A depends on file B and file B changed, rebuild file A. This dependency-driven approach is so fundamentally sound that every modern build tool (Gradle, CMake, Bazel) is essentially Make with more features.
The syntax is deceptively simple: targets on the left, dependencies after a colon, commands indented with a tab (not spaces — this matters, and it's caused rage for decades). A well-written Makefile reads like a recipe: `make build` compiles your code, `make test` runs tests, `make clean` removes build artifacts.
Beyond C/C++ compilation, Makefiles are popular as task runners for any project. Python projects, Go projects, and even JavaScript projects use Makefiles as a universal `make deploy`, `make lint`, `make docker-build` interface. The tool is pre-installed on every Unix system and available via MinGW/MSYS on Windows.