Предположим, что a1.c
и a2.c
включают a.h
, что, в свою очередь, включает b.h
. Так что a1.c
и a2.c
зависят от b.h
косвенно.
Теперь я хотел бы, чтобы make-файл компилировал оба файла .c, если b.h
будет изменен. Одним из способов является добавление b.h
в список зависимостей каждого правила вместе с a.h
. Но я чувствую, что это может усложнить ситуацию, когда проект станет больше и сложнее. Другим способом может быть добавление правила для touch
ing a.h
при каждом изменении b.h
. (Я не пробовал последнее)
Каков наилучший способ работы с вложенными зависимостями в make-файле?
Что я подразумеваю под «лучшим способом»:
make-файл настолько компактен и прост, насколько это возможно
каждый файл .c компилируется только при изменении хотя бы одного из связанных с ним файлов .h
не зависит от возможностей или инструментов конкретного компилятора или ОС