
makefile
monkea123
这个作者很懒,什么都没留下…
展开
-
linux 顶层 Makefile 详解
Linux 的顶层 Makefile 和 uboot 的顶层 Makefile 非常相似,因为 uboot 参考了 Linux,前 602行几乎一样,所以前面部分我们大致看一下就行了。1、版本号顶层 Makefile 一开始就是 Linux 内核的版本号2、 MAKEFLAGS 变量MAKEFLAGS 变量设置如下所示:。3、命令输出Linux 编译的时候也可以通过“V=1”来输出...原创 2019-12-05 20:17:26 · 1218 阅读 · 0 评论 -
uboot源码分析二 顶层makefile源码分析二
调用 scripts/Kbuild.include主 Makefile 会调用文件 scripts/Kbuild.include 这个文件交叉编译工具变量设置上面我们只是设置了 CROSS_COMPILE 的名字,但是交叉编译器其他的工具还没有设置导出其他变量接下来在顶层 Makefile 会导出很多变量,)ARCH CPU BOARD VENDOR SOC CPUDIR BOAR...原创 2019-11-14 21:42:05 · 247 阅读 · 0 评论 -
makefile的wildcard函数
在Makefile规则中,通配符会被自动展开。但在变量的定义和函数引用时,通配符将失效。这种情况下如果需要通配符有效,就需要使用函数“wildcard”,它的用法是:$(wildcard PATTERN…) 。在Makefile中,它被展开为已经存在的、使用空格分开的、匹配此模式的所有文件列表。如果不存在任何符合此模式的文件,函数会忽略模式字符并返回空。需要注意的是:这种情况下规则中通配...转载 2019-11-14 21:30:41 · 380 阅读 · 0 评论 -
makefile 自动生成依赖性
在 Makefile 中, 我们的依赖关系可能会需要包含一系列的头文件,比如, 如果我们的 main.c中有一句“#include “defs.h””,那么我们的依赖关系应该是:main.o : main.c defs.h但是,如果是一个比较大型的工程,你必需清楚哪些 C 文件包含了哪些头文件,并且,你在加入或删除头文件时,也需要小心地修改 Makefile,这是一个很没有维护性的工作。...原创 2019-11-14 20:51:39 · 313 阅读 · 0 评论 -
makefile 静态模式
静态模式可以更加容易地定义多目标的规则,可以让我们的规则变得更加的有弹性和灵活。我们还是先来看一下语法:<targets …>: : <prereq-patterns …>…targets 定义了一系列的目标文件,可以有通配符。是目标的一个集合。target-parrtern 是指明了 targets 的模式,也就是的目标集模式。prereq-parrter...原创 2019-11-14 20:46:22 · 190 阅读 · 0 评论 -
makefile总览
makefile 中,目标文件(target)包含:执行文件 edit 和中间目标文件(*.o),依赖文件(prerequisites)就是冒号后面的那些 .c 文件和 .h 文件。每一个 .o 文件都有一组依赖文件,而这些 .o 文件又是执行文件 edit 的依赖文件。依赖关系的实质上就是说明了目标文件是由哪些文件生成的,换言之,目标文件是哪些文件更新的。在定义好依赖关系后,后续的那一行定义了...原创 2019-11-14 20:33:00 · 207 阅读 · 0 评论 -
makefile 引用其它的 Makefile
在 Makefile 使用 include 关键字可以把别的 Makefile 包含进来,这很像 C 语言的#include,被包含的文件会原模原样的放在当前文件的包含位置。include 的语法是:include filename 可以是当前操作系统 Shell 的文件模式(可以保含路径和通配符) 在 include前面可以有一些空字符,但是绝不能是[Tab]键开始。include 和可以用...原创 2019-11-14 20:01:42 · 426 阅读 · 0 评论 -
makefile :=
在Makefile中我们经常看到 = := ?= +=这几个赋值运算符,那么他们有什么区别呢?我们来做个简单的实验新建一个Makefile,内容为:ifdef DEFINE_VREVRE = “Hello World!”elseendififeq ($(OPT),define)VRE ?= “Hello World! First!”endififeq ($(OPT),add)V...转载 2019-11-14 19:58:47 · 775 阅读 · 0 评论 -
make条件判断ifeq,ifneq,ifdef,ifndef
使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支。条件表达式可以是比较变量的值,或是比较变量和常量的值。一、示例下面的例子,判断$(CC)变量是否“gcc”,如果是的话,则使用GNU函数编译目标。libs_for_gcc = -lgnu normal_libs =foo: ...转载 2019-11-14 19:17:47 · 911 阅读 · 0 评论 -
makefile '@' '$' '$$' '-' '-n ' 使用小结
‘@’ 符号的使用通常makefile会将其执行的命令行在执行前输出到屏幕上。如果将‘@’添加到命令行前,这个命令将不被make回显出来。例如:@echo --compiling module----; // 屏幕输出 --compiling module----echo --compiling module----; // 没有@ 屏幕输出echo --compiling modul...转载 2019-11-14 19:15:13 · 329 阅读 · 0 评论