Это не решение. Например, aloclst.h включается в main.c. Значит при изменении aloclst.h нужно пересобирать main.c. А чтоб это знать -- нужно парсить main.c, иначе никак. Даже больше: нужно парсить main.c и все включенные в него файлы рекурсивно, причём с правильными макросами (ибо ifdef и т.п.)