2014-11-24 23 views
2

有沒有辦法使用shell腳本的返回值作爲Makefile中的依賴項?Makefile可以依賴於shell腳本的結果嗎?

例如:

生成文件:

proj: getsource.sh 
    cc src1.c src2.c ... 
getsource.sh: checksource.sh 
    wget http://www.something.com/src1.c 

checksource.sh:

#!/bin/sh 
# bash pseudo code because I can never remember bash's syntax 
if [[ -not -exists src1.c ]] 
    exit 1 
else 
    exit 0 
... 

當沒有源本執行時,生成文件將運行getsource.sh目標,那麼項目目標。如果源存在,它只會運行proj目標。

+0

你確定你想要的行爲取決於劇本的*返回值*,而不是其*輸出* – Beta 2014-11-24 06:07:04

回答

0

什麼只是這樣做:

proj: src1.c src2.c # ... 
    cc src1.c src2.c # ... 

src1.c: 
    @echo "retrieving src1.c ..." 
    @wget http://www.something.com/src1.c 
+0

得到一些源在線只是意思作爲一個簡單的例子。如果make有這個功能,我更感興趣。 – David 2014-11-24 03:34:15