如何在ifdef条件

时间:2017-04-12 09:23:52

标签: makefile gnu-make

我知道这很简单,但我在这里遗漏了一些东西。

我想在x86的主机中构建我的代码。当我只给make时,它为手臂构建。

我想知道如何为我的主人制作这个版本?我设置变量LOCAL_BUILD:=host和给定的make主机我收到了错误。

make: *** No rule to make target 'host'.  Stop.

common.makefile,这是它的样子。

DEFAULT: all

# Generic platform code

LOCAL_BUILD:=host

ifdef LOCAL_BUILD
include $(PLATFORM)/scripts/x86.makefile
else
include $(PLATFORM)/scripts/arm.makefile
endif

all:
ifndef  LOCAL_BUILD
    TOP=$(TOP)/scripts/see.sh
endif
    mkdir -p $(BUILD_DIR)
    $(MAKE) imag

编辑: 默认情况下,它是为手臂构建的,我的意思是来自dir build for arm的make

如何用make参数替换ifdef变量?

任何帮助非常感谢。

1 个答案:

答案 0 :(得分:2)

  

如何用make参数替换ifdef变量?

Variables assigned to in make command line override assignments in the makefile,例如:

$ cat Makefile
LOCAL_BUILD := anything
$(info LOCAL_BUILD=${LOCAL_BUILD})

$ make
LOCAL_BUILD=anything
make: *** No targets.  Stop.

$ make LOCAL_BUILD=host
LOCAL_BUILD=host
make: *** No targets.  Stop.