Memeriksa nilai variabel lingkungan di Makefile

21

Saya memiliki target Makefile, di mana saya harus memeriksa nilai variabel lingkungan. Tapi, saya tidak mendapatkan sintaks yang tepat. Berusaha keras, tetapi tidak dapat menemukannya. Bantuan apa pun dihargai.

Nama variabel lingkungan: TEST, nilainya: "TRUE"

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

Saya mendapatkan kesalahan berikut:

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

Jawaban:

26

The ifeq()direktif harus dalam kolom 1, menghapus spasi terkemuka yaitu

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

^ tidak ada spasi

gwillie
sumber
14

Anda tidak harus memakai ifeqTAB. Spasi diizinkan. Baca dokumen GNU Make .

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

Perhatikan juga bahwa ini membandingkan $(TEST)dengan "TRUE"apa adanya:

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

$ make TEST='"TRUE"'
echo "Do something"
Do something
yaegashi
sumber
Bit ini sangat membantu - Juga perhatikan bahwa ia membandingkan $ (TEST) dengan "TRUE" sebagaimana adanya:. Terima kasih
kakoma