The current `Makefile` does not check any dependencies and is overall a bit limited. How about setting up a modern build system like CMake?