安卓源码分析(一)Andriod.mk


down下安卓源码,我们可以看几乎每一个目录都会出现一个Andriod.mk的文件,linux源码是用一个Makefile文件,对我这种新手来说显得阅读起来更简单了。

随便打开一个Andriod.mk看一下。这里是rild程序

LOCAL_PATH:= $(call my-dir)  
#返回当前目录的路径,宏函数‟my-dir‟, 由编译系统提供,用于返回当前路径
include $(CLEAR_VARS)
#清楚LOCAL_XXX变量,除了LOCAL_PATH,宏函数‟CLEAR_VARS‟, 由编译系统提供
LOCAL_SRC_FILES:= \
rild.c
#源文件,不需要.h编译系统会自动找


#这个模块在运行时要依赖的共享库模块列表,libcutils 在这里的主要作用是打印日志,libril是rild需要的库
LOCAL_SHARED_LIBRARIES := \
libcutils \
libril


ifeq ($(TARGET_ARCH),arm)
LOCAL_SHARED_LIBRARIES += libdl
endif # arm


LOCAL_CFLAGS := -DRIL_SHLIB
#可选的编译器选项,在编译C代码文件的时候使用。 这可能是有用的,指定一个附加的包含路径(相对于NDK的顶层目录),宏定义,或者编译选项

#-D 应该就是gcc -D的用法是一样的 宏


LOCAL_MODULE:= rild
#以标识你在Android.mk文件中描述的每个模块


include $(BUILD_EXECUTABLE)
#说明编译出来的是可执行文件,这里还可以是共享库、静态库等。


你可能感兴趣的:(安卓源码分析(一)Andriod.mk)