快乐虾
http://blog.csdn.net/lights_joy/
本文适用于
gcc- 4.3.1
configure –target=bfin-uclinux-gnu
Blackfin系列DSP
Cygwin gcc 3.4.4
欢迎转载,但请保留作者信息
fortran这个目标并不是放在gcc/Makefile中,而是在gcc/fortran/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/fortran/Make-lang.in。在此文件中是这样定义fortran这条规则的:
# Define the names for selecting gfortran in LANGUAGES.
fortran: f951$(exeext)
f951$(exeext): $(F95_OBJS) /
$(BACKEND) $(LIBDEPS) attribs.o
$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ /
$(F95_OBJS) $(BACKEND) $(LIBS) attribs.o $(GMPLIBS)
在这个依赖关系中,$(BACKEND),$(LIBDEPS)和attribs.o在生成cc1.exe时已经生成,因此这个目标依赖于$(F95_OBJS)。在这些目标生成后,这段脚本将它们链接为f951.exe。
F95_PARSER_OBJS = fortran/arith.o fortran/array.o fortran/bbt.o /
fortran/check.o fortran/data.o fortran/decl.o fortran/dump-parse-tree.o /
fortran/error.o fortran/expr.o fortran/interface.o /
fortran/intrinsic.o fortran/io.o fortran/iresolve.o /
fortran/match.o fortran/matchexp.o fortran/misc.o fortran/module.o /
fortran/openmp.o fortran/options.o fortran/parse.o fortran/primary.o /
fortran/resolve.o fortran/scanner.o fortran/simplify.o fortran/st.o /
fortran/symbol.o fortran/target-memory.o
F95_OBJS = $(F95_PARSER_OBJS) /
fortran/convert.o fortran/dependency.o fortran/f95-lang.o /
fortran/trans.o fortran/trans-array.o fortran/trans-common.o /
fortran/trans-const.o fortran/trans-decl.o fortran/trans-expr.o /
fortran/trans-intrinsic.o fortran/trans-io.o fortran/trans-openmp.o /
fortran/trans-stmt.o fortran/trans-types.o
在这里.o文件的生成适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
然后为$(F95_PARSER_OBJS)定义了一个依赖关系:
$(F95_PARSER_OBJS): fortran/gfortran.h fortran/libgfortran.h /
fortran/intrinsic.h fortran/match.h /
fortran/parse.h fortran/arith.h fortran/target-memory.h /
$(CONFIG_H) $(SYSTEM_H) $(TM_H) $(TM_P_H) coretypes.h /
$(RTL_H) $(TREE_H) $(TREE_DUMP_H) $(GGC_H) $(EXPR_H) /
$(FLAGS_H) output.h $(DIAGNOSTIC_H) errors.h $(FUNCTION_H)
对于其它的.o文件,则单独定义依赖规则。
在所有的.o文件都生成后,将把它们链接成f951.exe这个fortran编译器。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/convert.o: $(GFORTRAN_TRANS_DEPS)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/dependency.o: $(GFORTRAN_TRANS_DEPS) fortran/dependency.h
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/f95-lang.o: $(GFORTRAN_TRANS_DEPS) fortran/mathbuiltins.def /
gt-fortran-f95-lang.h gtype-fortran.h $(CGRAPH_H) $(TARGET_H) /
$(BUILTINS_DEF) fortran/types.def
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans.o: $(GFORTRAN_TRANS_DEPS)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-array.o: $(GFORTRAN_TRANS_DEPS)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-common.o: $(GFORTRAN_TRANS_DEPS) $(TARGET_H) $(RTL_H)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-const.o: $(GFORTRAN_TRANS_DEPS)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-decl.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-decl.h /
$(CGRAPH_H) $(TARGET_H) $(FUNCTION_H) $(FLAGS_H) $(RTL_H) $(TREE_GIMPLE_H) /
$(TREE_DUMP_H)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-expr.o: $(GFORTRAN_TRANS_DEPS) fortran/dependency.h
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-intrinsic.o: $(GFORTRAN_TRANS_DEPS) fortran/mathbuiltins.def /
gt-fortran-trans-intrinsic.h
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-io.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-io.h /
fortran/ioparm.def
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-openmp.o: $(GFORTRAN_TRANS_DEPS)
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-stmt.o: $(GFORTRAN_TRANS_DEPS) fortran/dependency.h
由于所需要的目标都已经生成,直接编译即可。
这个文件适用于通用规则:
.c.o:
$(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $< $(OUTPUT_OPTION);/
同时有下列依赖关系:
fortran/trans-types.o: $(GFORTRAN_TRANS_DEPS) gt-fortran-trans-types.h /
$(REAL_H) toplev.h $(TARGET_H) $(FLAGS_H) dwarf2out.h
由于所需要的目标都已经生成,直接编译即可。
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 )