OSDN Git Service

2009-10-06 Jerry DeLisle <jvdelisle@gcc.gnu.org>
[pf3gnuchains/gcc-fork.git] / Makefile.tpl
index 056296a..45a58c5 100644 (file)
@@ -120,6 +120,19 @@ BUILD_SUBDIR = @build_subdir@
 # directories built for the build system.
 BUILD_CONFIGARGS = @build_configargs@ --with-build-subdir="$(BUILD_SUBDIR)"
 
+# Linker flags to use on the host, for stage1 or when not
+# bootstrapping.
+STAGE1_LDFLAGS = @stage1_ldflags@
+
+# Libraries to use on the host, for stage1 or when not bootstrapping.
+STAGE1_LIBS = @stage1_libs@
+
+# Linker flags to use for stage2 and later.
+POSTSTAGE1_LDFLAGS = @poststage1_ldflags@
+
+# Libraries to use for stage2 and later.
+POSTSTAGE1_LIBS = @poststage1_libs@
+
 # This is the list of variables to export in the environment when
 # configuring any subdirectory.  It must also be exported whenever
 # recursing into a build directory in case that directory's Makefile
@@ -130,6 +143,8 @@ BASE_EXPORTS = \
        BISON="$(BISON)"; export BISON; \
        YACC="$(YACC)"; export YACC; \
        M4="$(M4)"; export M4; \
+       SED="$(SED)"; export SED; \
+       AWK="$(AWK)"; export AWK; \
        MAKEINFO="$(MAKEINFO)"; export MAKEINFO;
 
 # This is the list of variables to export in the environment when
@@ -185,7 +200,7 @@ HOST_EXPORTS = \
        CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \
        DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \
        LD="$(LD)"; export LD; \
-       LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \
+       LDFLAGS="$(STAGE1_LDFLAGS) $(LDFLAGS)"; export LDFLAGS; \
        NM="$(NM)"; export NM; \
        RANLIB="$(RANLIB)"; export RANLIB; \
        WINDRES="$(WINDRES)"; export WINDRES; \
@@ -200,12 +215,15 @@ HOST_EXPORTS = \
        OBJDUMP_FOR_TARGET="$(OBJDUMP_FOR_TARGET)"; export OBJDUMP_FOR_TARGET; \
        RANLIB_FOR_TARGET="$(RANLIB_FOR_TARGET)"; export RANLIB_FOR_TARGET; \
        TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \
+       HOST_LIBS="$(STAGE1_LIBS)"; export HOST_LIBS; \
        GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \
        GMPINC="$(HOST_GMPINC)"; export GMPINC; \
        PPLLIBS="$(HOST_PPLLIBS)"; export PPLLIBS; \
        PPLINC="$(HOST_PPLINC)"; export PPLINC; \
        CLOOGLIBS="$(HOST_CLOOGLIBS)"; export CLOOGLIBS; \
        CLOOGINC="$(HOST_CLOOGINC)"; export CLOOGINC; \
