Make: A Tool for Building Software
Make is old. It was
first
released in 1977. It's ubiquitous. Make is a
standard
development tool on Unix, Linux and POSIX systems. Make is not easy
to use. It has many well-known warts and pitfalls. The things a
beginner wants to do with Make aren't the things that Make wants you
to do.
Nevertheless, Make has survived for forty years because it is often
good enough. If you develop software, particularly if you work in C
or C++, you will encounter a makefile sooner or later.
When you truly realize that Make is a declarative language
for specifying a
directed
acyclic graph, where the vertices are files and the edges are
build scripts, then you can use Make effectively. Even after many
years, I still sometimes forget this in both obvious and subtle ways
while using Make.