2011-06-29 29 views
7

条件に応じて、Makefileに変数を定義しようとしています。 ifeqはルール内でのみ実行できるため、ルールごとに参照する追加ルール(def_rule)を追加しました。私は理由を理解することはできませんifeqを使ってMakefileに条件変数を定義する

ifeq (linux, android)
/bin/sh: Syntax error: word unexpected (expecting ")")
make: *** [def_rule] Error 2

:すべてのリターンこれを作る呼び出す

def_rule: 
ifeq ($(TARGET), android) 
    CC=arm-linux-androideabi-gcc 
else 
    echo "native build" 
endf 

all: def_rule tp xi_eid_chipset.o 

残念ながら、:

例。私はちょうどGNU Makeのドキュメンテーションの例に従っています。

メイクファイルで条件定義を行う方法を知っていますか?

答えて

9

条件文は、ルールの外であってもよい:

ifeq ($(TARGET), android) 
$(info Android) 
CC=arm-linux-androideabi-gcc 
else 
$(info native build) 
CC=something else 
endif 

(私はそれが簡単に彼らが必要でも有害でもないread--できるようにすること、いくつかの主要な空間で投げてきたことに注意してください。)

関連する問題