Your makefile will then work on systems without gcc, and it is also easier to override it, ie:
make CC=clangYou should unless you've committed to writing portable code. If you're using GCC specific features then using CC would imply a false level of compatibility.
In this case they are using gcc specific features "-MMD -MP -MT".
In fact I believe it should be there for gcc too, according to https://gcc.gnu.org/wiki/LinkTimeOptimization so perhaps this is a bug in the Makefile?
Flushing out issues like this is another reason to commit to writing portable code (and build systems), as you put it.
Would this code benefit from better variable names or is it just that I don't know the domain and this is good understandable code? I'm honestly curious.
This happens a lot with C code examples here.
BIN = BINary executable
SRCS = SouRCe fileS
OBJS = OBJect fileS
DEPS = DEPendency fileS
CFLAGS = C compiler FLAGS passed as arguments to the C compiler
LDFLAGS = linker or Link eDitor FLAGS passed as arguments to the linker