在我的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
编写一个知道这些头文件的makefile?
答案 0 :(得分:1)
你不能直接在extconf.rb
内做到这一点;无论出于何种原因,mkmf
使用名为depend
的单独文件来指定这些类型的东西。你把所有的依赖项放在你手工编写makefile的同一个表单中;因此,对于使用foo.cpp
和client.h
的文件wombat.h
,您需要将以下行添加到depend
:
foo.o: client.h wombat.h`
在构建Makefile
的过程中,mkmf
会将该文件的内容复制到您的Makefile
中,从而使这些规则成为构建过程的一部分。