快乐虾
http://blog.youkuaiyun.com/lights_joy/
lights@hb165.com
本文适用于
binutils-2.18
configure –target=bfin-uclinux-gnu
Blackfin系列DSP
Cygwin gcc 3.4.4
欢迎转载,但请保留作者信息
1.1 ar$(EXEEXT)
这条规则定义为:
ar$(EXEEXT): $(ar_OBJECTS) $(ar_DEPENDENCIES)
@rm -f ar$(EXEEXT)
$(LINK) $(ar_LDFLAGS) $(ar_OBJECTS) $(ar_LDADD) $(LIBS)
在目标生成后将它们链接为objdump.exe。
1.1.1 $(ar_OBJECTS)
这个变量定义为:
am_ar_OBJECTS = arparse.$(OBJEXT) arlex.$(OBJEXT) ar.$(OBJEXT) /
not-ranlib.$(OBJEXT) arsup.$(OBJEXT) rename.$(OBJEXT) /
binemul.$(OBJEXT) emul_$(EMULATION).$(OBJEXT) $(am__objects_1)
ar_OBJECTS = $(am_ar_OBJECTS)
am__objects_1 = bucomm.$(OBJEXT) version.$(OBJEXT) filemode.$(OBJEXT)
其中am__objects_1定义的目标已经生成,故有以下依赖关系:
1.1.1.1 arparse.$(OBJEXT)
这条规则定义为:
arparse.o:
$(COMPILE) -c $< $(NO_WERROR)
且有以下依赖关系:
arparse.o: arparse.c sysdep.h $(INCDIR)/ansidecl.h /
../bfd/bfdver.h config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h /
$(INCDIR)/ansidecl.h $(INCDIR)/symcat.h arsup.h
没什么,直接编译即可。
1.1.1.2 arlex.$(OBJEXT)
这条规则定义为:
arlex.o:
$(COMPILE) -c $< $(NO_WERROR)
且有以下依赖关系:
arlex.o: arlex.c $(INCDIR)/ansidecl.h $(INCDIR)/libiberty.h /
$(INCDIR)/ansidecl.h arparse.h
没什么,直接编译即可。
1.1.1.3 ar.$(OBJEXT)
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
ar.o: ar.c sysdep.h $(INCDIR)/ansidecl.h ../bfd/bfdver.h /
config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h $(INCDIR)/ansidecl.h /
$(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h /
$(INCDIR)/progress.h $(INCDIR)/aout/ar.h $(BFDDIR)/libbfd.h /
$(INCDIR)/hashtab.h bucomm.h arsup.h $(INCDIR)/filenames.h /
binemul.h
没什么,直接编译即可。
1.1.1.4 not-ranlib.$(OBJEXT)
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
not-ranlib.o: not-ranlib.c
没什么,直接编译即可。
1.1.1.5 arsup.$(OBJEXT)
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
arsup.o: arsup.c sysdep.h $(INCDIR)/ansidecl.h ../bfd/bfdver.h /
config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h $(INCDIR)/ansidecl.h /
$(INCDIR)/symcat.h $(INCDIR)/libiberty.h $(INCDIR)/ansidecl.h /
$(INCDIR)/filenames.h bucomm.h arsup.h
没什么,直接编译即可。
1.1.1.6 rename.$(OBJEXT)
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
rename.o: rename.c sysdep.h $(INCDIR)/ansidecl.h ../bfd/bfdver.h /
config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h $(INCDIR)/ansidecl.h /
$(INCDIR)/symcat.h bucomm.h
没什么,直接编译即可。
1.1.1.7 binemul.$(OBJEXT)
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
binemul.o: binemul.c binemul.h sysdep.h $(INCDIR)/ansidecl.h /
../bfd/bfdver.h config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h /
$(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h
没什么,直接编译即可。
1.1.1.8 emul_$(EMULATION).$(OBJEXT)
在这里:
EMULATION = vanilla
这个目标由通用规则完成:
.c.o:
$(COMPILE) -c $<
且有以下依赖关系:
emul_vanilla.o: emul_vanilla.c binemul.h sysdep.h $(INCDIR)/ansidecl.h /
../bfd/bfdver.h config.h $(INCDIR)/fopen-same.h ../bfd/bfd.h /
$(INCDIR)/ansidecl.h $(INCDIR)/symcat.h bucomm.h
没什么,直接编译即可。
1.1.2 $(ar_DEPENDENCIES)
这个变量定义为:
ar_DEPENDENCIES = $(LIBINTL_DEP) $(LIBIBERTY) $(BFDLIB)
LIBINTL_DEP =
LIBIBERTY = ../libiberty/libiberty.a
BFDLIB = ../bfd/libbfd.la
所需要的目标均已生成,略过。
参考资料
binutils-2.18/libiberty/Makefile分析( 2008-8-27 )
binutils-2.18/bfd/Makefile分析( 2008-8-28 )
binutils-2.18/opcodes/Makefile分析( 2008-8-29 )