Как использовать способность gcc генерировать правила для makefile внутри самого makefile?

У меня есть проект, в котором заголовочные файлы хранятся в папке include, а файлы реализации в папке src, объектные файлы я планирую собирать в папку obj. С помощью команды

gcc -MM -Iinclude src/somefile1.c src/somefile2.c 

я получаю набор правил вида

somefile1.o: src/somefile1.c include/someheader.h somefile2.o: src/somefile2.c include/someheader.h 

выводимых в консоль

Список файлов в src тоже можно получить в пределах makefile вот так:

$  (wildcard src/*.c) 

Я пытаюсь создать шаблонное правило, которое бы обошло всё, что возвращает $ (wildcard src/*.c), и для каждого файла сгенерировало бы подходящее правило, так чтобы ещё и объектные файлы писались в папку obj, но у меня ничего не получается. Может, как-то можно заставить gcc выдавать только список заголовочных файлов? Тогда можно было бы написать что-то такое:

$  (OBJS): obj/%.o: src/%.cpp $  (shell gcc -getheaders src/%.cpp) 

(понятное дело, что никакой опции -getheaders у GCC нет). Подразумевается, что OBJS – это список всех объектных файлов с папкой obj

Или, может, как-нибудь обработать то, что вернёт команда, чтобы выкинуть оттуда лишнее? Или надо как-то сделать, чтобы один Makefile сгенерировал другой, а потом запустил?