There's no need to write $(V) and $(Q) since they are single letter variables you can just do $V or $Q. Of course, you may prefer the more verbose version.
While CMake & Bazel are gaining in popularity, Make is still the de-facto standard for firmware projects. It certainly is miles better than some of the XML-based, GUI-first build systems IDEs bundled with Keil or IAR.