`

Android源码编译中的Makefile文件

阅读更多

1.和大多shell文件一样,makefile中的#表示注释,一般都是#加要注释的内容。
2.ifdef...endif,表示如果定义了变量。例如:

# Only use ANDROID_BUILD_SHELL to wrap around bash.
ifdef ANDROID_BUILD_SHELL
SHELL := $(ANDROID_BUILD_SHELL)
else
SHELL := /bin/bash
endif

3.函数调用,很像变量的使用,也是以“$”来标识的,其语法如下:
    $( )
或是
    ${ }
这里,就是函数名,make支持的函数不多。是函数的参数,参数间以逗号“,”分隔,而函数名和参数之间以“空格”分隔。函数调用以“$”开头,以圆括号或花括号把函数名和参数括起。感觉很像一个变量,是不是?函数中的参数可以使用变量,为了风格的统一,函数和变量的括号最好一样,如使用“$(subst a,b,$(x))”这样的形式,而不是“$(subst a,b,${x})”的形式。因为统一会更清楚,也会减少一些不必要的麻烦。

$(ANDROID_BUILD_SHELL),就是取得ANDROID_BUILD_SHELL的值。
4.a := b,将b的值赋给a。
5..SUFFIXES:是来定义或是删除后缀规则的。

.SUFFIXES: .hack .win
把后缀.hack和.win加入后缀列表中的末尾。
.SUFFIXES:            # 删除默认的后缀
.SUFFIXES: .c .o .h   # 定义自己的后缀
先清楚默认后缀,后定义自己的后缀列表。

6..DELETE_ON_ERROR
如果在Makefile中存在特殊目标“.DELETE_ON_ERROR”,make在执行过程中,如果规则的命令执行错误,将删除已经被修改的目标文件。

分享到:
评论

相关推荐

    android编译系统makefile(Android.mk)写法

    `Android.mk`文件中可以定义多个编译模块,每个模块都由`include $(CLEAR_VARS)`开始,然后定义模块相关的变量,最后以`include $(BUILD_XXX)`结束。`$(CLEAR_VARS)`宏用于清除所有与编译相关的LOCAL_XXX变量,保留...

    Android源码编译参考文档.zip

    在Android源码编译过程中,开发者需要了解如何修改这些配置文件以定制自己的构建。例如,添加新模块、改变编译选项或优化性能。同时,理解如何使用`mm`(编译单个模块)和`m`(编译整个项目)等命令也非常重要。 ...

    Android 源码编译过程

    Android源码编译过程是Android开发中的核心环节,它涉及到一系列复杂的步骤,旨在将源代码转化为可以在Android设备上运行的二进制系统映像。这个过程对于开发者来说至关重要,因为它允许自定义和优化Android系统,以...

    Android源码编译文档

    总的来说,Android源码编译是一个复杂而深入的过程,涉及多方面的技术知识。从源码下载、环境配置到编译和镜像制作,每个环节都需要开发者具备扎实的Linux基础、Git操作技能以及对Android系统结构的深刻理解。通过...

    Android源码编译make的错误处理

    ### Android源码编译make的错误处理 #### 一、概览 在进行Android源码编译的过程中,可能会遇到各种各样的错误。本文主要针对在Linux环境下编译Android 4.0.1版本源码时遇到的一些典型问题,提供详细的解决方案。 ...

    android源码上编译APK

    在Android源码上编译APK是一个复杂但必要的过程,特别是当你需要开发具有系统权限的应用,例如修改系统时间或实现关机功能。以下是对整个流程的详细解释: 首先,你需要编译Android源码。这通常涉及到获取源码、...

    Android源码编译流程借鉴.pdf

    在Eclipse开发环境中,Android源码编译后的调试工作也非常重要。Eclipse提供了几个关键视图:DDMS(Dalvik Debug Monitor Service)用于查看设备状态和内存信息;Java编辑视图是日常编码的主要界面;而Debug视图则在...

    android源码编译及rom制作.pptx

    在《android源码编译及rom制作.pptx》这份文档中,主要讲解了如何进行Android源码的编译以及ROM的制作过程。这一过程对于那些希望深入了解Android操作系统工作原理、进行定制化开发或者想要为自己的设备创建个性化...

    AndroidStudio 编译C/C++文件生成SO文件

    为了编写和编译C/C++代码,我们需要在`build.gradle`文件中配置NDK支持。打开`app/build.gradle`,在`defaultConfig`块中添加以下代码: ```groovy externalNativeBuild { ndkBuild { path 'src/main/jni/Android...

    Android应用源码之系统源码获取及编译.rar

    本文将详细介绍如何获取和编译Android系统的源码,以及在这个过程中可能遇到的关键知识点。 首先,获取Android系统源码通常需要通过Android开放源代码项目(AOSP)的官方仓库进行。你需要在本地设置一个Git环境,并...

    android源码目录结构

    * Makefile:makefile 文件,用于编译 Android 源码。 * bionic:bionic C 库,提供了基本的系统调用和库函数。 * bootable:启动引导相关代码,负责 Android 系统的启动过程。 * build:存放系统编译规则及 generic...

    libusb 源码(可在external中编译,含android.mk)

    【压缩包子文件的文件名称列表】中的"external"可能是指Android源码树中的一个目录,通常包含用于构建Android系统的第三方库和组件。在这个目录下,可以找到libusb源码的相关构建脚本和配置文件,如`android.mk`,它...

    android源码下编译jni示例项目代码

    `mm`是Android源码树中的一个脚本,它会自动定位并运行`Android.mk`文件,构建指定的模块。 - 编译完成后,会在`out`目录下生成对应的`.so`文件,这个文件将被Java代码加载并调用。 5. **Java层与JNI交互**: - ...

    安卓Android源码——系统源码获取及编译.zip

    Android源码编译完成后,生成的系统映像可以烧录到设备上进行测试,也可以通过模拟器运行。这需要使用fastboot和adb工具,通过命令将系统映像传输到设备,并进行刷机。 对于初学者,理解和编译Android源码可能需要...

    android源码编译

    在Ubuntu环境下编译Android源码是一项复杂而关键的任务,它涉及...务必耐心细致,因为Android源码编译涉及的内容广泛且复杂。一旦成功编译,你将获得一个完整的Android系统镜像,可用于自定义设备或进一步的开发研究。

    Android系统源码的编译和分析.zip

    这个压缩包"Android系统源码的编译和分析.zip"包含三个重要的文件:Android源码分析.md、Android源码编译.md、Android源码下载.md,这些文件将帮助我们全面了解如何获取、编译以及解析Android的源代码。 首先,我们...

    Android编译过程详解

    envsetup.sh 文件是 Android 编译过程中最重要的文件之一,该文件包含了多个函数,用于设置环境变量、检查产品和变量、设置文件路径、打印配置等。这些函数包括: * help():显示帮助信息 * get_abs_build_var():...

    android10以上源码中编译java及UI代码

    在Android 10及以上版本的源码中,构建Java代码和UI组件的过程相较于之前的版本有了一些变化,主要是引入了两种新的编译方式:Android.mk和Android.bp。这两种编译方式都是用于构建Android系统的模块,但它们各有...

Global site tag (gtag.js) - Google Analytics