extconf.rb: Как создать цели make-файла в зависимости от изменений файла заголовка?

В моем extconf.rb, Я имею

$srcs = %w{foo.cpp bar.cpp}
$objs = %w{foo bar} 

Каждый из них зависит от нескольких заголовочных файлов. Если я touch foo.cpp или же touch bar.cpp, а затем сделать rake compile, он перекомпилирует соответствующий объектный файл.

Но касаясь .h файл не имеет такого же эффекта, очевидно. Я не могу вспомнить, является ли это симптомом моего использования extconf.rb или просто факт кодирования в C/C++.

Есть ли способ, которым я могу направить extconf.rb написать make-файл, который знает об этих заголовочных файлах?

1 ответ

Решение

Вы не делаете это непосредственно в extconf.rb; для любой причины, mkmf использует отдельный файл с именем depend, чтобы указать эти виды вещей. Вы помещаете все свои зависимости в ту же форму, что и при написании make-файла вручную; итак, для файла foo.cpp что использовал client.h а также wombat.h, вы бы добавили следующую строку в depend:

foo.o: client.h wombat.h`

В процессе построения вашего Makefile, mkmf скопирует содержимое этого файла в ваш Makefileв результате чего эти правила должны соблюдаться как часть процесса сборки.

Другие вопросы по тегам