makeで変数が設定されていない場合にデフォルト値を取得する 質問する

makeで変数が設定されていない場合にデフォルト値を取得する 質問する

(編集: @Michael のフィードバックに基づいて質問がより正確になりました)

bashではよくパラメータ拡張: が未設定の場合は次のコマンドは " default value"を出力し$VARNAME、それ以外の場合は VARNAME の内容を出力します。

echo ${VARNAME:-default value}  #if VARNAME empty => print "default value" 
echo ${VARNAME-default value}   #if VARNAME empty => print "" (VARNAME string)

見つからなかったGNU にも同様の機能がありますmake。私は最終的に に次のように書きましたMakefile:

VARNAME ?= "default value"
all:
        echo ${VARNAME}

しかし、私はこの解決策に満足していません。常に変数が作成されVARNAME、一部の makefile の動作が変わる可能性があります。

設定されていない変数のデフォルト値を取得するより簡単な方法はありますか?

ベストアンサー1

GNU make 変数が空でない場合はその展開を使用し、空の場合はデフォルト値を使用するが、変数を設定しない場合は、次のようにします。

all:
        echo $(or $(VARNAME),default value)

おすすめ記事