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

📄 makefile.in

📁 GUN开源阻止下的编译器GCC
💻 IN
📖 第 1 页 / 共 5 页
字号:
	  -nostartfiles -nostdlib `$(GCC_FOR_TARGET) --print-libgcc-file-name`libgcc1-test.o: libgcc1-test.c native xgcc	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) -c $(srcdir)/libgcc1-test.c# Recompile all the language-independent object files.# This is used only if the user explicitly asks for it.compilations: ${OBJS}# Create a list of the language-independent object files so the language# subdirectories needn't mention their names explicitly.stamp-objlist: Makefile $(OBJS) $(BC_OBJS)	echo " $(OBJS) $(BC_OBJS)" | sed -e 's, \([a-z]\), ../\1,g' -e 's/\.o/$(objext)/g' >stamp-objlist# We call this executable `xgcc' rather than `gcc'# to avoid confusion if the current directory is in the path# and CC is `gcc'.  It is renamed to `gcc' when it is installed.xgcc: gcc.o version.o $(LIBDEPS) $(EXTRA_GCC_OBJS)	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ gcc.o version.o $(EXTRA_GCC_OBJS) $(LIBS)# Dump a specs file to make -B./ read these specs over installed ones.specs: xgcc	$(GCC_FOR_TARGET) -dumpspecs > tmp-specs	mv tmp-specs specs# We do want to create an executable named `xgcc', so we can use it to# compile libgcc2.a.# Also create gcc-cross, so that install-common will install properly.gcc-cross: xgcc	cp xgcc$(exeext) gcc-cross$(exeext)cc1: $(P) $(C_OBJS) $(OBJS) $(BC_OBJS) $(LIBDEPS)	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(C_OBJS) $(OBJS) $(BC_OBJS) $(LIBS)cc1obj: $(P) $(OBJC_OBJS) $(OBJS) $(BC_OBJS) $(LIBDEPS)	$(CC) $(ALL_CFLAGS) $(LDFLAGS) -o $@ $(OBJC_OBJS) $(OBJS) $(BC_OBJS) $(LIBS)# Copy float.h from its source.gfloat.h: $(FLOAT_H)	-rm -f gfloat.h	cp $(FLOAT_H) gfloat.h# Create float.h source for the native machine.float.h-nat: enquire	-./enquire -f > tmp-float.h	mv tmp-float.h float.h-nat# Create a dummy float.h source for a cross-compiler.float.h-cross:	echo "#error float.h values not known for cross-compiler" > t-float.h-cross	mv t-float.h-cross float.h-cross# Used to compile enquire with standard cc, but have forgotten why.# Let's try with GCC.enquire: enquire.o $(GCC_PARTS)	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ENQUIRE_LDFLAGS) enquire.o -o $@enquire.o: $(srcdir)/enquire.c $(GCC_PASSES) stmp-int-hdrs# Breaking this line caused a problem with one version of GNU make.	$(GCC_FOR_TARGET) $(GCC_CFLAGS) $(ALL_CPPFLAGS) $(ENQUIRE_CFLAGS) -I. -c $(srcdir)/enquire.c# Build the version of limits.h that we will install.xlimits.h: glimits.h limitx.h limity.h	if $(LIMITS_H_TEST) ; then \	  cat $(srcdir)/limitx.h $(srcdir)/glimits.h $(srcdir)/limity.h > tmp-xlimits.h; \	else \	  cat $(srcdir)/glimits.h > tmp-xlimits.h; \	fi	mv tmp-xlimits.h xlimits.h# Build libgcc.a.# This is done in two parts because some functions, in libgcc1.c,# must be compiled with something other than GCC,# while the rest, in libgcc2.c, must be compiled with xgcc.# That means we can't do libgcc2.c until after xgcc, cc1, etc.# Use this as value of LIBGCC1 to cause conversion to GNU library format.# LIBCONVERT should put its output in libgcc1.conv.libgcc1.conv: libgcc1.a	$(LIBCONVERT) libgcc1.a libgcc1.conv# Use this as value of LIBGCC1 to inhibit use of libgcc1.c entirely.# Make an empty file instead.libgcc1.null: $(GCC_PASSES)	echo "__foo () {}" > dummy.c	$(GCC_FOR_TARGET) $(GCC_CFLAGS) -c dummy.c	$(OLDAR) $(OLDAR_FLAGS) libgcc1.null dummy$(objext)	rm -f dummy$(objext) dummy.c# This is $(LIBGCC1) for a cross-compiler.# We have no automatic way of building libgcc1.a, # so it's up to the installer to find a way to do that.# This rule deliberately does not depend on libgcc1.a# so that it will fail if the installer hasn't provided it.libgcc1.cross:	mv libgcc1.a libgcc1.cross || (echo You must find a way to make libgcc1.a; false)# Compile the library of arithmetic subroutines with the native compiler.# Don't compile it with GCC!# (That would cause most arithmetic functions to call themselves.)libgcc1.a: libgcc1.c $(CONFIG_H) $(LIB1FUNCS_EXTRA) config.status	-rm -f tmplibgcc1.a# Actually build it in tmplibgcc1.a, then rename at end,# so that libgcc1.a itself remains nonexistent if compilation is aborted.# -e causes any failing command to make this rule fail.# -e doesn't work in certain shells, so we test $$? as well.# lynx has a broken ar, it always complains when the initial library is# empty, thus this command works only if we don't do -e# There is a trailing backslash (\) deleted from the following line.#	set -e;	for name in $(LIB1FUNCS); \	do \	  echo $${name}; \	  rm -f $${name}$(objext); \	  $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c -DL$${name} $(srcdir)/libgcc1.c; \	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	  mv libgcc1$(objext) $${name}$(objext); \	  $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \	  rm -f $${name}$(objext); \	done# Some shells crash when a loop has no items.# So make sure there is always at least one--`..'.# Then ignore it.# We don't use -e here because there are if statements# that should not make the command give up when the if condition is false.# Instead, we test for failure after each command where it matters.	for file in .. $(LIB1FUNCS_EXTRA); \	do \	  if [ x$${file} != x.. ]; then \	    name=`echo $${file} | sed -e 's/[.][cS]$$//' -e 's/[.]asm$$//'`; \	    echo $${name}; \	    if [ $${name}.asm = $${file} ]; then \	      cp $${file} $${name}.s || exit 1; file=$${name}.s; \	    else true; fi; \	    $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -c $${file}; \	    if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	    $(OLDAR) $(OLDAR_FLAGS) tmplibgcc1.a $${name}$(objext); \	    if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	    rm -f $${name}.s $${name}$(objext); \	  else true; \	  fi; \	done	-if $(RANLIB_TEST) ; then $(RANLIB) tmplibgcc1.a; else true; fi	mv tmplibgcc1.a libgcc1.a# Build libgcc1.a from assembler source.  LIB1ASMFUNCS is the list of# functions.  LIB1ASMSRC is the name of the source file in the config# subdirectory.libgcc1-asm.a: libgcc2.ready config.status $(srcdir)/config/$(LIB1ASMSRC)	-rm -f tmplibgcc1.a libgcc1.S	cp $(srcdir)/config/$(LIB1ASMSRC) libgcc1.S# Actually build it in tmplibgcc1.a, then rename at end,# so that libgcc1-asm.a itself remains nonexistent if compilation is aborted.# -e causes any failing command to make this rule fail.# -e doesn't work in certain shells, so we test $$? as well.# lynx has a broken ar, it always complains when the initial library is# empty, thus this command works only if we don't do -e# There is a trailing backslash (\) deleted from the following line.#	set -e;	for name in $(LIB1ASMFUNCS); \	do \	  echo $${name}; \	  $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} libgcc1.S; \	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	  mv libgcc1$(objext) $${name}$(objext); \	  $(AR) $(AR_FLAGS) tmplibgcc1.a $${name}$(objext); \	  rm -f $${name}$(objext); \	done	-rm -f libgcc1.S	mv tmplibgcc1.a libgcc1-asm.a# Generate assembly versions of the functions required for libgcc1.# You'll still need to massage the code by hand (possibly hacking# underscores and local labels) but this will get you started.libgcc1.S: libgcc1.c $(CONFIG_H) config.status	-rm -f libgcc1.S	touch libgcc1.S	for name in $(LIB1FUNCS); \	do \	  echo $${name}; \	  $(OLDCC) $(CCLIBFLAGS) $(INCLUDES) -S -DL$${name} $(srcdir)/libgcc1.c; \	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	  echo '#ifdef ' L$${name} >> libgcc1.S; \	  cat  libgcc1.s >> libgcc1.S; \	  echo '#endif /*' L$${name} '*/' >> libgcc1.S; \	  echo "" >> libgcc1.S; \	done# Compiling libgcc2.a requires making sure that cc1, etc. have been compiled.# But recompiling cc1 should not force recompilation of libgcc2.a.# If you want to force recompilation, delete libgcc2.a.libgcc2.ready: $(GCC_PASSES) $(LIBGCC2_DEPS) stmp-int-hdrs	-if [ -f libgcc2.ready ] ; then \		true; \	else \		touch libgcc2.ready; \	filibgcc2.a: libgcc2.c libgcc2.ready $(CONFIG_H) $(LIB2FUNCS_EXTRA) \   machmode.h longlong.h gbl-ctors.h config.status# Actually build it in tmplibgcc2.a, then rename at end,# so that libgcc2.a itself remains nonexistent if compilation is aborted.	-rm -f tmplibgcc2.a# -e causes any failing command to make this rule fail.# -e doesn't work in certain shells, so we test $$? as well.# lynx has a broken ar, it always complains when the initial library is# empty, thus this command works only if we don't do -e# There is a trailing backslash (\) deleted from the following line.#	set -e;	for name in $(LIB2FUNCS); \	do \	  echo $${name}; \	  $(GCC_FOR_TARGET) $(LIBGCC2_CFLAGS) $(INCLUDES) -c -DL$${name} \	      $(srcdir)/libgcc2.c -o $${name}$(objext); \	  if [ $$? -eq 0 ] ; then true; else exit 1; fi; \	  $(AR) $(AR_FLAGS) tmplibgcc2.a $${name}$(objext); \	  rm -f $${name}$(objext); \	done# Some shells crash when a loop has no items.# So make sure there is always at least one--`..'.# Then ignore it.# We don't use -e here because there are if statements# that should not make the command give up when the if condition is false.# Instead, we test for failure after each command where it matters.	for file in .. $(LIB2FUNCS_EXTRA); \	do \	  if [ x$${file} != x.. ]; then \	    name=`echo $${file} | sed -e 's/[.][cS]$$//' -e 's/[.]asm$$//'`; \	    oname=` echo $${name} | sed -e 's,.*/,,'`; \	    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); \	  else true; \	  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: $(srcdir)/genmultilib Makefile	$(SHELL) $(srcdir)/genmultilib "$(MULTILIB_OPTIONS)" \	  "$(MULTILIB_DIRNAMES)" "$(MULTILIB_MATCHES)" > multilib.h# Build multiple copies of libgcc.a, one for each target switch.stmp-multilib: $(LIBGCC1) libgcc2.c libgcc2.ready $(CONFIG_H) \   $(LIB2FUNCS_EXTRA) 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)" \	    HOST_PREFIX="$(HOST_PREFIX)" HOST_PREFIX_1="$(HOST_PREFIX_1)" \	    LIBGCC2_CFLAGS="$(LIBGCC2_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 $(dir)/libgcc.a $(LIBGCC2)	$(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)" \	  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)" \	    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.aobjc-runtime: libobjc.a# Build the Objective C runtime library.libobjc.a: cc1obj stmp-int-hdrs libgcc2.ready $(USE_COLLECT2) $(EXTRA_PARTS)	if [ -d objc ]; then true; else mkdir objc; fi	thisdir1=`pwd`; \	srcdir1=`cd $(srcdir); pwd`; \	cd objc; \	$(MAKE) -f $${srcdir1}/objc/Makefile libobjc.a \	  srcdir=$${srcdir1} tooldir=$(tooldir) AR="$(AR)" AR_FLAGS="$(AR_FLAGS)" \

⌨️ 快捷键说明

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