extconf.rb:如何生成依赖于头文件更改的makefile目标?

时间:2013-09-08 15:21:25

标签: c++ c ruby extconf.rb mkmf

在我的extconf.rb中,我有

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

其中每个都依赖于多个头文件。如果我touch foo.cpptouch bar.cpp,然后执行rake compile,则会重新编译相应的目标文件。

但显然,触摸.h文件效果不一样。我不记得这是否是我使用extconf.rb的症状,或者只是在C / C ++中编码的事实。

是否有某种方法可以指示extconf.rb编写一个知道这些头文件的makefile?

1 个答案:

答案 0 :(得分:1)

你不能直接在extconf.rb内做到这一点;无论出于何种原因,mkmf使用名为depend的单独文件来指定这些类型的东西。你把所有的依赖项放在你手工编写makefile的同一个表单中;因此,对于使用foo.cppclient.h的文件wombat.h,您需要将以下行添加到depend

foo.o: client.h wombat.h`

在构建Makefile的过程中,mkmf会将该文件的内容复制到您的Makefile中,从而使这些规则成为构建过程的一部分。