Makefile, который может определить с помощью gcc, какие заголовки отсутствуют? - PullRequest
2 голосов
/ 13 декабря 2010

У меня есть простая библиотека, которая генерирует для меня заголовки, и я хочу связать это вместе в Makefile.

Если файл cpp содержит заголовочный файл, который не существует, он должен сгенерировать его изсоответствующий исходный файл (если соответствующий файл существует).Я не могу понять, как это сделать.

Я пытался с помощью gcc -MM заблаговременно выяснить зависимости для каждого файла .cpp, но это не удается, если отсутствует заголовок.Мне нужно знать, какие файлы отсутствуют, чтобы попытаться восстановить их.

Если я просто определю обязательное условие для заголовков для всех файлов .cpp, он, конечно, всегда будет перекомпилировать все мои файлы .cpp.

Есть какие-нибудь идеи относительно того, как я восстанавливаю только недостающие заголовки?

Ответы [ 2 ]

5 голосов
/ 14 декабря 2010

Похоже, решение можно найти с помощью gcc:

http://gcc.gnu.org/onlinedocs/cpp/Invocation.html

-MG

в сочетании с такой опцией, как -M, запрашивающей генерацию зависимости, -MG предполагает, что отсутствующие заголовочные файлы являются сгенерированными файлами, и добавляет их в список зависимостей, не вызывая ошибки.

0 голосов
/ 13 декабря 2010

Вы пытались определить правило шаблона для создания каждого заголовка, например,

%.hh: %.cpp
    header_generator $^ > $@
...