2012-10-30 164 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