2016-05-10 1 views

答えて

1

メイクルールの各行は新しいサブシェルであるのでないヘッダを直接引き継ぎません。

一つのオプションは、あなたのメイクルールの各行の前に付けることです。

my-rule: 
    set -euo pipefail; \ 
    IFS=$'\n\t'; \ 
    <the rest of your line> 

別のオプションは、あなたのメイクのルールだけで呼び出すシェルスクリプトでbashのstrictモードを使用することです:

my-rule: 
    ./my-script-with-bash-strict-mode.sh 

別オプションは、そのヘッダの下にあるすべてのルールをラップすることです。それはあなたのメイクファイルに1つのエントリポイントしかないと仮定します。

my-top-level-rule: 
    set -euo pipefail; \ 
    IFS=$'\n\t'; \ 
    ${MAKE} <my-other-rule> 
+0

新しいGNU Makeでは、[.ONESHELL](https://www.gnu.org/software/make/manual/html_node/One-Shell.html)を使うこともできます。 – reinierpost

関連する問題

 関連する問題