[makefile] Difference between CPPFLAGS and CXXFLAGS in GNU Make
CPPFLAGS will be given to the C preprocessor, while
CXXFLAGS will be given to the C++ compiler.
What's the difference between CPPFLAGS and CXXFLAGS in GNU Make?
By default, they're set to something.
In practice, you need to know what every single project does. Virtually no one uses those defaults built into make, and if you rely on, for example, CPPFLAGS meaning "flags to the C preprocessor" you'll find that the project you care about has used it to mean "flags to the C++ compiler" instead. And does the CFLAGS flag get passed to C++ compile lines? Sometimes. Not always. Etc, etc, etc.