我能够将build=1
定义为命令行参数。例如:
make build=1
但无法在制作文件中定义build=1
。例如,我添加了
build=1
ifdef build
echo 'defined'
endif
但是ifdef
部分没有执行。
答案 0 :(得分:1)
您在正确的轨道上,正确地分配了build
变量。但是,您不能只在echo
中的随机行上执行类似makefile
的命令。请参阅3.1 What Makefiles Contain以了解makefile
的外观。
以下内容演示了您可以执行的操作,例如使用$(info ...)
函数。在这种情况下,echo
会在大多数时间使用的配方中另外执行。
build:=1
ifdef build
$(info build has been defined)
endif
all:
@echo build has the value $(build)
请注意:=
与=
的用法。尽管在此示例中不太重要,但了解它们之间的差异很有用。您可以在6.2 The Two Flavors of Variables部分中找到说明。
如果您想学习如何使用make
,请将that manual放在枕头底下。它是完整且可读的,并包含许多示例。