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")'

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


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

Bit ini sangat membantu - Juga perhatikan bahwa ia membandingkan $ (TEST) dengan "TRUE" sebagaimana adanya:. Terima kasih
kakoma
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.