I think these days you're better off using -MMD to generate header dependencies at the same time as compiling, rather than doing it in a separate rule.
%.o: %.c
$(CC) $(CFLAGS) -MMD -c $<
-include $(OBJECTS:.o=.d)