+       LIBELFLIBS="$(HOST_LIBELFLIBS)" ; export LIBELFLIBS; \
+       LIBELFINC="$(HOST_LIBELFINC)" ; export LIBELFINC; \
 @if gcc-bootstrap
        $(RPATH_ENVVAR)=`echo "$(TARGET_LIB_PATH)$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); \
 @endif gcc-bootstrap
@@ -218,8 +236,16 @@ POSTSTAGE1_HOST_EXPORTS = \
          -B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ \
          $(XGCC_FLAGS_FOR_TARGET) $$TFLAGS"; export CC; \
        CC_FOR_BUILD="$$CC"; export CC_FOR_BUILD; \
-       GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND \
-       LDFLAGS="$(BOOT_LDFLAGS)"; export LDFLAGS;
+       CXX="$(STAGE_CC_WRAPPER) $$r/$(HOST_SUBDIR)/prev-gcc/g++$(exeext) \
+         -B$$r/$(HOST_SUBDIR)/prev-gcc/ -B$(build_tooldir)/bin/ -nostdinc++ \
+         -I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include/$(TARGET_SUBDIR) \
+         -I$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/include \
+         -I$$s/libstdc++-v3/libsupc++ \
+         -L$$r/prev-$(TARGET_SUBDIR)/libstdc++-v3/src/.libs"; export CXX; \
+       CXX_FOR_BUILD="$$CXX"; export CXX_FOR_BUILD; \
+       GNATBIND="$$r/$(HOST_SUBDIR)/prev-gcc/gnatbind"; export GNATBIND; \
+       LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)"; export LDFLAGS; \
+       HOST_LIBS="$(POSTSTAGE1_LIBS)"; export HOST_LIBS;
 
 # Target libraries are put under this directory:
 TARGET_SUBDIR = @target_subdir@
@@ -272,6 +298,10 @@ HOST_PPLINC = @pplinc@
 HOST_CLOOGLIBS = @clooglibs@
 HOST_CLOOGINC = @clooginc@
 
+# Where to find libelf
+HOST_LIBELFLIBS = @libelflibs@
+HOST_LIBELFINC = @libelfinc@
+
 # ----------------------------------------------
 # Programs producing files for the BUILD machine
 # ----------------------------------------------
@@ -315,6 +345,8 @@ BOOT_CFLAGS= -g -O2
 BOOT_LDFLAGS=
 BOOT_ADAFLAGS=-gnatpg -gnata
 
+AWK = @AWK@
+SED = @SED@
 BISON = @BISON@
 YACC = @YACC@
 FLEX = @FLEX@
@@ -540,8 +572,11 @@ X11_FLAGS_TO_PASS = \
 # Flags to pass to stage2 and later makes.
 
 POSTSTAGE1_FLAGS_TO_PASS = \
-       CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" GNATBIND="$${GNATBIND}" \
-       LDFLAGS="$(BOOT_LDFLAGS)" \
+       CC="$${CC}" CC_FOR_BUILD="$${CC_FOR_BUILD}" \
+       CXX="$${CXX}" CXX_FOR_BUILD="$${CXX_FOR_BUILD}" \
+       GNATBIND="$${GNATBIND}" \
+       LDFLAGS="$(POSTSTAGE1_LDFLAGS) $(BOOT_LDFLAGS)" \
+       HOST_LIBS="$(POSTSTAGE1_LIBS)" \
        "`echo 'ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`"
 
 # Flags to pass down to makes which are built with the target environment.
@@ -590,7 +625,7 @@ EXTRA_GCC_FLAGS = \
 GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS)
 
 @if gcc
-BUILD_CONFIG =
+BUILD_CONFIG = @BUILD_CONFIG@
 ifneq ($(BUILD_CONFIG),)
 include $(foreach CONFIG, $(BUILD_CONFIG), $(srcdir)/config/$(CONFIG).mk)
 endif
@@ -620,16 +655,17 @@ all:
        @r=`${PWD_COMMAND}`; export r; \
        s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \
 @if gcc-bootstrap
-       if [ -f stage_last ]; then : ; \
-         TFLAGS="$(STAGE$(shell sed s,^stage,, stage_last)_TFLAGS)"; \
+       if [ -f stage_last ]; then \
+         TFLAGS="$(STAGE$(shell test ! -f stage_last || sed s,^stage,, stage_last)_TFLAGS)"; \
          $(MAKE) $(TARGET_FLAGS_TO_PASS) all-host all-target; \
        else \
 @endif gcc-bootstrap
-         $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-host all-target; \
+         $(MAKE) $(RECURSE_FLAGS_TO_PASS) all-host all-target \
 @if gcc-bootstrap
-       fi; \
+           ; \
+       fi \
 @endif gcc-bootstrap
-       :
+       && :
 
 .PHONY: all-build
 [+ FOR build_modules +]
@@ -1426,15 +1462,16 @@ do-clean: clean-stage[+id+]
        : $(MAKE); $(stage); \
        rm -f .bad_compare ; \
        echo Comparing stages [+prev+] and [+id+] ; \
-       cd stage[+id+]-gcc; \
-       files=`find . -name "*$(objext)" -print` ; \
-       cd .. ; \
+        sed=`echo stage[+id+] | sed 's,^stage,,;s,.,.,g'`; \
+       files=`find stage[+id+]-* -name "*$(objext)" -print | \
+                sed -n s,^stage$$sed-,,p` ; \
        for file in $${files} ; do \
-         f1=$$r/stage[+prev+]-gcc/$$file; f2=$$r/stage[+id+]-gcc/$$file; \
+         f1=$$r/stage[+prev+]-$$file; f2=$$r/stage[+id+]-$$file; \
+         if test ! -f $$f1; then continue; fi; \
          $(do-[+compare-target+]) > /dev/null 2>&1; \
          if test $$? -eq 1; then \
            case $$file in \
-             ./cc*-checksum$(objext) | ./libgcc/* ) \
+             @compare_exclusions@) \
                echo warning: $$file differs ;; \
              *) \
                echo $$file differs >> .bad_compare ;; \