как определить целочисленную переменную внутри файла make - PullRequest
0 голосов
/ 15 января 2019

Я могу определить build=1 в качестве аргумента командной строки. Например:

make build=1

Но не может определить build=1 внутри файла make. Например, я добавил

build=1
ifdef build
echo 'defined'
endif 

Но часть ifdef не выполняется.

1 Ответ

0 голосов
/ 16 января 2019

Вы были на правильном пути и правильно присвоили переменную build. Однако вы не можете просто выполнить команду типа echo в произвольной строке в makefile. См. 3.1 Что содержит Makefiles , чтобы понять, как выглядит makefile.

Ниже показано, что вы можете сделать, например, используя функцию $(info ...). В этом случае echo дополнительно выполняется внутри рецепта, где он используется большую часть времени.

build:=1
ifdef build
$(info build has been defined)
endif

all:
        @echo build has the value $(build)

Обратите внимание на использование := вместо =. Хотя в этом примере это не слишком важно, полезно понимать разницу. Вы можете найти объяснение в разделе 6.2 Два варианта переменных .

Если вы хотите научиться пользоваться make, держите это руководство под своей подушкой. Он полон и читабелен и содержит немало примеров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...