Você deve pedir ao compilador (ou melhor, ao pré-processador C) para fazer o trabalho para você:
gcc -M main.c
Isso produzirá uma dependência no estilo Makefile com todos os cabeçalhos incluídos por main.c (incluindo os incluídos de forma transitiva). Ele manipulará corretamente comentários e outras diretivas de pré-processador ( #if , #ifdef e assim por diante).