⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 makefile

📁 这是完整的gcc源代码
💻
📖 第 1 页 / 共 2 页
字号:
cplus-decl.o : cplus-decl.c $(CONFIG_H) $(CPLUS_TREE_H) flags.hcplus-typeck.o : cplus-typeck.c $(CONFIG_H) $(CPLUS_TREE_H) flags.hcplus-class.o : cplus-class.c $(CONFIG_H) $(CPLUS_TREE_H)cplus-init.o : cplus-init.c $(CONFIG_H) $(CPLUS_TREE_H)cplus-method.o : cplus-method.c $(CONFIG_H) $(CPLUS_TREE_H)cplus-cvt.o : cplus-cvt.c $(CONFIG_H) $(CPLUS_TREE_H)cplus-search.o : cplus-search.c $(CONFIG_H) $(CPLUS_TREE_H)new-method.o : new-method.c $(CONFIG_H) $(CPLUS_TREE_H)# Language-independent files.gcc.o: gcc.c $(CONFIG_H) gvarargs.h obstack.h	$(CC) $(CFLAGS) $(INCLUDES) \  -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \  -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-\" -c \  `echo $(srcdir)/gcc.c | sed 's,^\./,,'`version.o: version.cobstack.o: obstack.ctree.o : tree.c $(CONFIG_H) $(TREE_H) flags.hprint-tree.o : print-tree.c $(CONFIG_H) $(TREE_H)stor-layout.o : stor-layout.c $(CONFIG_H) $(TREE_H) $(RTL_H)fold-const.o : fold-const.c $(CONFIG_H) $(TREE_H)toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h input.hrtl.o : rtl.c $(CONFIG_H) $(RTL_H)rtlanal.o : rtlanal.c $(CONFIG_H) $(RTL_H)varasm.o : varasm.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h expr.h \   insn-codes.h hard-reg-set.hstmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h  \   insn-flags.h insn-config.h insn-codes.h expr.h regs.h hard-reg-set.h recog.hexpr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h  \   insn-flags.h insn-codes.h expr.h insn-config.h recog.h typeclass.hexpmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h  \   insn-flags.h insn-codes.h expr.h insn-config.h recog.hexplow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-codes.hoptabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h  \   insn-flags.h insn-codes.h expr.h insn-config.h recog.hsymout.o : symout.c $(CONFIG_H) $(TREE_H) $(RTL_H) symseg.h gdbfiles.hdbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.hsdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H)emit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) regs.h insn-config.h real.hintegrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h \   insn-flags.h insn-codes.hjump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h regs.hstupid.o : stupid.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.hcse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h real.hloop.o : loop.c $(CONFIG_H) $(RTL_H) insn-config.h insn-codes.h \   regs.h hard-reg-set.h recog.h flags.h expr.hflow.o : flow.c $(CONFIG_H) $(RTL_H) basic-block.h regs.h hard-reg-set.hcombine.o : combine.c $(CONFIG_H) $(RTL_H) flags.h  \   insn-config.h regs.h basic-block.h recog.hregclass.o : regclass.c $(CONFIG_H) $(RTL_H) hard-reg-set.h flags.h \   basic-block.h regs.h insn-config.h recog.h local-alloc.o : local-alloc.c $(CONFIG_H) $(RTL_H) flags.h basic-block.h regs.h \   hard-reg-set.h insn-config.h recog.hglobal-alloc.o : global-alloc.c $(CONFIG_H) $(RTL_H) flags.h  \   basic-block.h regs.h hard-reg-set.h insn-config.hreload.o : reload.c $(CONFIG_H) $(RTL_H) flags.h \   reload.h recog.h hard-reg-set.h insn-config.h regs.hreload1.o : reload1.c $(CONFIG_H) $(RTL_H) flags.h  \   reload.h regs.h hard-reg-set.h insn-config.h basic-block.h recog.hcaller-save.o : caller-save.c $(CONFIG_H) $(RTL_H) flags.h \   reload.h regs.h hard-reg-set.h insn-config.h basic-block.h recog.hfinal.o : final.c $(CONFIG_H) $(RTL_H) flags.h regs.h recog.h conditions.h \   gdbfiles.h insn-config.h real.h output.hrecog.o : recog.c $(CONFIG_H) $(RTL_H)  \   regs.h recog.h hard-reg-set.h insn-config.h real.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.# Note some machines won't allow $(CC) without -S on this source file.alloca.o:	alloca.c	$(CC) $(CFLAGS) -S `echo $(srcdir)/alloca.c | sed 's,^\./,,'`	as alloca.s -o alloca.o# Now the source files that are generated from the machine description..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# 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.insn-config.h: stamp-config ;stamp-config : md genconfig $(srcdir)/move-if-change	./genconfig md > tmp-config.h	$(srcdir)/move-if-change tmp-config.h insn-config.h	touch stamp-configinsn-flags.h: stamp-flags ;stamp-flags : md genflags $(srcdir)/move-if-change	./genflags md > tmp-flags.h	$(srcdir)/move-if-change tmp-flags.h insn-flags.h	touch stamp-flagsinsn-codes.h: stamp-codes ;stamp-codes : md gencodes $(srcdir)/move-if-change	./gencodes md > 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 insn-codes.h \  insn-config.h insn-flags.h	$(CC) $(CFLAGS) $(INCLUDES) -c insn-emit.cinsn-emit.c: stamp-emit ;stamp-emit : md genemit $(srcdir)/move-if-change	./genemit md > 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 real.h recog.h	$(CC) $(CFLAGS) $(INCLUDES) -c insn-recog.cinsn-recog.c: stamp-recog ;stamp-recog : md genrecog $(srcdir)/move-if-change	./genrecog md > tmp-recog.c	$(srcdir)/move-if-change tmp-recog.c insn-recog.c	touch stamp-recoginsn-extract.o : insn-extract.c $(CONFIG_H) $(RTL_H)	$(CC) $(CFLAGS) $(INCLUDES) -c insn-extract.cinsn-extract.c: stamp-extract ;stamp-extract : md genextract $(srcdir)/move-if-change	./genextract md > 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 real.h	$(CC) $(CFLAGS) $(INCLUDES) -c insn-peep.cinsn-peep.c: stamp-peep ;stamp-peep : md genpeep $(srcdir)/move-if-change	./genpeep md > tmp-peep.c	$(srcdir)/move-if-change tmp-peep.c insn-peep.c	touch stamp-peepinsn-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 output.h aux-output.c	$(CC) $(CFLAGS) $(INCLUDES) -c insn-output.cinsn-output.c: stamp-output ;stamp-output : md genoutput $(srcdir)/move-if-change	./genoutput md > tmp-output.c	$(srcdir)/move-if-change tmp-output.c insn-output.c	touch stamp-output# Now the programs that generate those files.# $(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.genconfig : genconfig.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genconfig genconfig.o rtl.o $(LIBS)genconfig.o : genconfig.c $(RTL_H) config.hgenflags : genflags.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genflags genflags.o rtl.o $(LIBS)genflags.o : genflags.c $(RTL_H) config.hgencodes : gencodes.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o gencodes gencodes.o rtl.o $(LIBS)gencodes.o : gencodes.c $(RTL_H) config.hgenemit : genemit.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genemit genemit.o rtl.o $(LIBS)genemit.o : genemit.c $(RTL_H) config.hgenrecog : genrecog.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genrecog genrecog.o rtl.o $(LIBS)genrecog.o : genrecog.c $(RTL_H) config.hgenextract : genextract.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genextract genextract.o rtl.o $(LIBS)genextract.o : genextract.c $(RTL_H) config.hgenpeep : genpeep.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genpeep genpeep.o rtl.o $(LIBS)genpeep.o : genpeep.c $(RTL_H) config.hgenoutput : genoutput.o rtl.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o genoutput genoutput.o rtl.o $(LIBS)genoutput.o : genoutput.c $(RTL_H) config.h# Making the preprocessorcpp: cccp	-rm -f cpp	ln cccp cppcccp: cccp.o cexp.o version.o $(LIBDEPS)	$(CC) $(CFLAGS) $(LDFLAGS) -o cccp cccp.o cexp.o version.o $(LIBS)cexp.o: $(srcdir)/cexp.c $(CONFIG_H)	$(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDES) -c $(srcdir)/cexp.c$(srcdir)/cexp.c: $(srcdir)/cexp.y	$(BISON) -o $(srcdir)/cexp.c $(srcdir)/cexp.ycccp.o: cccp.c $(CONFIG_H)	$(CC) $(CFLAGS) $(INCLUDES) \          -DGCC_INCLUDE_DIR=\"$(libdir)/gcc-include\" \          -DGPLUSPLUS_INCLUDE_DIR=\"$(libdir)/g++-include\" \	  -c `echo $(srcdir)/cccp.c | sed 's,^\./,,'`$(srcdir)/cpp.info: $(srcdir)/cpp.texinfo	makeinfo `echo $(srcdir)/cpp.texinfo | sed 's,^\./,,'`$(srcdir)/gplus.info: $(srcdir)/gplus.texinfo	makeinfo `echo $(srcdir)/gplus.texinfo | sed 's,^\./,,'`$(srcdir)/gcc.info: $(srcdir)/gcc.texinfo	makeinfo `echo $(srcdir)/gcc.texinfo | sed 's,^\./,,'`# gnulib is not deleted because deleting it would be inconvenient# for most uses of this target.clean:	-rm -f $(STAGESTUFF) $(STAGE_GCC)# Delete the temp files made in the course of building gnulib.	-rm -f tmpgnulib	for name in $(LIBFUNCS); do rm -f $${name}.c; done	-rm -f stamp-*.[ch] tmp-*	-rm -f *.s *.s[0-9] *.co *.greg *.lreg *.combine *.flow *.cse *.jump *.rtl *.tree *.loop *.dbr *.jump2	-rm -f core float.h hard-params# Like clean but also delete the links made to configure gcc.# Also removes gnulib, since that is desirable if you are changing cpus.cleanconfig: clean	-rm -f tm.h aux-output.c config.h md config.status gnulib stamp-gnulib2# Get rid of every file that's generated from some other file (except INSTALL).realclean: cleanconfig	-rm -f cpp.aux cpp.cps cpp.fns cpp.info cpp.kys cpp.pgs cpp.tps cpp.vrs#	-rm -f cplus-parse.tab.c cplus-parse.output	-rm -f c-parse.tab.c c-parse.output c-parse.tab.output	-rm -f gnulib cexp.c TAGS 	-rm -f cpp.info* cpp.?? cpp.??s cpp.log cpp.toc cpp.*aux	-rm -f gcc.info* gcc.?? gcc.??s gcc.log gcc.toc gcc.*aux	-rm -f gplus.info* gplus.?? gplus.??s gplus.log gplus.toc gplus.*aux	-rm -f *.dvi stage1 stage2 stage3# Copy the files into directories where they will be run.install: all $(USER_H) float.h gvarargs.h gstdarg.h gcc.1	-mkdir $(libdir)	-mkdir $(bindir)	-if [ -f cc1 ] ; then $(INSTALL) cc1 $(libdir)/gcc-cc1 ; else true; fi	-if [ -f cc1plus ] ; then $(INSTALL) cc1plus $(libdir)/gcc-cc1plus ; else true; fi	$(INSTALL) gnulib $(libdir)/gcc-gnulib	-if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then (cd $(libdir); $(RANLIB) gcc-gnulib) ; else true; fi	$(INSTALL) cpp $(libdir)/gcc-cpp	$(INSTALL) gcc $(bindir)/gcc	-mkdir $(libdir)/gcc-include	-chmod ugo+rx $(libdir)/gcc-include	for file in $(USER_H); do \	     for eachfile in  $(srcdir)/$${file} ; do \		$(INSTALL) $(srcdir)/`basename $${eachfile}` $(libdir)/gcc-include/`basename $${eachfile}`; \	     done ; done	$(INSTALL) float.h $(libdir)/gcc-include/float.h	$(INSTALL) $(srcdir)/gvarargs.h $(libdir)/gcc-include/varargs.h	$(INSTALL) $(srcdir)/gstdarg.h $(libdir)/gcc-include/stdarg.h	-chmod a-x $(libdir)/gcc-include/*.h	$(INSTALL) $(srcdir)/gcc.1 $(mandir)/gcc.$(manext)	-chmod a-x $(mandir)/gcc.$(manext)# do make -f ../gcc/Makefile maketest DIR=../gcc# in the intended test directory to make it a suitable test directory.maketest:	ln -s $(DIR)/*.[chy] .	ln -s $(DIR)/config .	ln -s $(DIR)/*.def .	-rm -f =*	ln -s $(DIR)/.gdbinit .	-ln -s $(DIR)/bison.simple .	ln -s $(DIR)/config.gcc .	ln -s $(DIR)/move-if-change .# The then and else were swapped to avoid a problem on Ultrix.	-if [ ! -f Makefile ] ; then ln -s $(DIR)/Makefile . ; else false; fi	-rm tm.h aux-output.c config.h md	make clean# You must then run config.gcc to set up for compilation.bootstrap: all force	$(MAKE) stage1	$(MAKE) CC="stage1/gcc -Bstage1/" CFLAGS="-O $(CFLAGS)" libdir=$(libdir)	$(MAKE) stage2	$(MAKE) CC="stage2/gcc -Bstage2/" CFLAGS="-O $(CFLAGS)" libdir=$(libdir)bootstrap2: force	$(MAKE) CC="stage1/gcc -Bstage1/" CFLAGS="-O $(CFLAGS)" libdir=$(libdir)	$(MAKE) stage2	$(MAKE) CC="stage2/gcc -Bstage2/" CFLAGS="-O $(CFLAGS)" libdir=$(libdir)bootstrap3: force	$(MAKE) CC="stage2/gcc -Bstage2/" CFLAGS="-O $(CFLAGS)" libdir=$(libdir)# Copy the object files from a particular stage into a subdirectory.stage1: force	-mkdir stage1	-mv $(STAGESTUFF) $(STAGE_GCC) stage1	-rm -f stage1/gnulib	-ln gnulib stage1 || cp gnulib stage1	-if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then $(RANLIB) stage1/gnulib; else true; fistage2: force	-mkdir stage2	-mv $(STAGESTUFF) $(STAGE_GCC) stage2	-rm -f stage2/gnulib	-ln gnulib stage2 || cp gnulib stage2	-if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then $(RANLIB) stage2/gnulib; else true; fistage3: force	-mkdir stage3	-mv $(STAGESTUFF) $(STAGE_GCC) stage3	-rm -f stage3/gnulib	-ln gnulib stage3 || cp gnulib stage3	-if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then $(RANLIB) stage3/gnulib; else true; fistage4: force	-mkdir stage4	-mv $(STAGESTUFF) $(STAGE_GCC) stage4	-rm -f stage4/gnulib	-ln gnulib stage4 || cp gnulib stage4	-if [ -f /usr/bin/ranlib -o -f /bin/ranlib ] ; then $(RANLIB) stage4/gnulib; else true; fiTAGS: force	mkdir temp	-mv c-parse.tab.c cplus-parse.c cplus-parse.h cexp.c temp	etags *.y *.h *.c	mv temp/* .	rmdir tempincludes: force	export LIB; LIB=$(libdir)/gcc-include ./fixincludes#In GNU Make, ignore whether `stage*' exists..PHONY: stage1 stage2 stage3 stage4 clean realclean TAGS bootstrapforce:

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -