На самом деле не очень хорошая идея указывать путь в директиве #include; он делает заголовок - и все, что от него зависит - зависит от конкретной структуры каталогов. Стоит выяснить, разрешено ли вам очищать файл common_dependencies.h.
Если пути в common_dependencies.h верны, ваш Makefile будет работать как есть (хотя я бы рекомендовал использовать абсолютный путь, а не "../ .."), и вы можете использовать что-то вроде Расширенное автоматическое создание зависимостей для обработки зависимостей для вас.
Если пути в common_dependencies.h не верны, тогда да, вам нужно будет найти каждый файл, который он #include, и зная, где они находятся, будет недостаточно . Если он #include файла с ложным путем, компиляция завершится сбоем, даже если компилятор имеет -Ithe_correct_path, поэтому вам придется либо исправить common_dependencies.h, либо изменить структуру каталога (путем перемещения, копирования или ссылки на файлы) .