Makefile (generación de autodependencia)

solo para una terminología rápida:

#basic makefile rule
target: dependencies
    recipe
El problema: quiero generar las dependencias automáticamente.

Por ejemplo, espero convertir esto:

#one of my targets
file.o: file.cpp 1.h 2.h 3.h 4.h 5.h 6.h 7.h 8.h another.h lots.h evenMore.h
    $(COMPILE)

Dentro de esto

#one of my targets
file.o: $(GENERATE)
    $(COMPILE)

y no estoy muy seguro de si es posible ..

Lo que sí sé:

Puedo usar este indicador del compilador:

g++ -MM file.cpp

y devolverá el objetivo y la dependencia adecuados.
so del ejemplo, devolvería:

file.o: file.cpp 1.h 2.h 3.h 4.h 5.h 6.h 7.h 8.h another.h lots.h evenMore.h  

sin embargo, 'make' NO me permite escribir explícitamente código de shell en la sección de destino o dependencia de una regla:
Sé que hay una función 'make' llamadacáscar

pero no puedo conectar esto como dependencia y hacer magia de análisis porque se basa en la macro $ @ que representa el objetivo ... o al menos creo que ese es el problema

Incluso he intentado reemplazar la dependencia "file.cpp" con esta función de archivo MAKE y eso tampoco funcionará ...

#it's suppose to turn the $@ (file.o) into file.cpp
THE_CPP := $(addsuffix $(.cpp),$(basename $@))

#one of my targets
file.o: $(THE_CPP) 1.h 2.h 3.h 4.h 5.h 6.h 7.h 8.h another.h lots.h evenMore.h
    $(COMPILE)
#this does not work

Así que en todo Google, parece haber dos soluciones. los cuales no entiendo completamente.
Desde GNU Make Manual

Algún sitio que dice que el GNU Make Manual one está desactualizado

Así que mi última pregunta es: ¿es posible hacerlo de la manera que quiero hacerlo?
y si no, alguien puede descomponer el código de uno de estos sitios y explicarme en detalle cómo funcionan. Lo implementaré de una de estas formas si es necesario, pero estoy cansado de pegar un fragmento de código en mi archivo MAKE antes de comprenderlo

Respuestas a la pregunta(7)

Su respuesta a la pregunta