这几天,在写Android.mk时,有时总想打印一些变量什么的,echo不能用,就上网找办法。

最后找了这么一篇文章挺好的。

在Android的编译脚本中有很多示例,比如在 build/core/main.mk 文件中:

ifeq ($(BUILD_OS),linux)

build_arch := $(shell uname -m)

ifneq (64,$(findstring 64,$(build_arch)))

$(warning ************************************************************)

$(warning You are attempting to build on a 32-bit system.)

$(warning Only 64-bit build environments are supported beyond froyo/2.2.)

$(warning ************************************************************)

$(error stop)

endif

endif

ifneq ($(HOST_OS),windows)

ifneq ($(HOST_OS)-$(HOST_ARCH),darwin-ppc)

# check for a case sensitive file system

ifneq (a,$(shell mkdir -p $(OUT_DIR) ; /

echo a > $(OUT_DIR)/casecheck.txt; /

echo B > $(OUT_DIR)/CaseCheck.txt; /

cat $(OUT_DIR)/casecheck.txt))

$(warning ************************************************************)

$(warning You are building on a case-insensitive filesystem.)

$(warning Please move your source tree to a case-sensitive filesystem.)

$(warning ************************************************************)

$(error Case-insensitive filesystems not supported)

endif

endif

endif

这样,想打印什么变量,或者调用什么别的命令应该是都可以的了。

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