這幾天,在寫Android.mk時,有時總想列印一些變數什麼的,echo不能用,就上網找辦法。
最後找了這麼一篇文章挺好的。
原文地址:http://blog.csdn.net/michaelpp/article/details/6249989
在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
這樣,想列印什麼變數,或者調用什麼別的命令應該是都可以的了。