Android.mk常见的构建类型
在我们的Android源码目录下,在build/core里
有一个叫config.mk的文件。
里面就有各种构建类型
BUILD_HOST_STATIC_LIBRARY:= $(BUILD_SYSTEM)/host_static_library.mk
BUILD_HOST_SHARED_LIBRARY:= $(BUILD_SYSTEM)/host_shared_library.mk
BUILD_STATIC_LIBRARY:= $(BUILD_SYSTEM)/static_library.mk
BUILD_RAW_STATIC_LIBRARY := $(BUILD_SYSTEM)/raw_static_library.mk
BUILD_SHARED_LIBRARY:= $(BUILD_SYSTEM)/shared_library.mk
BUILD_EXECUTABLE:= $(BUILD_SYSTEM)/executable.mk
BUILD_RAW_EXECUTABLE:= $(BUILD_SYSTEM)/raw_executable.mk
BUILD_HOST_EXECUTABLE:= $(BUILD_SYSTEM)/host_executable.mk
BUILD_PACKAGE:= $(BUILD_SYSTEM)/package.mk
BUILD_PHONY_PACKAGE:= $(BUILD_SYSTEM)/phony_package.mk
BUILD_HOST_PREBUILT:= $(BUILD_SYSTEM)/host_prebuilt.mk
BUILD_PREBUILT:= $(BUILD_SYSTEM)/prebuilt.mk
BUILD_MULTI_PREBUILT:= $(BUILD_SYSTEM)/multi_prebuilt.mk
BUILD_JAVA_LIBRARY:= $(BUILD_SYSTEM)/java_library.mk
BUILD_STATIC_JAVA_LIBRARY:= $(BUILD_SYSTEM)/static_java_library.mk
BUILD_HOST_JAVA_LIBRARY:= $(BUILD_SYSTEM)/host_java_library.mk
BUILD_DROIDDOC:= $(BUILD_SYSTEM)/droiddoc.mk
BUILD_COPY_HEADERS := $(BUILD_SYSTEM)/copy_headers.mk
BUILD_NATIVE_TEST := $(BUILD_SYSTEM)/native_test.mk
BUILD_HOST_NATIVE_TEST := $(BUILD_SYSTEM)/host_native_test.mk
BUILD_SHARED_TEST_LIBRARY := $(BUILD_SYSTEM)/shared_test_lib.mk
BUILD_HOST_SHARED_TEST_LIBRARY := $(BUILD_SYSTEM)/host_shared_test_lib.mk
BUILD_STATIC_TEST_LIBRARY := $(BUILD_SYSTEM)/static_test_lib.mk
BUILD_HOST_STATIC_TEST_LIBRARY := $(BUILD_SYSTEM)/host_static_test_lib.mk
BUILD_NOTICE_FILE := $(BUILD_SYSTEM)/notice_files.mk
BUILD_HOST_DALVIK_JAVA_LIBRARY := $(BUILD_SYSTEM)/host_dalvik_java_library.mk
BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY := $(BUILD_SYSTEM)/host_dalvik_static_java_library.mk
我们所熟悉的有构建apk
BUILD_PACKAGE,构建可执行文件BUILD_EXECUTABLE,以及构建jar包BUILD_STATIC_JAVA_LIBRARY
BUILD_HOST_STATIC_LIBRARY
这里的HOST,指的是我们的编译机器,跟平台有关系。
编译静态库
BUILD_HOST_SHARED_LIBRARY
同上,编译共享库
BUILD_STATIC_LIBRARY
编译静态库,这个则是Android系统的
BUILD_RAW_STATIC_LIBRARY
编译原生的静态库
BUILD_SHARED_LIBRARY
编译共享库
BUILD_EXECUTABLE
编译可执行文件
BUILD_RAW_EXECUTABLE
加个RAW,就不会去进行EXECUTABLE的编译校验了.
BUILD_HOST_EXECUTABLE
编译当前系统的可执行文件
BUILD_PACKAGE
编译App
BUILD_PHONY_PACKAGE
定义一个不能实际编译的虚假模块。可以指定依赖。
BUILD_HOST_PREBUILT
处理一个或多个主机上使用的已编译文件,该文件的实现依赖 multi_prebuilt.mk。
BUILD_PREBUILT
处理一个已经编译好的文件( 例如Jar包/apk)。
BUILD_MULTI_PREBUILT
处理一个或多个已编译文件,该文件的实现依赖prebuilt.mk。
BUILD_JAVA_LIBRARY
编译共享Jar包
BUILD_STATIC_JAVA_LIBRARY
编译共享Jar包
BUILD_HOST_JAVA_LIBRARY
编译本机共享Jar包
BUILD_DROIDDOC
编译生成droiddoc或javadoc文件。
BUILD_COPY_HEADERS
复制相关的头文件,被static_library.mk等文件使用,通常不直接include。
BUILD_NATIVE_TEST
编译设备上的可执行文件测试。
BUILD_HOST_NATIVE_TEST
编译本机上的可执行文件测试。
BUILD_SHARED_TEST_LIBRARY
编译共享测试库
BUILD_HOST_SHARED_TEST_LIBRARY
编译本机共享测试库
BUILD_STATIC_TEST_LIBRARY
构建静态的测试库
BUILD_HOST_STATIC_TEST_LIBRARY
构建本机静态的测试库
BUILD_NOTICE_FILE
生成版权相关的NOTICE文件。
BUILD_HOST_DALVIK_JAVA_LIBRARY
编译主机上的Dalvik共享Java库。
BUILD_HOST_DALVIK_STATIC_JAVA_LIBRARY
编译主机上的Dalvik静态Java库。