2011-06-29 14 views
7

Próbuję zdefiniować zmienne w pliku Makefile, zgodnie z warunkami. Ponieważ ifeq można uruchomić tylko w regułach, dodałem dodatkową regułę (def_rule), do której odnosimy się w przypadku każdej reguły.Zmienna warunkowa zdefiniowana w pliku Makefile za pomocą ifeq

Przykład:

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

all: def_rule tp xi_eid_chipset.o 

Niestety, powołując czynią wszystkie powroty tak:

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

Nie mogę zrozumieć, dlaczego. Właśnie zapoznałem się z przykładami w GNU Utwórz dokumentację.

Czy wiesz, jak definiować warunkowe w Makefile?

Odpowiedz

9

warunkowe mogą być poza regułami:

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

(Zauważ, że ja wrzuciłem kilka czołowych miejsc, tak aby ułatwić read-- są ani konieczne, ani szkodliwe.)