免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 832 | 回复: 0
打印 上一主题 下一主题

U-boot-13.0-rc3 Makefile for lib_arm 分析(zhuan) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-06 10:05 |只看该作者 |倒序浏览
#
# Makefile in uboot/lib_arm
#
include $(TOPDIR)/config.mk
# 包含进顶层目录的config.mk文件
LIB    = $(obj)lib$(ARCH).a
# 表明库文件路径,$(obj)在顶层目录里面的config.mk里定义,
# $(ARCH)在顶层目录里面的Makefile里面定义,一般为arm,ppc,i386等
SOBJS    = _ashldi3.o _ashrdi3.o _divsi3.o _modsi3.o _udivsi3.o _umodsi3.o
# 表明汇编生成的目标文件
COBJS    = armlinux.o board.o \
      cache.o div0.o
# 表明C代码生成的目标文件
SRCS     := $(SOBJS:.o=.S) $(COBJS:.o=.c)
# 字符串替换,把字符串$SOBJS与字符串$COBJS中所有以.o结尾的字符串替换成分别替换成以.S .c结尾
# 其格式为$(var:a=b)或者是${var:a=b}
OBJS    := $(addprefix $(obj),$(SOBJS) $(COBJS))
#   $(addprefix ;,;)
#
#    名称:加前缀函数——addprefix。
#    功能:把前缀;加到;中的每个单词后面。
#    返回:返回加过前缀的文件名序列。
#    示例:$(addprefix src/,foo bar)返回值是“src/foo src/bar”。
$(LIB):    $(obj).depend $(OBJS)
    $(AR) $(ARFLAGS) $@ $(OBJS)
# 生成目标文件为$(LIB),依赖的文件为$(obj)下的.depend与$(OBJS)文件
# 生成该目标文件所使用的命令为$(AR) $(ARFLAGS) $@ $(OBJS)
# AR    = $(CROSS_COMPILE)ar定义在config.mk文件里面
# ifneq (,$(findstring s,$(MAKEFLAGS)))
# ARFLAGS = cr
# else
# ARFLAGS = crv
# endif
# "$@"表示所有的目标的挨个值,"$;
#
#    filename可以是当前操作系统Shell的文件模式(可以保含路径和通配符)
#
#
在include前面可以有一些空字符,但是绝不能是[Tab]键开始。include和;可以用一个或多个空格隔开。
举个例子,你有这样几个Makefile:a.mk、# b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了
e.mk和f.mk,那么,下面的语句:
#
#    include foo.make *.mk $(bar)
#
#    等价于:
#    include foo.make a.mk b.mk c.mk e.mk f.mk
# make命令开始时,会找寻include所指出的其它Makefile,并把其内容安置在当前的位置。就好像C/C++的#include指令一样。如果文件都没有指定绝对路径或是
# 相对路径的话,make会在当前目录下首先寻找,如果当前目录下没有找到,那么,make还会在下面的几个目录下找:
#    1、如果make执行时,有“-I”或“--include-dir”参数,那么make就会在这个参数所指定的目录下去寻找。
#    2、如果目录/include(一般是:/usr/local/bin或/usr/include)存在的话,make也会去找。
#
如果有文件没有找到的话,make会生成一条警告信息,但不会马上出现致命错误。它会继续载入其它的文件,一旦完成makefile的读取,
make会再重试这些没有找到,#
或是不能读取的文件,如果还是不行,make才会出现一条致命信息。如果你想让make不理那些无法读取的文件,而继续执行,你可以在include前加
一个减号“-”。  # 如:
#    -include ;
#    其表示,无论include过程中出现什么错误,都不要报错继续执行。和其它版本make兼容的相关命令是sinclude,其作用和这一个是一样的。
#########################################################################
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/75045/showart_1362013.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP