Makefile'da ortam değişkenlerinin değerini kontrol etme


21

Bir ortam değişkeninin değerini kontrol etmem gereken bir Makefile hedefim var. Ancak bunun sözdizimini tam olarak anlamadım. Çok çalıştım ama bulamıyorum. Herhangi bir yardım takdir edilmektedir.

Ortam değişkeni adı: TEST, değeri: "TRUE"

test_target: 
    ifeq ($(TEST),"TRUE")
            echo "Do something"
    endif

Aşağıdaki hatayı alıyorum:

/bin/sh: -c: line 0: syntax error near unexpected token `"TRUE","TRUE"'
/bin/sh: -c: line 0: `ifeq ("TRUE","TRUE")'

Yanıtlar:


26

ifeq()Yönergesi sütun 1, kaldırma önde gelen herhangi bir boşluk, yani olmak zorundadır

test_target: 
ifeq ($(TEST),"TRUE")
        echo "Do something"
endif

^ boşluk yok


14

ifeqTAB'ın peşinden koymaman gerekir . Boşluklara izin verilir. GNU okuyun Belge hazırlayın .

test_target: 
ifeq ($(TEST),"TRUE")
    echo "Do something"
endif

Ayrıca karşılaştırır dikkat $(TEST)ile "TRUE"olduğu gibi:

$ make TEST=TRUE
make: Nothing to be done for 'test_target'.

$ make TEST='"TRUE"'
echo "Do something"
Do something

Bu bit çok yardımcı oldu - Ayrıca $ (TEST) 'ı "TRUE" ile karşılaştırdığına dikkat edin:. Teşekkürler
kakoma
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.