原创 【连载】Sunplus DVD软件Makefile详解(三)

2009-11-28 21:46 2627 6 6 分类: MCU/ 嵌入式

Sunplus DVD软件Makefile详解(三)<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


         xluoly@hotmail.com


子模块的Makefile


下面以system目录下Makefile为例:


1  #


2  # Makefile system


3  # Other system related files


4  #


5  sinclude ../Makefile.sutl


6 


7  GOAL     = libsys.a


8 


9  INCLUDE_DIR  = -<?xml:namespace prefix = st1 ns = "urn:schemas-microsoft-com:office:smarttags" />I. -I../ -I../h -I../ir_vfd -I../emu/ -I../dsp3 -I../fs


10 CFLAGS_COMPILE   = -ffunction-sections


11


12 # generic flags


13 SOURCES  = \


14      reset.c \


15      sysmain.c \


16      memcfg.c \


17      polling.c \


18      polling_fast.c \


19      util.c \


20      hwif.c \


21      sleep.c \


22


23 DEPENDS_C    = \


24      $(addprefix MIPS/,$(SOURCES:.c=.d))


25


26 DEPENDS  = $(DEPENDS_C)


27


28 OBJS     = $(DEPENDS:.d=.o)


29 ASMS     = $(DEPENDS:.d=.s))


30 DISASMS  = $(DEPENDS:.d=.dis))


31


32 # main target


33 all: $(GOAL)


34     @$(ECHO) \"$(GOAL) made\"


35


36 $(GOAL): MIPS $(OBJS) force


37     @$(ECHO) \"update library..\"


38     @$(XAR) -cr $(GOAL) $(OBJS)


39


40 ifneq ($(MAKECMDGOALS),clean)


41 sinclude $(DEPENDS)


42 endif


43


5)通过根目录下的文件将核心Makefile文件(Makefile.ult)包含进来。


7)定义编译过程的最终输出文件的名称为libsys.a


9)定义Source Code包含文件的搜索路径。


10)列举输入的Source Code文件名。


2326)指明在目录MIPS下为每个输入的.c文件建立一个同名的.d文件(将后缀名由.c替换成.d)。每个.d的生成规则定义在文件Makefile.ult中第98101行。这里是利用gcc-M参数为每个输入文件自动生成依赖关系的策略。每个输入文件的依赖关系保存在与它同名的.d文件中,然后将所有.d文件包含进Makefile文件中(见第41行),这样就相当于在Makefile中为每个输入文件指明了它的依赖关系。如果不是采用这种策略,就必须手工在Makefile文件中为每个输入文件写明依赖关系,文件很少的时候还行得通,项目中文件很多的时候会把人累死的。


28)指明在目录MIPS下为每个输入的.c文件建立一个同名的.o文件(将每个.c对应的.d后缀名替换成.o)。


29)为每个.c文件分别生成一个对应的.s.dis文件,实际没有用到(只定义了规则没有真正执行)。


3238)定义默认目标的依赖关系,定义输出文件的依赖关系和编译命令。我们前面说过,目标all总会是成为默认目标。$(GOAL)是目标all的依赖,所以目标$(GOAL)也会得到执行。$(OBJS)$(GOAL)的依赖,目标$(OBJS)也会得到执行。$(OBJS)是前面定义的所有.o文件,他们的依赖关系和编译命令定义在文件Makefile.ult中第103105行。编译生成这些.o文件后,再借助Binutils中的ar工具将他们打包在一起,形成前面定义的文件libsys.a


 

『未完,待续...』

PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
6
关闭 站长推荐上一条 /3 下一条