Makefile で if-then ステートメントと for ループを使用する方法を誰か説明できますか? 例を含む適切なドキュメントが見つからないようです。
106341 次
4 に答える
67
条件付きフォーム
単純
conditional-directive
text-if-true
endif
やや複雑
conditional-directive
text-if-true
else
text-if-false
endif
より複雑
conditional-directive
text-if-one-is-true
else
conditional-directive
text-if-true
else
text-if-false
endif
endif
条件付きディレクティブ
等しい場合の構文
ifeq (arg1, arg2)
ifeq 'arg1' 'arg2'
ifeq "arg1" "arg2"
ifeq "arg1" 'arg2'
ifeq 'arg1' "arg2"
等しくない場合の構文
ifneq (arg1, arg2)
ifneq 'arg1' 'arg2'
ifneq "arg1" "arg2"
ifneq "arg1" 'arg2'
ifneq 'arg1' "arg2"
構文が定義されている場合
ifdef variable-name
構文が定義されていない場合
ifndef variable-name
foreach 関数
foreach 関数の構文
$(foreach var, list, text)
foreach セマンティクス
「list」内の空白で区切られた単語ごとに、「var」で指定された変数がその単語に設定され、テキストが実行されます。
于 2008-10-07T23:28:12.943 に答える
19
以下に例を示します。
ifeq ($(strip $(OS)),Linux)
PYTHON = /usr/bin/python
FIND = /usr/bin/find
endif
これには、Make のバージョンが異なると構文がわずかに異なるという警告が付属していることに注意してください。
于 2008-10-07T23:02:19.487 に答える
7
GNU make documentationを試しましたか? 例を含む条件に関するセクション全体があります。
于 2008-10-07T22:59:57.697 に答える
5
多くの場合、forループが表示されますが、通常は必要ありません。これは、シェルに頼らずにforループを実行する方法の例です。
LIST_OF_THINGS_TO_DO = do_this do_that
$(LIST_OF_THINGS_TO_DO):
run $@ > $@.out
SUBDIRS = snafu fubar
$(SUBDIRS):
cd $@ && $(MAKE)
于 2011-05-05T05:36:30.190 に答える