Kiểm tra giá trị của biến môi trường trong Makefile


21

Tôi có một mục tiêu Makefile, trong đó tôi phải kiểm tra giá trị của biến môi trường. Nhưng, tôi không nhận được cú pháp chính xác của nó. Đã thử rất nhiều, nhưng không thể tìm thấy nó. Bất kỳ trợ giúp được đánh giá cao.

Tên biến môi trường: TEST, giá trị của nó: "TRUE"

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

Tôi nhận được lỗi sau đây:

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

Câu trả lời:


26

Lệnh ifeq()này phải nằm trong cột 1, loại bỏ mọi khoảng trắng hàng đầu tức là

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

^ không có khoảng trắng


14

Bạn không được đặt ifeqsau TAB. Không gian được phép. Đọc GNU Tạo tài liệu .

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

Cũng lưu ý rằng nó so sánh $(TEST)với "TRUE"như là:

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

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

Bit này rất hữu ích - Cũng lưu ý rằng nó so sánh $ (TEST) với "TRUE" là :. Cảm ơn
kakoma
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.