2012-10-30 66 views
3

我想从Jamfile调用python脚本生成 必需的源文件。从Jamfile调用python脚本

,在Makefile中,它看起来有点像这样:

sourcefile.c: 
    python script.py 

什么是存档在Jamfile中这样的事情 最优雅的方式?

回答

1

卡纸相当于是这样的:

actions CallScript 
{ 
    python script.py 
} 

CallScript sourcefile.c ; 

根据应用程序的情况下,你可能需要做更多一点。例如。如果脚本生成源文件并且您想要编译生成的源文件,则解决方案可能如下所示:

rule GenerateSource 
{ 
    local source = [ FGristFiles $(1) ] ; 
    MakeLocate $(source) : $(LOCATE_SOURCE) ; 
    Clean clean : $(source) ; 
    GenerateSource1 $(source) ; 
} 

actions GenerateSource1 
{ 
    python script.py $(1) 
} 

GenerateSource sourcefile.c ; 

Main foo : sourcefile.c ; 
+0

想想吧,您可能希望在脚本更改时更新源文件。所以'取决于$(source):script.py;'应该添加在规则中。然后你可以将脚本作为第二个参数传递给动作('GenerateSource1 $(source):script.py;'),并在动作中使用该参数,而不是在那里硬编码名称('python $(2) $(1)')。哦,我一直假设脚本以你的源文件名作为参数。如果不是这种情况,则省略'$(1)' – user686249