📄 makefile.in
字号:
$(TREE_H) output.h regs.hloop.o : loop.c $(CONFIG_H) $(RTL_H) flags.h loop.h insn-config.h \ insn-flags.h insn-codes.h regs.h hard-reg-set.h $(RECOG_H) expr.h real.hunroll.o : unroll.c $(CONFIG_H) $(RTL_H) insn-config.h integrate.h regs.h \ $(RECOG_H) flags.h expr.h loop.hflow.o : flow.c $(CONFIG_H) $(RTL_H) flags.h insn-config.h \ $(BASIC_BLOCK_H) regs.h hard-reg-set.h output.hcombine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h \ insn-config.h insn-flags.h insn-codes.h insn-attr.h regs.h expr.h \ $(BASIC_BLOCK_H) $(RECOG_H) real.h hard-reg-set.hregclass.o : regclass.c $(CONFIG_H) $(RTL_H) hard-reg-set.h flags.h \ $(BASIC_BLOCK_H) regs.h insn-config.h $(RECOG_H) reload.h real.h bytecode.hlocal-alloc.o : local-alloc.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) \ regs.h hard-reg-set.h insn-config.h $(RECOG_H) output.hbitmap.o : bitmap.c $(CONFIG_H) $(RTL_H) flags.h $(BASIC_BLOCK_H) regs.hglobal.o : global.c $(CONFIG_H) $(RTL_H) flags.h \ $(BASIC_BLOCK_H) regs.h hard-reg-set.h insn-config.h output.hreload.o : reload.c $(CONFIG_H) $(RTL_H) flags.h output.h expr.h\ reload.h $(RECOG_H) hard-reg-set.h insn-config.h insn-codes.h regs.h real.hreload1.o : reload1.c $(CONFIG_H) $(RTL_H) real.h flags.h expr.h \ reload.h regs.h hard-reg-set.h insn-config.h insn-flags.h insn-codes.h \ $(BASIC_BLOCK_H) $(RECOG_H) output.hcaller-save.o : caller-save.c $(CONFIG_H) $(RTL_H) flags.h \ regs.h hard-reg-set.h insn-codes.h insn-config.h $(BASIC_BLOCK_H) $(RECOG_H) \ reload.h expr.hreorg.o : reorg.c $(CONFIG_H) $(RTL_H) conditions.h hard-reg-set.h \ $(BASIC_BLOCK_H) regs.h insn-config.h insn-attr.h insn-flags.h $(RECOG_H) \ flags.h output.hsched.o : $(SCHED_PREFIX)sched.c $(CONFIG_H) $(RTL_H) $(BASIC_BLOCK_H) regs.h hard-reg-set.h \ flags.h insn-config.h insn-attr.hfinal.o : final.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h regs.h \ $(RECOG_H) conditions.h insn-config.h insn-attr.h except.h real.h output.h \ hard-reg-set.h insn-flags.h insn-codes.h gstab.h xcoffout.h defaults.hrecog.o : recog.c $(CONFIG_H) $(RTL_H) \ regs.h $(RECOG_H) hard-reg-set.h flags.h insn-config.h insn-attr.h \ insn-flags.h insn-codes.h real.hreg-stack.o : reg-stack.c $(CONFIG_H) $(RTL_H) $(TREE_H) \ regs.h hard-reg-set.h flags.h insn-config.h insn-flags.h$(out_object_file): $(out_file) $(CONFIG_H) $(TREE_H) \ $(RTL_H) regs.h hard-reg-set.h real.h insn-config.h conditions.h \ insn-flags.h output.h insn-attr.h insn-codes.h $(CC) -c $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(out_file)# Build auxiliary files that support ecoff format.mips-tfile: mips-tfile.o version.o $(LIBDEPS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tfile.o version.o $(LIBS)mips-tfile.o : mips-tfile.c $(CONFIG_H) $(RTL_H)mips-tdump: mips-tdump.o version.o $(LIBDEPS) $(CC) $(CFLAGS) $(LDFLAGS) -o $@ mips-tdump.o version.o $(LIBS)mips-tdump.o : mips-tdump.c $(CONFIG_H) $(RTL_H)# Build file to support OSF/rose half-pic format.halfpic.o: halfpic.c $(CONFIG_H) $(RTL_H) $(TREE_H)# Normally this target is not used; but it is used if you# define ALLOCA=alloca.o. In that case, you must get a suitable alloca.c# from the GNU Emacs distribution.alloca.o: alloca.c $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(ALLOCA_FLAGS) \ -c `echo $(srcdir)/alloca.c | sed 's,^\./,,'` $(ALLOCA_FINISH)## Generate header and source files from the machine description, # and compile them..PRECIOUS: insn-config.h insn-flags.h insn-codes.h \ insn-emit.c insn-recog.c insn-extract.c insn-output.c insn-peep.c \ insn-attr.h insn-attrtab.c# The following pair of rules has this effect:# genconfig is run only if the md has changed since genconfig was last run;# but the file insn-config.h is touched only when its contents actually change.# Each of the other insn-* files is handled by a similar pair of rules.# This causes an anomaly in the results of make -n# because insn-* is older than stamp-*# and thus make -n thinks that insn-* will be updated# and force recompilation of things that depend on it.# We use move-if-change precisely to avoid such recompilation.# But there is no way to teach make -n that it will be avoided.# Each of the insn-*.[ch] rules has a semicolon at the end,# for otherwise the system Make on SunOS 4.1 never tries# to recompile insn-*.o. To avoid problems and extra noise from# versions of make which don't like empty commands (nothing after the# trailing `;'), we call true for each.insn-config.h: stamp-config ; @truestamp-config : $(md_file) genconfig $(srcdir)/move-if-change ./genconfig $(md_file) > tmp-config.h $(srcdir)/move-if-change tmp-config.h insn-config.h touch stamp-configinsn-flags.h: stamp-flags ; @truestamp-flags : $(md_file) genflags $(srcdir)/move-if-change ./genflags $(md_file) > tmp-flags.h $(srcdir)/move-if-change tmp-flags.h insn-flags.h touch stamp-flagsinsn-codes.h: stamp-codes ; @truestamp-codes : $(md_file) gencodes $(srcdir)/move-if-change ./gencodes $(md_file) > tmp-codes.h $(srcdir)/move-if-change tmp-codes.h insn-codes.h touch stamp-codesinsn-emit.o : insn-emit.c $(CONFIG_H) $(RTL_H) expr.h real.h output.h \ insn-config.h insn-flags.h insn-codes.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-emit.cinsn-emit.c: stamp-emit ; @truestamp-emit : $(md_file) genemit $(srcdir)/move-if-change ./genemit $(md_file) > tmp-emit.c $(srcdir)/move-if-change tmp-emit.c insn-emit.c touch stamp-emitinsn-recog.o : insn-recog.c $(CONFIG_H) $(RTL_H) insn-config.h $(RECOG_H) \ real.h output.h flags.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-recog.cinsn-recog.c: stamp-recog ; @truestamp-recog : $(md_file) genrecog $(srcdir)/move-if-change ./genrecog $(md_file) > tmp-recog.c $(srcdir)/move-if-change tmp-recog.c insn-recog.c touch stamp-recoginsn-opinit.o : insn-opinit.c $(CONFIG_H) $(RTL_H) insn-codes.h insn-flags.h \ insn-config.h flags.h $(RECOG_H) expr.h reload.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-opinit.cinsn-opinit.c: stamp-opinit ; @truestamp-opinit : $(md_file) genopinit $(srcdir)/move-if-change ./genopinit $(md_file) > tmp-opinit.c $(srcdir)/move-if-change tmp-opinit.c insn-opinit.c touch stamp-opinitinsn-extract.o : insn-extract.c $(CONFIG_H) $(RTL_H) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-extract.cinsn-extract.c: stamp-extract ; @truestamp-extract : $(md_file) genextract $(srcdir)/move-if-change ./genextract $(md_file) > tmp-extract.c $(srcdir)/move-if-change tmp-extract.c insn-extract.c touch stamp-extractinsn-peep.o : insn-peep.c $(CONFIG_H) $(RTL_H) regs.h output.h real.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-peep.cinsn-peep.c: stamp-peep ; @truestamp-peep : $(md_file) genpeep $(srcdir)/move-if-change ./genpeep $(md_file) > tmp-peep.c $(srcdir)/move-if-change tmp-peep.c insn-peep.c touch stamp-peepinsn-attrtab.o : insn-attrtab.c $(CONFIG_H) $(RTL_H) regs.h real.h output.h \ insn-attr.h insn-config.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-attrtab.cinsn-attr.h: stamp-attr ; @truestamp-attr : $(md_file) genattr $(srcdir)/move-if-change ./genattr $(md_file) > tmp-attr.h $(srcdir)/move-if-change tmp-attr.h insn-attr.h touch stamp-attrinsn-attrtab.c: stamp-attrtab ; @truestamp-attrtab : $(md_file) genattrtab $(srcdir)/move-if-change if cmp -s $(PREMADE_ATTRTAB_MD) $(md_file); \ then \ echo Using $(PREMADE_ATTRTAB); \ cp $(PREMADE_ATTRTAB) tmp-attrtab.c; \ else \ ./genattrtab $(md_file) > tmp-attrtab.c; \ fi $(srcdir)/move-if-change tmp-attrtab.c insn-attrtab.c touch stamp-attrtabinsn-output.o : insn-output.c $(CONFIG_H) $(RTL_H) regs.h real.h conditions.h \ hard-reg-set.h insn-config.h insn-flags.h insn-attr.h output.h $(RECOG_H) \ insn-codes.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c insn-output.cinsn-output.c: stamp-output ; @truestamp-output : $(md_file) genoutput $(srcdir)/move-if-change ./genoutput $(md_file) > tmp-output.c $(srcdir)/move-if-change tmp-output.c insn-output.c touch stamp-output## Compile the programs that generate insn-* from the machine description.# They are compiled with $(HOST_CC), and associated libraries,# since they need to run on this machine# even if GCC is being compiled to run on some other machine.# $(CONFIG_H) is omitted from the deps of the gen*.o# because these programs don't really depend on anything # about the target machine. They do depend on config.h itself,# since that describes the host machine.# Pass the md file through cpp if the target requests it.$(MD_FILE): $(MD_DEPS) rm -f $@ $(MD_CPP) $(MD_CPPFLAGS) $(md_file) | sed 's/^# /; /g' > tmp-$@ mv tmp-$@ $@genconfig : genconfig.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genconfig.o $(HOST_RTL) $(HOST_LIBS)genconfig.o : genconfig.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genconfig.cgenflags : genflags.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genflags.o $(HOST_RTL) $(HOST_LIBS)genflags.o : genflags.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genflags.cgencodes : gencodes.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ gencodes.o $(HOST_RTL) $(HOST_LIBS)gencodes.o : gencodes.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/gencodes.cgenemit : genemit.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genemit.o $(HOST_RTL) $(HOST_LIBS)genemit.o : genemit.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genemit.cgenopinit : genopinit.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genopinit.o $(HOST_RTL) $(HOST_LIBS)genopinit.o : genopinit.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genopinit.cgenrecog : genrecog.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genrecog.o $(HOST_RTL) $(HOST_LIBS)genrecog.o : genrecog.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genrecog.cgenextract : genextract.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genextract.o $(HOST_RTL) $(HOST_LIBS)genextract.o : genextract.c $(RTL_H) $(build_xm_file) insn-config.h $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genextract.cgenpeep : genpeep.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genpeep.o $(HOST_RTL) $(HOST_LIBS)genpeep.o : genpeep.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genpeep.cgenattr : genattr.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genattr.o $(HOST_RTL) $(HOST_LIBS)genattr.o : genattr.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattr.cgenattrtab : genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_RTLANAL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genattrtab.o $(HOST_RTL) $(HOST_PRINT) $(HOST_RTLANAL) $(HOST_LIBS)genattrtab.o : genattrtab.c $(RTL_H) $(build_xm_file) insn-config.h $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genattrtab.cgenoutput : genoutput.o $(HOST_RTL) $(HOST_LIBDEPS) $(HOST_CC) $(HOST_CFLAGS) $(HOST_LDFLAGS) -o $@ \ genoutput.o $(HOST_RTL) $(HOST_LIBS)genoutput.o : genoutput.c $(RTL_H) $(build_xm_file) $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(srcdir)/genoutput.c## Compile the libraries to be used by gen*.# If we are not cross-building, gen* use the same .o's that cc1 will use,# and HOST_PREFIX_1 is `foobar', just to ensure these rules don't conflict# with the rules for rtl.o, alloca.o, etc.$(HOST_PREFIX_1)rtl.o: $(srcdir)/rtl.c $(CONFIG_H) $(RTL_H) rm -f $(HOST_PREFIX)rtl.c sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtl.c > $(HOST_PREFIX)rtl.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtl.c$(HOST_PREFIX_1)print-rtl.o: $(srcdir)/print-rtl.c $(CONFIG_H) $(RTL_H) rm -f $(HOST_PREFIX)print-rtl.c sed -e 's/config[.]h/hconfig.h/' $(srcdir)/print-rtl.c > $(HOST_PREFIX)print-rtl.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)print-rtl.c$(HOST_PREFIX_1)rtlanal.o: $(srcdir)/rtlanal.c $(CONFIG_H) $(RTL_H) rm -f $(HOST_PREFIX)rtlanal.c sed -e 's/config[.]h/hconfig.h/' $(srcdir)/rtlanal.c > $(HOST_PREFIX)rtlanal.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)rtlanal.c$(HOST_PREFIX_1)alloca.o: alloca.c rm -f $(HOST_PREFIX)alloca.c cp $(srcdir)/alloca.c $(HOST_PREFIX)alloca.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)alloca.c$(HOST_PREFIX_1)obstack.o: obstack.c rm -f $(HOST_PREFIX)obstack.c sed -e 's/config[.]h/hconfig.h/' $(srcdir)/obstack.c > $(HOST_PREFIX)obstack.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)obstack.c$(HOST_PREFIX_1)malloc.o: malloc.c rm -f $(HOST_PREFIX)malloc.c sed -e 's/config[.]h/hconfig.h/' $(srcdir)/malloc.c > $(HOST_PREFIX)malloc.c $(HOST_CC) -c $(HOST_CFLAGS) $(HOST_CPPFLAGS) $(INCLUDES) $(HOST_PREFIX)malloc.c# This satisfies the dependency that we get if you cross-compile a compiler# that does not need to compile alloca, malloc or whatever.$(HOST_PREFIX_1): touch $(HOST_PREFIX_1)## Remake bytecode files.BI_OBJ=bi-parser.o bi-lexer.o bi-reverse.obc-emit.o : bc-emit.c $(CONFIG_H) $(RTL_H) real.h $(BYTECODE_H) \ bc-arity.h bc-opcode.h bc-typecd.h bc
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -