私が使用しているMakefileがあります。これはどこかから得たもので、かなり大きいものです。私はmakefileの中で時々変更したいものもいくつか見つけました。私にとってはmakefileの最初に(スイッチの)変数(例えば、OVWRCHOICE
)を定義することです。そしてその後にメイクファイルのコードでは、ような何か:すべてのダンディと罰金です変数への条件付きインクルード/実行
ifdef OVWRCHOICE
MYOPT = override
....
endif
を...。
最後に、「オーバーライド」の部分も変更する必要があるので、ファイルの先頭に置いておきたいと思います。したがって、このオーバーライド部分にはいくつかのmake
コマンドが含まれています。define
を使用して、コマンド(これはifdef OVWRCHOICE...
部分で実行される)を含む変数を使用しようとしました。
だから私はこの単純な例に到着しました:
# uncomment as needed;
OVWRCHOICE = YES
define SET_OVWRCHOICE
MYOPT = override
endef
export SET_OVWRCHOICE
# ... many lines of code ...
MYOPT = default
# ... many lines of code...
# without indent: Makefile:18: *** missing separator. Stop.
# with tab indent: Makefile:18: *** commands commence before first target. Stop.
ifdef OVWRCHOICE
$(SET_OVWRCHOICE)
endif
all:
@echo $(MYOPT)
...エラーが指摘して失敗します。もちろん、投稿の最初のスニペットを代わりに使用すると、すべて正常に実行され、make
は「上書き」という結果を表示します。
このようなことを達成するにはどうすればいいですか?この文脈では、「Makefileコマンド」の「包含」または「実行」が正しい用語であるかどうかは不明です。だから私は検索のための出発点を見つけることに苦労しています:)