📄 makefile.in
字号:
else \ echo $${name}; \ if [ $${name}.asm = $${file} ]; then \ cp $${file} $${name}.s || exit 1; file=$${name}.s; \ else true; fi; \ $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c $${file}; \ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ $(AR) $(AR_FLAGS) tmplibgcc2.a $${oname}$(objext); \ rm -f $${name}.s $${oname}$(objext); \ fi; \ done mv tmplibgcc2.a libgcc2.a# These lines were deleted from above the mv command# because ranlibing libgcc.a itself should suffice.# -if [ x${HPUX_GAS} = x ] ; then \# if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc2.a; else true; fi; \# else true; fi# Combine the various libraries into a single library, libgcc.a.libgcc.a: $(LIBGCC1) $(LIBGCC2) -rm -rf tmplibgcc.a libgcc.a tmpcopy mkdir tmpcopy -if [ x$(LIBGCC1) != x ]; \ then (cd tmpcopy; $(AR) x ../$(LIBGCC1)); \ else true; \ fi# Some versions of ar (specifically the one in RISC/os 5.x), create an# unwritable table of contents file, and then print an error message when# the second ar command tries to overwrite this file. To avoid the error# message from ar, we make sure all files are writable. -(cd tmpcopy; chmod +w * > /dev/null 2>&1) (cd tmpcopy; $(AR) x ../$(LIBGCC2)) (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *$(objext)) rm -rf tmpcopy -if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi# Actually build it in tmplibgcc.a, then rename at end,# so that libgcc.a itself remains nonexistent if compilation is aborted. mv tmplibgcc.a libgcc.a# Use the genmultilib shell script to generate the information the gcc# driver program needs to select the library directory based on the# switches.multilib.h: stamp-mlib; @truestamp-mlib: $(srcdir)/genmultilib Makefile $(SHELL) $(srcdir)/genmultilib \ "$(MULTILIB_OPTIONS)" \ "$(MULTILIB_DIRNAMES)" \ "$(MULTILIB_MATCHES)" \ "$(MULTILIB_EXCEPTIONS)" \ "$(MULTILIB_EXTRA_OPTS)" > tmp-mlib.h $(srcdir)/move-if-change tmp-mlib.h multilib.h touch stamp-mlib# Build multiple copies of libgcc.a, one for each target switch.stmp-multilib: $(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H) \ frame.h gansidecl.h \ $(LIB2ADD) machmode.h longlong.h gbl-ctors.h config.status for i in `$(GCC_FOR_TARGET) --print-multi-lib`; do \ dir=`echo $$i | sed -e 's/;.*$$//'`; \ flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ RANLIB="$(RANLIB)" RANLIB_TEST="$(RANLIB_TEST)" \ LANGUAGES="$(LANGUAGES)" \ HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS) $${flags}" \ MULTILIB_CFLAGS="$${flags}" \ LIBGCC1="$(LIBGCC1)" LIBGCC2="$(LIBGCC2)" \ dir="$${dir}" stmp-multilib-sub; \ if [ $$? -eq 0 ] ; then true; else exit 1; fi; \ done touch stmp-multilib# Subroutine of stmp-multilib so make -n works.stmp-multilib-sub: rm -f $(LIBGCC2) if [ -d $(dir) ]; then \ cd $(dir); \ rm -f libgcc.a $(EXTRA_MULTILIB_PARTS); \ else true; \ fi $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ LANGUAGES="$(LANGUAGES)" \ LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" $(LIBGCC2) if [ x$(LIBGCC1) != xlibgcc1-asm.a ]; \ then true; \ else rm -f $(LIBGCC1); \ fi if [ x$(LIBGCC1) != xlibgcc1-asm.a ]; \ then true; \ else \ $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ LANGUAGES="$(LANGUAGES)" \ LIBGCC2_CFLAGS="$(LIBGCC2_CFLAGS)" $(LIBGCC1); \ fi rm -rf tmplibgcc.a tmpcopy mkdir tmpcopy if [ x$(LIBGCC1) != x ]; \ then (cd tmpcopy; $(AR) x ../$(LIBGCC1)); \ else true; \ fi (cd tmpcopy; $(AR) x ../$(LIBGCC2)) (cd tmpcopy; $(AR) $(AR_FLAGS) ../tmplibgcc.a *$(objext)) rm -rf libgcc2.a tmpcopy if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc.a; else true; fi if [ -d $(dir) ]; then true; else mkdir $(dir); fi mv tmplibgcc.a $(dir)/libgcc.a for f in .. $(EXTRA_MULTILIB_PARTS); do if [ x$${f} != x.. ]; then \ $(MAKE) GCC_FOR_TARGET="$(GCC_FOR_TARGET)" \ AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" CC="$(CC)" CFLAGS="$(CFLAGS)" \ HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \ LANGUAGES="$(LANGUAGES)" \ MULTILIB_CFLAGS="$(MULTILIB_CFLAGS)" T="t" t$${f}; \ mv t$${f} $(dir)/$${f}; \ else true; \ fi; done# Compile two additional files that are linked with every program# linked using GCC on systems using COFF or ELF, for the sake of C++# constructors.$(T)crtbegin.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ -finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \ -c $(srcdir)/crtstuff.c -DCRT_BEGIN -o $(T)crtbegin$(objext)$(T)crtend.o: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(MULTILIB_CFLAGS) -g0 \ -finhibit-size-directive -fno-inline-functions -fno-exceptions $(CRTSTUFF_T_CFLAGS) \ -c $(srcdir)/crtstuff.c -DCRT_END -o $(T)crtend$(objext)# On some systems we also want to install versions of these files# compiled using PIC for use in shared libraries.crtbeginS.o crtendS.o: stamp-crtS ; @truestamp-crtS: crtstuff.c $(GCC_PASSES) $(CONFIG_H) \ defaults.h frame.h gbl-ctors.h $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS_S) \ -DCRT_BEGIN -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/crtstuff.c mv crtstuff$(objext) crtbeginS$(objext) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(INCLUDES) $(CRTSTUFF_T_CFLAGS_S) \ -DCRT_END -finhibit-size-directive -fno-inline-functions \ -g0 -c $(srcdir)/crtstuff.c -o crtendS$(objext) touch stamp-crtS# Compile the start modules crt0.o and mcrt0.o that are linked with every programcrt0.o: stamp-crt0 ; @truemcrt0.o: stamp-crt0; @truestamp-crt0: $(CRT0_S) $(MCRT0_S) $(GCC_PASSES) $(CONFIG_H) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \ -o crt0.o -c $(CRT0_S) $(GCC_FOR_TARGET) $(GCC_CFLAGS) $(CRT0STUFF_T_CFLAGS) \ -o mcrt0.o -c $(MCRT0_S) touch stamp-crt0## Compiling object files from source files.# Note that dependencies on obstack.h are not written# because that file is not part of GCC.# C language specific files.c-parse.o : $(srcdir)/c-parse.c $(CONFIG_H) $(TREE_H) c-lex.h \ $(srcdir)/c-parse.h c-tree.h input.h flags.h $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) -c $(srcdir)/c-parse.c$(srcdir)/c-parse.h: $(srcdir)/c-parse.c$(srcdir)/c-parse.c: $(srcdir)/c-parse.y cd $(srcdir); $(BISON) $(BISONFLAGS) -d c-parse.y -o c-parse.c$(srcdir)/c-parse.y: c-parse.in echo '/*WARNING: This file is automatically generated!*/' >tmp-c-parse.y sed -e "/^ifobjc$$/,/^end ifobjc$$/d" \ -e "/^ifc$$/d" -e "/^end ifc$$/d" \ $(srcdir)/c-parse.in >>tmp-c-parse.y $(srcdir)/move-if-change tmp-c-parse.y $(srcdir)/c-parse.y$(srcdir)/c-gperf.h: c-parse.gperf gperf -p -j1 -i 1 -g -o -t -G -N is_reserved_word -k1,3,$$ \ $(srcdir)/c-parse.gperf >tmp-gperf.h $(srcdir)/move-if-change tmp-gperf.h $(srcdir)/c-gperf.hc-decl.o : c-decl.c $(CONFIG_H) $(TREE_H) c-tree.h c-lex.h flags.h output.hc-typeck.o : c-typeck.c $(CONFIG_H) $(TREE_H) c-tree.h flags.h output.hc-lang.o : c-lang.c $(CONFIG_H) $(TREE_H)c-lex.o : c-lex.c $(CONFIG_H) $(TREE_H) c-lex.h c-tree.h $(srcdir)/c-parse.h \ input.h flags.h $(srcdir)/c-gperf.h c-pragma.hc-aux-info.o : c-aux-info.c $(CONFIG_H) $(TREE_H) c-tree.h flags.hc-convert.o : c-convert.c $(CONFIG_H) $(TREE_H) flags.hc-pragma.o: c-pragma.c $(CONFIG_H) $(TREE_H) except.h function.h \ defaults.h c-pragma.hc-iterate.o: c-iterate.c $(CONFIG_H) $(TREE_H) $(RTL_H) c-tree.h flags.h# To make a configuration always use collect2, set USE_COLLECT2 to ld.ld: collect2 rm -f ld$(exeext) ln collect2$(exeext) ld$(exeext) > /dev/null 2>&1 \ || cp collect2$(exeext) ld$(exeext)collect2 : collect2.o cplus-dem.o underscore.o version.o \ choose-temp.o $(LIBDEPS)# Don't try modifying collect2 (aka ld) in place--it might be linking this. -rm -f collect2$(exeext) $(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ collect2.o \ cplus-dem.o underscore.o version.o choose-temp.o $(LIBS)collect2.o : collect2.c $(CONFIG_H) gansidecl.h gstab.h obstack.h $(DEMANGLE_H) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DTARGET_MACHINE=\"$(target_alias)\" $(MAYBE_USE_COLLECT2) \ -c `echo $(srcdir)/collect2.c | sed 's,^\./,,'`cplus-dem.o: cplus-dem.c $(DEMANGLE_H)underscore.c: stamp-under ; @truestamp-under: $(GCC_PASSES) echo "int xxy_us_dummy;" >tmp-dum.c $(GCC_FOR_TARGET) -S tmp-dum.c echo '/*WARNING: This file is automatically generated!*/' >tmp-under.c if grep _xxy_us_dummy tmp-dum.s > /dev/null ; then \ echo "int prepends_underscore = 1;" >>tmp-under.c; \ else \ echo "int prepends_underscore = 0;" >>tmp-under.c; \ fi $(srcdir)/move-if-change tmp-under.c underscore.c -rm -f tmp-dum.c tmp-dum.s touch stamp-under# A file used by all variants of C.c-common.o : c-common.c $(CONFIG_H) $(TREE_H) c-tree.h c-lex.h flags.h# Language-independent files.DRIVER_DEFINES = \ -DSTANDARD_STARTFILE_PREFIX=\"$(libdir)/\" \ -DSTANDARD_EXEC_PREFIX=\"$(libdir)/gcc-lib/\" \ -DDEFAULT_TARGET_VERSION=\"$(version)\" \ -DDEFAULT_TARGET_MACHINE=\"$(target_alias)\" \ -DTOOLDIR_BASE_PREFIX=\"$(exec_prefix)/\"gcc.o: gcc.c $(CONFIG_H) gansidecl.h multilib.h Makefile $(lang_specs_files) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ $(DRIVER_DEFINES) \ -c `echo $(srcdir)/gcc.c | sed 's,^\./,,'`dumpvers: dumpvers.cversion.o: version.cobstack.o: obstack.c $(CONFIG_H)choose-temp.o: choose-temp.c $(CONFIG_H) gansidecl.hpexecute.o: pexecute.c $(CONFIG_H) gansidecl.hprefix.o: prefix.c $(CONFIG_H) gansidecl.h Makefile $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) \ -DPREFIX=\"$(prefix)\" \ -c `echo $(srcdir)/prefix.c | sed 's,^\./,,'`convert.o: convert.c $(CONFIG_H) $(TREE_H) flags.h convert.htree.o : tree.c $(CONFIG_H) $(TREE_H) flags.h function.hprint-tree.o : print-tree.c $(CONFIG_H) $(TREE_H)stor-layout.o : stor-layout.c $(CONFIG_H) $(TREE_H) flags.h function.hfold-const.o : fold-const.c $(CONFIG_H) $(TREE_H) flags.h toplev.o : toplev.c $(CONFIG_H) $(TREE_H) $(RTL_H) bytecode.h bc-emit.h \ flags.h input.h insn-attr.h xcoffout.h defaults.h output.h \ $(lang_options_files) $(CC) $(ALL_CFLAGS) $(ALL_CPPFLAGS) $(INCLUDES) $(MAYBE_USE_COLLECT2) \ -DTARGET_NAME=\"$(target_alias)\" \ -c `echo $(srcdir)/toplev.c | sed 's,^\./,,'`rtl.o : rtl.c $(CONFIG_H) $(RTL_H)print-rtl.o : print-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 function.h \ defaults.h insn-codes.h expr.h hard-reg-set.h regs.h xcoffout.h \ output.h bytecode.h c-pragma.hfunction.o : function.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \ $(RECOG_H) output.h bytecode.h bc-emit.hstmt.o : stmt.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-config.h insn-codes.h hard-reg-set.h expr.h except.h \ loop.h $(RECOG_H) bytecode.h bc-typecd.h bc-typecd.def bc-opcode.h \ bc-optab.h bc-emit.hexcept.o : except.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h \ insn-flags.h insn-codes.h expr.h regs.h hard-reg-set.h insn-config.h \ $(RECOG_H) output.h except.hexpr.o : expr.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h function.h regs.h \ insn-flags.h insn-codes.h expr.h insn-config.h $(RECOG_H) output.h \ typeclass.h bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h \ bc-emit.h modemap.def hard-reg-set.hcalls.o : calls.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h expr.h insn-codes.h \ insn-flags.h regs.hexpmed.o : expmed.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) real.hexplow.o : explow.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h hard-reg-set.h \ insn-config.h expr.h $(RECOG_H) insn-flags.h insn-codes.hoptabs.o : optabs.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h \ insn-flags.h insn-config.h insn-codes.h expr.h $(RECOG_H) reload.hdbxout.o : dbxout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h regs.h \ insn-config.h reload.h gstab.h xcoffout.h defaults.h output.hsdbout.o : sdbout.c $(CONFIG_H) $(TREE_H) $(RTL_H) flags.h except.h \ function.h expr.h output.h hard-reg-set.h regs.h defaults.h real.h \ insn-config.h bytecode.h obstack.h xcoffout.h c-pragma.hdwarfout.o : dwarfout.c $(CONFIG_H) $(TREE_H) $(RTL_H) dwarf.h flags.h \ insn-config.h reload.h output.h defaults.hdwarf2out.o : dwarf2out.c $(CONFIG_H) $(TREE_H) $(RTL_H) dwarf2.h flags.h \ insn-config.h reload.h output.h defaults.h hard-reg-set.h regs.h expr.hxcoffout.o : xcoffout.c $(CONFIG_H) $(TREE_H) $(RTL_H) xcoffout.h flags.hemit-rtl.o : emit-rtl.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h except.h \ function.h regs.h insn-config.h $(RECOG_H) real.h expr.h obstack.h \ bytecode.h bc-opcode.h bc-typecd.h bc-typecd.def bc-optab.h bc-emit.h \ bc-opname.hreal.o : real.c $(CONFIG_H) $(TREE_H)getpwd.o : getpwd.c $(CONFIG_H)integrate.o : integrate.c $(CONFIG_H) $(RTL_H) $(TREE_H) flags.h integrate.h \ insn-flags.h insn-config.h insn-codes.h expr.h real.h regs.h function.h \ bytecode.h output.h $(RECOG_H) except.hjump.o : jump.c $(CONFIG_H) $(RTL_H) flags.h hard-reg-set.h regs.h \ insn-config.h insn-flags.h $(RECOG_H) expr.h real.h except.hstupid.o : stupid.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.hcse.o : cse.c $(CONFIG_H) $(RTL_H) regs.h hard-reg-set.h flags.h real.h \ insn-config.h $(RECOG_H) expr.hprofile.o : profile.c $(CONFIG_H) $(RTL_H) flags.h insn-flags.h gcov-io.h \
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -