A simple makefile is a unicorn
The Makefile shown in the article is simultaneously not complicated and also over-complicated. I feel like most Make users don&#x27;t understand Make very well (especially the ones that complain really loudly about it).<p>Here&#x27;s a couple examples:<p>1. The &quot;%.o: %.c&quot; line is a huge code smell for Makefiles. You shouldn&#x27;t ever write that line—it&#x27;s built in!<p>2. Mentioning .h files in the Makefile. Don&#x27;t. Go look up  the `-MMD` flag in your C compiler. Clang, gcc and many other C compilers support it. Add that and a &quot;-include *.d&quot; line in the Makefile and you&#x27;ll have great dependency support.<p>Everything else in that makefile is just setting variables. It&#x27;s made overly complicated by the directory junk, but I&#x27;m failing to see the problem.