Android.mk 文件语法规范
2010-07-20 13:26:00 来源:WEB开发网2. 模块描述变量
下面的变量用于向编译系统描述你的模块。你应该定义在'include $(CLEAR_VARS)'和'include $(BUILD_XXXXX)'之间。正如前面描写的那样,$(CLEAR_VARS是一个脚本,清除所有这些变量,除非在描述中显式注明。
(1) LOCAL_PATH: 这个变量用于给出当前文件的路径。你必须在Android.mk的开头定义,可以这样使用:
LOCAL_PATH := $(call my-dir)
这个变量不会被$(CLEAR_VARS)清除,因此每个Android.mk只需要定义一次(即使你在一个文件中定义了几个模块的情况下)。
(2) LOCAL_MODULE:
这是你模块的名字,它必须是唯一的,而且不能包含空格。你必须在包含任一的$(BUILD_XXXX)脚本之前定义它。模块的名字决定了生成文件的名字,例如,如果一个一个共享库模块的名字是
(3) LOCAL_SRC_FILES: 这是要编译的源代码文件列表。只要列出要传递给编译器的文件,因为编译系统自动为你计算依赖。注意源代码文件名称都是相对于LOCAL_PATH的,你可以使用路径部分,例如:
LOCAL_SRC_FILES := foo.c
toto/bar.c
注意:在生成文件中都要使用UNIX风格的斜杠(/).windows风格的反斜杠不会被正确的处理。
(4) LOCAL_CPP_EXTENSION: 这是一个可选变量,用来指定C++代码文件的扩展名,默认是'.cpp',但是你可以改变它,比如:
LOCAL_CPP_EXTENSION := .cxx
(5) LOCAL_C_INCLUDES : 路径的可选配置,是从根目录开始的,
all sources (C, C++ and Assembly). For example:
LOCAL_C_INCLUDES := sources/foo
Or even:
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../foo
需要在任何包含LOCAL_CFLAGS / LOCAL_CPPFLAGS标志之前。
(6) LOCAL_CFLAGS: 可选的编译器选项,在编译C代码文件的时候使用。这可能是有用的,指定一个附加的包含路径(相对于NDK的顶层目录),宏定义,或者编译选项。
重要信息:不要在Android.mk中改变 optimization/debugging级别,只要在Application.mk中指定合适的信息,就会自动地为你处理这个问题,在调试期间,会让NDK自动生成有用的数据文件。