A basic, modern, idiomatic GNU makefile
You should be able to simplify the definition of DEPS to

DEPS := $(OBJS:.o=.d)


For small projects that don't require complicated configuration schemes, it's often times easiest to get the list of source files by wildcard instead of manually maintaining an explicit list:

SRCS := $(wildcard $(SRCDIR)/*.c)
OBJS := $(patsubst $(SRCDIR)/%.c,$(OBJDIR)/%.o,$(SRCS))
DEPS := $(OBJS:.o=.d)


That way, you won't have to change the makefile when you add, delete, or rename source files.

Since all of your object files are going into the same output folder, you only need to create the output folder when it does not exist.  You are currently calling mkdir for every C file that gets compiled.  This won't break your build, but it's unnecessary overhead and doesn't scale well.  You should be able to simplify to something like this:

$(OBJDIR)/%.o: $(SRCDIR)/%.c
    #@echo " CC $&lt;"
    $(SILENCER)$(CC) $(CFLAGS) -c -o $@ $&lt; 

$(OBJS): | $(OBJDIR)
$(OBJDIR):
    $(SILENCER)mkdir -p $(OBJDIR)


The second line of your recipe for "clean" should add the "-f" flag to avoid error messages when $(OBJDIR) doesn't exist.