Varios puntos y signos de igualdad en makefile (se necesita explicación)

Esto es sólo un segmento de un makefile. No entiendo muy bien lo que está pasando.

OBJS = $(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o)
$(OBJS):$(OBJ)/%.o: $(SRC)/%.cpp | print-opts
    $(cc-command)

Lo único que entiendo es que estas líneas compilan archivos .cpp en .o, después de 'print-opts', con 'cc-command'. Pero no entiendo la semántica.

Si amplío la macro de 'OBJS', esta línea debería ser:

$(SRCS:$(SRC)/%.cpp=$(OBJ)/%.o) : $(OBJ)/%.o: $(SRC)/%.cpp | print-opts
    $(cc-command)

Para mí, parece que en '$ (SRCS: $ (SRC) /%. Cpp = $ (OBJ) /%. O)', afirma que todo .cpp en $ (SRC) vendría a .o en $ ( OBJ), pero esto dependería de $ (OBJ) /%. O, que depende de $ (SRC) /%. Cpp. Esto no tiene sentido ...

No entiendo cuál es el significado de signo igual aquí, y lo que significan los dos puntos.

Respuestas a la pregunta(1)

Su respuesta a la pregunta