我们常常需要在makefile/android.mk文件中添加打印信息来显示某个变量的值,或者用来控制makefile/android.mk的执行过程。makefile/android.mk文件都遵循gnu make的语法规则,查看gun make手册可知,gnu make提供了两个函数用来输出打印信息或者控制make的执行过程,分别是:
$(error TEXT......)
这个函数被执行的时候,会输出:TEXT......,并且终止make的执行。
$(warning TEXT......)
这个函数被执行的时候,会输出:TEXT......,但是make会继续执行下去。
其中“TEXT.....”可以替换为对变量的取值来输出变量的信息,例如:$(warning $(VAR)),那么该函数执行的时候会输出变量VAR的值。
当某个Android.mk中包含如下:
LOCAL_PATH := $(call my-dir) include $(CLEAR_VARS) LOCAL_C_INCLUDES += \ $(LOCAL_PATH) \ $(JNI_H_INCLUDE) \
我们想查看 $(LOCAL_PATH)或者$(JNI_H_INCLUDE)的值是什么.我们可以在上面的内容最后,加一句
#这一句的意思是打印变量$(JNI_H_INCLUDE)的值 $(warning " JNI_H_INCLUDE = $(JNI_H_INCLUDE)")
我们可以在命令行输入如下命令:
mm >>temp.txt
上面的命令会把一大堆打印,重定位到temp.txt文件中,并只显示
$(warning " JNI_H_INCLUDE = $(JNI_H_INCLUDE)")这一句中变量的值 输出如下:
packages/apps/swfDec_new/Android.mk:32: "JNI_H_INCLUDE = libnativehelper/include/nativehelper"
这就告诉我们$(JNI_H_INCLUDE )指向的路径是:libnativehelper/include/nativehelper
当搞不清楚Android.mk的变量指向那时,这个很方便。
转载于:http://www.cnblogs.com/activity-life/p/3639279.html