簡體   English   中英

從Shell腳本調用makefile

[英]Calling makefiles from Shell Script

我是shell腳本的新手。 我想以特定的順序從Shell腳本調用make文件列表。 對於每個makefile,我想得到結果(make是成功還是失敗)。 如果有任何錯誤我想停止腳本執行。 如果成功,我必須運行下一個makefile。

一個常見的習慣用法是用set -e創建一個shell腳本; 這將導致腳本在第一個錯誤時退出。

#!/bin/sh
set -e
make -f Makefile1
make -f Makefile2
:

如果您需要對整個腳本進行更多控制,可以刪除set -e ,而不是顯式退出make失敗:

make -f Makefile1 || exit
make -f Makefile2 || exit

要減少代碼重復,請創建一個循環:

for f in Makefile1 Makefile2; do
    make -f "$f" || exit
done

只是為了明確, || “或”和&& “和”連詞是簡寫

if make -f Makefile1; then
     : "and" part
else
    : "or" part
fi

最后,您描述的行為聽起來與Make本身的行為完全一樣。 也許頂級Makefile實際上是適合您的場景的解決方案?

.PHONY: all
all:
    $(MAKE) -f Makefile1
    $(MAKE) -f Makefile2
make -f makefile1
make -f makefile2

按順序運行make文件

保存每個makefile的輸出

make -f makefile1 >> output1
make -f makefile2 >> output2

檢查每個make文件后的結果

make -f makefile1 >> output1

在此行腳本之后使用
回聲$? 這與if結合使用。 如果回音$? 結果為零然后你的成功所以如果echo $? 結果為零然后運行下一個文件其他明智的退出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM