В моем 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-файл, который знает об этих заголовочных файлах?
Вы не делаете это непосредственно в extconf.rb
; для любой причины, mkmf
использует отдельный файл с именем depend
, чтобы указать эти виды вещей. Вы помещаете все свои зависимости в ту же форму, что и при написании make-файла вручную; итак, для файла foo.cpp
что использовал client.h
а также wombat.h
, вы бы добавили следующую строку в depend
:
foo.o: client.h wombat.h`
В процессе построения вашего Makefile
, mkmf
скопирует содержимое этого файла в ваш Makefile
в результате чего эти правила должны соблюдаться как часть процесса сборки.
Других решений пока нет …