Если у вас нет кодов, подобных
#include <hf1.h>
#include \
<hf1.h>
тогда поиск прямых включений - это просто
grep -l '#include .hf1\.h'
команда. Для нахождения косвенных включений предлагаю поставить
#error "hf1_included"
в hf1.h и скомпилируйте все файлы (например, "make -k" или аналогичный). Захват stderr и поиск hf1_included. Это даст список файлов, которые прямо или косвенно включают hf1.h. Теперь вы можете извлечь список только косвенных включений, также принимая во внимание первый список только прямых включений. Вы можете использовать программу comm
для этого.