Dependencias recursivas entre objetivos de make en el mismo Makefile

Estoy intentando escribir un archivo MAKE que pueda determinar cuándo se cambiaron los encabezados y luego volver a compilar los archivos .cpp correspondientes. Para probar esto, creé tres archivos:main.cpp, a.hyb.h. main.cpp incluir sa.h ya.h incluyeb.h.

Mi archivo MAKE se ve así:

prog: main.cpp a.h
        g++ main.cpp -o prog

a.h: b.h

Cuando cualquier combinación dea.h, b.hymain.cpp se cambia, esperoprog para ser recompilado A pesar de esto,prog solo se vuelve a compilar cuandoa.h omain.cpp se cambia, y la última línea parece ignorarse.

¿Qué estoy haciendo incorrectamente y cómo puedo lograr lo que quiero sin agregar el conjunto completo y completo de encabezados a cada archivo .cpp individual como este (ya que para proyectos más grandes esto podría convertirse enextremadamente incómodo):

prog: main.cpp a.h b.h
        g++ ...

Respuestas a la pregunta(1)

Su respuesta a la pregunta