本例中使用Uboot工程中的lib_arm目录中make文件,目录中的make文件用于生成库文件,名字是lib$(ARCH).a,其中$(ARCH)由当前的体系结构名称替换。Uboot中其它的子目录中的Makefile大体与这个文件格式相同。
# 包含顶层目录的config.mk文件
include $(TOPDIR)/config.mk
# 变量声明
LIB = lib$(ARCH).a
# 汇编代码生成的目标文件
AOBJS = _udivsi3.o _umodsi3.o
# C代码生成的目标文件
COBJS = armlinux.o board.o cache.o div0.o
# 目标文件总和,用于产生库文件
OBJS = $(AOBJS) $(COBJS)
# 伪目标all依赖于$(LIB)的生成
all: $(LIB)
# 生成目标为$(LIB),其依赖文件是.depend和$(OBJS),使用$(AR)命令产生库。
$(LIB): .depend $(OBJS)
$(AR) crv $@ $(OBJS)
#######################################################################
# .depend文件的依赖文件是Makefile、目标文件中指定的.S和.c文件
# $(COBJS:.o=.c)命令是将COBJS中的变量名称的.o全部替换成.c。
# 使用$(CC)的-M选项生成.depend文件
.depend: Makefile $(AOBJS:.o=.S) $(COBJS:.o=.c)
$(CC) -M $(CFLAGS) $(AOBJS:.o=.S) $(COBJS:.o=.c) > $@
# 将上面产生的.depend文件包含到本Makefile中,相当于 -include .depend
sinclude .depend
#######################################################################
(本文章发表于psbec的个人blog,未经本人许可,不得用于商业用途。任何个人、媒体、其他网站不得私自抄袭;网络媒体转载请注明出处,增加原文链接,否则属于侵权行为。如有任何问题,请留言或者发邮件给psbec,地址)
阅读(1393) | 评论(0) | 转发(0) |