快乐虾
http://blog.csdn.net/lights_joy/
本文适用于
gcc- 4.3.1
configure –target=bfin-uclinux-gnu
Blackfin系列DSP
Cygwin gcc 3.4.4
欢迎转载,但请保留作者信息
这个目标并不是放在gcc/Makefile中,而是在gcc/objc/Make-lang.in文件中,然后在gcc/Makefile中有这个的语句:
LANG_MAKEFRAGS = $(srcdir)/ada/Make-lang.in $(srcdir)/cp/Make-lang.in $(srcdir)/fortran/Make-lang.in $(srcdir)/java/Make-lang.in $(srcdir)/objc/Make-lang.in $(srcdir)/objcp/Make-lang.in $(srcdir)/treelang/Make-lang.in
ifneq ($(LANG_MAKEFRAGS),)
include $(LANG_MAKEFRAGS)
endif
这样就包含了gcc/java/Make-lang.in。在此文件中是这样定义java这条规则的:
objc: cc1obj$(exeext)
cc1obj$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o $(BACKEND) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ /
$(OBJC_OBJS) $(C_AND_OBJC_OBJS) cc1obj-checksum.o /
$(BACKEND) $(LIBS) $(GMPLIBS)
最终的结果将链接生成cc1obj.exe文件。
这个变量定义为:
OBJC_OBJS = objc/objc-lang.o objc/objc-act.o
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
objc/objc-lang.o : objc/objc-lang.c /
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) /
$(C_TREE_H) $(DIAGNOSTIC_H) /
$(GGC_H) langhooks.h $(LANGHOOKS_DEF_H) $(C_COMMON_H) gtype-objc.h /
c-objc-common.h objc/objc-act.h $(TREE_GIMPLE_H)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
objc/objc-act.o : objc/objc-act.c /
$(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) $(TREE_H) $(RTL_H) $(TM_P_H) /
$(EXPR_H) $(TARGET_H) $(C_TREE_H) $(DIAGNOSTIC_H) toplev.h $(FLAGS_H) /
objc/objc-act.h input.h $(FUNCTION_H) output.h debug.h langhooks.h /
$(LANGHOOKS_DEF_H) $(HASHTAB_H) $(C_PRAGMA_H) gt-objc-objc-act.h /
$(TREE_GIMPLE_H)
由于所需要的目标都已经生成,直接编译即可。
这个变量定义为:
C_AND_OBJC_OBJS = attribs.o c-errors.o c-lex.o c-pragma.o c-decl.o c-typeck.o /
c-convert.o c-aux-info.o c-common.o c-opts.o c-format.o c-semantics.o /
c-incpath.o cppdefault.o c-ppoutput.o c-cppbuiltin.o prefix.o /
c-objc-common.o c-dump.o c-pch.o c-parser.o $(C_TARGET_OBJS) /
c-gimplify.o tree-mudflap.o c-pretty-print.o c-omp.o
由于所需要的目标都已经生成,直接略过。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
cc1obj-checksum.o : cc1obj-checksum.c
cc1obj-checksum.c : cc1obj-dummy$(exeext) build/genchecksum$(build_exeext)
build/genchecksum$(build_exeext) cc1obj-dummy$(exeext) > $@
在这里genchecksum.exe已经生成,因而需要生成cc1obj-dummy.exe,这个文件的依赖关系为:
cc1obj-dummy$(exeext): $(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o $(BACKEND) $(LIBDEPS)
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ /
$(OBJC_OBJS) $(C_AND_OBJC_OBJS) dummy-checksum.o /
$(BACKEND) $(LIBS) $(GMPLIBS)
所有目标均已生成,直接链接即可。
此目标在生成cc1.exe时即已生成,略过。
此目标在生成cc1.exe时即已生成,略过。
host-i686-pc-cygwin/libiberty/Makefile解析( 2008-8-19 )
host-i686-pc-cygwin/fixincludes/Makefile分析( 2008-8-19 )
host-i686-pc-cygwin/zlib/Makefile分析( 2008-8-19 )
host-i686-pc-cygwin/libcpp/Makefile分析( 2008-8-19 )
host-i686-pc-cygwin/libdecnumber/Makefile分析( 2008-8-19 )
bfin-xxx-gcc中cc1plus.exe的生成( 2008-08-23 )
bfin-xxx-gcc中fortran目标的生成( 2008-8-24 )
bfin-xxx-gcc中java目标的生成( 2008-8-24 )