Bashスクリプトからの変数のエクスポートは機能しません。変数を別の名前に変更すると機能します。

Bashスクリプトからの変数のエクスポートは機能しません。変数を別の名前に変更すると機能します。

これは私が見た中で最も奇妙な行動です。以下の説明をご覧になるとショックを受けますが、そうです。このようなことが起こっています。

LON_GEMINI_BOXBashスクリプトから変数名をエクスポートしようとしています。

そして、具体的な内容を定義するために、makefileでこの変数の値にアクセスしてみてください。

次のようになります。 bashスクリプトでは、

export LON_GEMINI_BOX = 1

make ファイルでは、

ifeq ($(LON_GEMINI_BOX), 1)
This is how im defined
EXTRA_CFLAGS += 
EXTRA_CFLAGS += 
else
why is this happening
endif

私はビルドプロセス中に常に他の部分に介入します。変数名LON_GEMINI1_BOXを別のものに調整すると、期待LON_GEMINI_BOXどおりにエクスポートされ動作します。

何が問題なのかを把握しようとしています。

答え1

Makefile条件では、すべてのスペースを削除することをお勧めします。このmakefileを見てください。正常に実行されます。

TXT="--"
ifeq ($(LON_GEMINI_BOX),1)
 TXT="works!"
 EXTRA_CFLAGS +=
 EXTRA_CFLAGS +=
else
 TXT="why is this happening"
endif
all:
    @echo $(TXT)

関連情報