android.mk 基础详解

首先看下android.mk内容包含的基本信息
打开工程目录下external/yun_log_monitor/Android.mk,内容如下:

#
#    = 是最基本的赋值
#    := 是覆盖之前的值
#    ?= 是如果没有被赋值过就赋予等号后面的值
#    += 是添加等号后面的值
#    编译系统提供的宏函数 my-dir 将返回当前目录(Android.mk 文件本身所在的目录)的路径
LOCAL_PATH := $(call my-dir)
$(warning >>> LOCAL_PATH = $(LOCAL_PATH))    #打印LOCAL—PATH路径LOCAL_PATH = external/yun_log_monitor/
#
#
#    声明 CLEAR_VARS 变量,其值由编译系统提供,在描述每个模块之前,必须声明(重新声明)此变量
#    CLEAR_VARS 变量指向一个特殊的 GNU Makefile,后者会清除许多 LOCAL_XXX 变量,
#    例如 LOCAL_MODULE、LOCAL_SRC_FILES 和 LOCAL_STATIC_LIBRARIES。
#    请注意,GNU Makefile 不会清除 LOCAL_PATH
#    这个清理动作是必须的,因为所有的编译控制文件由同一个GNU Make解析和执行,其变量是全局的。所以清理后才能避免相互影响
include $(CLEAR_VARS)

#    要编译到模块中的 C 或 C++ 源文件
LOCAL_SRC_FILES := \
            yun_log_monitor.c\
            xxx.c\
            xxxxxx.c

LOCAL_SHARED_LIBRARIES :=
LOCAL_CFLAGS :=

#    LOCAL_MODULE 变量存储您要编译的模块的名称,每个模块名称必须唯一,且不含任何空格
LOCAL_MODULE := yun_log_monitor

#    生成模块的路径
LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)

#    生成模块的标记
LOCAL_MODULE_TAGS := debug

#    BUILD_SHARED_LIBRARY:是Build System提供的一个变量,指向一个GNU Makefile Script。
#    它负责收集自从上次调用 include $(CLEAR_VARS)  后的所有LOCAL_XXX信息。并决定编译为什么。
#    BUILD_STATIC_LIBRARY:编译为静态库。
#    BUILD_SHARED_LIBRARY :编译为动态库
#    BUILD_EXECUTABLE:编译为Native C可执行程序    
include $(BUILD_EXECUTABLE)

参考资料:
android编译系统makefile(Android.mk)写法.
Android.mk 文件语法详解.
Android mk详解.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值