1. ホーム
  2. シェル

[解決済み】コマンドの出力をMakefileの変数に代入する方法

2022-03-27 15:04:05

質問

インストールされているPythonが特定のバージョン(例えば2.5)よりも大きい場合にのみ、条件付きでいくつかのmakeルールを実行する必要があります。

実行するようなことができると思っていました。

python -c 'import sys; print int(sys.version_info >= (2,5))'

で、その出力(OKなら'1'、そうでなければ'0')を ifeq make文を作成します。

単純なbashのシェルスクリプトではただ

MY_VAR=`python -c 'import sys; print int(sys.version_info >= (2,5))'`

が、これではMakefileの中でうまくいきません。

何か提案はありますか?私はこれを達成するために、他の賢明な回避策を使用することができます。

解決方法は?

Makeを使用する shell のように組み込みます。 MY_VAR=$(shell echo whatever)

me@Zack:~$make
MY_VAR IS whatever

me@Zack:~$ cat Makefile 
MY_VAR := $(shell echo whatever)

all:
    @echo MY_VAR IS $(MY_VAR)