X-Git-Url: http://git.sourceforge.jp/view?a=blobdiff_plain;f=Makefile.tpl;h=6e946098dcd392efae7410890647ff69c4f40acd;hb=8afdc344903f67917b24fb879384c470e859dd84;hp=0a79790a3f22474394a346fcfcd72e4d935d3bab;hpb=ca3b731f08554b4f7ef011cb3e6ccef9961d3d0f;p=pf3gnuchains%2Fgcc-fork.git diff --git a/Makefile.tpl b/Makefile.tpl index 0a79790a3f2..6e946098dcd 100644 --- a/Makefile.tpl +++ b/Makefile.tpl @@ -29,20 +29,11 @@ in VPATH=@srcdir@ build_alias=@build_alias@ -build_cpu=@build_cpu@ -build_vendor=@build_vendor@ -build_os=@build_os@ -build_canonical=@build_cpu@-@build_vendor@-@build_os@ +build=@build@ host_alias=@host_alias@ -host_cpu=@host_cpu@ -host_vendor=@host_vendor@ -host_os=@host_os@ -host_canonical=@host_cpu@-@host_vendor@-@host_os@ +host=@host@ target_alias=@target_alias@ -target_cpu=@target_cpu@ -target_vendor=@target_vendor@ -target_os=@target_os@ -target_canonical=@target_cpu@-@target_vendor@-@target_os@ +target=@target@ program_transform_name = @program_transform_name@ @@ -73,20 +64,15 @@ man7dir = $(mandir)/man7 man8dir = $(mandir)/man8 man9dir = $(mandir)/man9 -# INSTALL_PROGRAM_ARGS is changed by configure.in to use -x for a -# cygwin host. -INSTALL_PROGRAM_ARGS = - -INSTALL = $(SHELL) $$s/install-sh -c -INSTALL_PROGRAM = $(INSTALL) $(INSTALL_PROGRAM_ARGS) -INSTALL_SCRIPT = $(INSTALL) -INSTALL_DATA = $(INSTALL) -m 644 +INSTALL = @INSTALL@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_DATA = @INSTALL_DATA@ # ------------------------------------------------- # Miscellaneous non-standard autoconf-set variables # ------------------------------------------------- -links=@configlinks@ # The file containing GCC's version number. gcc_version_trigger = @gcc_version_trigger@ gcc_version = @gcc_version@ @@ -101,7 +87,7 @@ tooldir = @tooldir@ build_tooldir = @build_tooldir@ # Directory in which the compiler finds executables, libraries, etc. -libsubdir = $(libdir)/gcc-lib/$(target_alias)/$(gcc_version) +libsubdir = $(libdir)/gcc/$(target_alias)/$(gcc_version) GDB_NLM_DEPS = # This is the name of the environment variable used for the path to @@ -119,7 +105,7 @@ REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); # This is the list of directories to be built for the build system. -BUILD_CONFIGDIRS = libiberty +BUILD_CONFIGDIRS = libiberty libbanshee # Build programs are put under this directory. BUILD_SUBDIR = @build_subdir@ # This is set by the configure script to the arguments to use when configuring @@ -141,6 +127,10 @@ TARGET_SUBDIR = @target_subdir@ # directories built for the target. TARGET_CONFIGARGS = @target_configargs@ +# Where to find GMP +HOST_GMPLIBS = @gmplibs@ +HOST_GMPINC = @gmpinc@ + # ---------------------------------------------- # Programs producing files for the BUILD machine # ---------------------------------------------- @@ -151,18 +141,19 @@ SHELL = @config_shell@ # the environment to account for automounters. The make variable must not # be called PWDCMD, otherwise the value set here is passed to make # subprocesses and overrides the setting from the user's environment. -PWD = $${PWDCMD-pwd} +# Don't use PWD since it is a common shell environment variable and we +# don't want to corrupt it. +PWD_COMMAND = $${PWDCMD-pwd} # compilers to use to create programs which must be run in the build # environment. CC_FOR_BUILD = @CC_FOR_BUILD@ -CFLAGS_FOR_BUILD = $(CFLAGS) +CFLAGS_FOR_BUILD = @CFLAGS_FOR_BUILD@ CXX_FOR_BUILD = $(CXX) # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -BUILD_CC = $(CC_FOR_BUILD) BUILD_PREFIX = @BUILD_PREFIX@ BUILD_PREFIX_1 = @BUILD_PREFIX_1@ @@ -257,33 +248,35 @@ PICFLAG = # This is the list of directories that may be needed in RPATH_ENVVAR # so that prorgams built for the target machine work. -TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs: +TARGET_LIB_PATH = $$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs:$$r/$(TARGET_SUBDIR)/libmudflap/.libs FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ AR_FOR_TARGET=@AR_FOR_TARGET@ +CONFIGURED_AR_FOR_TARGET=@CONFIGURED_AR_FOR_TARGET@ USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AR); \ else \ - echo ar | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_AR_FOR_TARGET) ; \ fi; \ fi` AS_FOR_TARGET=@AS_FOR_TARGET@ +CONFIGURED_AS_FOR_TARGET=@CONFIGURED_AS_FOR_TARGET@ USUAL_AS_FOR_TARGET = ` \ if [ -f $$r/gas/as-new ] ; then \ echo $$r/gas/as-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=as ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(AS); \ else \ - echo as | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_AS_FOR_TARGET) ; \ fi; \ fi` @@ -309,74 +302,80 @@ CXXFLAGS_FOR_TARGET = $(CXXFLAGS) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ +CONFIGURED_DLLTOOL_FOR_TARGET=@CONFIGURED_DLLTOOL_FOR_TARGET@ USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(DLLTOOL); \ else \ - echo dlltool | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_DLLTOOL_FOR_TARGET) ; \ fi; \ fi` GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ +GFORTRAN_FOR_TARGET = @GFORTRAN_FOR_TARGET@ LD_FOR_TARGET=@LD_FOR_TARGET@ +CONFIGURED_LD_FOR_TARGET=@CONFIGURED_LD_FOR_TARGET@ USUAL_LD_FOR_TARGET = ` \ if [ -f $$r/ld/ld-new ] ; then \ echo $$r/ld/ld-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=ld ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(LD); \ else \ - echo ld | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_LD_FOR_TARGET) ; \ fi; \ fi` LDFLAGS_FOR_TARGET = NM_FOR_TARGET=@NM_FOR_TARGET@ +CONFIGURED_NM_FOR_TARGET=@CONFIGURED_NM_FOR_TARGET@ USUAL_NM_FOR_TARGET = ` \ if [ -f $$r/binutils/nm-new ] ; then \ echo $$r/binutils/nm-new ; \ elif [ -f $$r/gcc/xgcc ]; then \ $(CC_FOR_TARGET) -print-prog-name=nm ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(NM); \ else \ - echo nm | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_NM_FOR_TARGET) ; \ fi; \ fi` RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +CONFIGURED_RANLIB_FOR_TARGET=@CONFIGURED_RANLIB_FOR_TARGET@ USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ if [ x'$(RANLIB)' != x ]; then \ echo $(RANLIB); \ else \ echo ranlib; \ fi; \ else \ - echo ranlib | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_RANLIB_FOR_TARGET) ; \ fi; \ fi` WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ +CONFIGURED_WINDRES_FOR_TARGET=@CONFIGURED_WINDRES_FOR_TARGET@ USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ - if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ + if [ '$(host)' = '$(target)' ] ; then \ echo $(WINDRES); \ else \ - echo windres | sed '$(program_transform_name)' ; \ + echo $(CONFIGURED_WINDRES_FOR_TARGET) ; \ fi; \ fi` @@ -399,70 +398,10 @@ all: all.normal ### # Flags to pass down to all sub-makes. -# Please keep these in alphabetical order. -BASE_FLAGS_TO_PASS = \ - "AR_FLAGS=$(AR_FLAGS)" \ - "AR_FOR_TARGET=$(AR_FOR_TARGET)" \ - "AS_FOR_TARGET=$(AS_FOR_TARGET)" \ - "BISON=$(BISON)" \ - "CC_FOR_BUILD=$(CC_FOR_BUILD)" \ - "CC_FOR_TARGET=$(CC_FOR_TARGET)" \ - "CFLAGS=$(CFLAGS)" \ - "CFLAGS_FOR_TARGET=$(CFLAGS_FOR_TARGET)" \ - "GCJ_FOR_TARGET=$(GCJ_FOR_TARGET)" \ - "CXX_FOR_BUILD=$(CXX_FOR_BUILD)" \ - "CXXFLAGS=$(CXXFLAGS)" \ - "CXXFLAGS_FOR_TARGET=$(CXXFLAGS_FOR_TARGET)" \ - "CXX_FOR_TARGET=$(CXX_FOR_TARGET)" \ - "DESTDIR=$(DESTDIR)" \ - "DLLTOOL_FOR_TARGET=$(DLLTOOL_FOR_TARGET)" \ - "INSTALL=$(INSTALL)" \ - "INSTALL_DATA=$(INSTALL_DATA)" \ - "INSTALL_PROGRAM=$(INSTALL_PROGRAM)" \ - "INSTALL_SCRIPT=$(INSTALL_SCRIPT)" \ - "LDFLAGS=$(LDFLAGS)" \ - "LEX=$(LEX)" \ - "LD_FOR_TARGET=$(LD_FOR_TARGET)" \ - "LIBCFLAGS=$(LIBCFLAGS)" \ - "LIBCFLAGS_FOR_TARGET=$(LIBCFLAGS_FOR_TARGET)" \ - "LIBCXXFLAGS=$(LIBCXXFLAGS)" \ - "LIBCXXFLAGS_FOR_TARGET=$(LIBCXXFLAGS_FOR_TARGET)" \ - "M4=$(M4)" \ - "MAKE=$(MAKE)" \ - "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" \ - "NM_FOR_TARGET=$(NM_FOR_TARGET)" \ - "RANLIB_FOR_TARGET=$(RANLIB_FOR_TARGET)" \ - "RPATH_ENVVAR=$(RPATH_ENVVAR)" \ - "SHELL=$(SHELL)" \ - "EXPECT=$(EXPECT)" \ - "RUNTEST=$(RUNTEST)" \ - "RUNTESTFLAGS=$(RUNTESTFLAGS)" \ - "TARGET_SUBDIR=$(TARGET_SUBDIR)" \ - "WINDRES_FOR_TARGET=$(WINDRES_FOR_TARGET)" \ - "YACC=$(YACC)" \ - "bindir=$(bindir)" \ - "datadir=$(datadir)" \ - "exec_prefix=$(exec_prefix)" \ - "includedir=$(includedir)" \ - "infodir=$(infodir)" \ - "libdir=$(libdir)" \ - "libexecdir=$(libexecdir)" \ - "lispdir=$(lispdir)" \ - "libstdcxx_incdir=$(libstdcxx_incdir)" \ - "libsubdir=$(libsubdir)" \ - "localstatedir=$(localstatedir)" \ - "mandir=$(mandir)" \ - "oldincludedir=$(oldincludedir)" \ - "prefix=$(prefix)" \ - "sbindir=$(sbindir)" \ - "sharedstatedir=$(sharedstatedir)" \ - "sysconfdir=$(sysconfdir)" \ - "tooldir=$(tooldir)" \ - "build_tooldir=$(build_tooldir)" \ - "gxx_include_dir=$(gxx_include_dir)" \ - "gcc_version=$(gcc_version)" \ - "gcc_version_trigger=$(gcc_version_trigger)" \ - "target_alias=$(target_alias)" +BASE_FLAGS_TO_PASS = [+ FOR flags_to_pass +]\ + "[+flag+]=$([+flag+])" [+ ENDFOR flags_to_pass +]\ + "CONFIG_SHELL=$(SHELL)" \ + "MAKEINFO=$(MAKEINFO) $(MAKEINFOFLAGS)" # For any flags above that may contain shell code that varies from one # target library to another. When doing recursive invocations of the @@ -527,30 +466,21 @@ TARGET_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_TARGET_FLAGS) # The BUILD_* variables are a special case, which are used for the gcc # cross-building scheme. EXTRA_GCC_FLAGS = \ - 'AR=$(AR)' \ - 'AS=$(AS)' \ - 'CC=$(CC)' \ - 'CXX=$(CXX)' \ - 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ - 'NM=$(NM)' \ - 'RANLIB=$(RANLIB)' \ - 'WINDRES=$$(WINDRES_FOR_TARGET)' \ "GCC_FOR_TARGET=$(GCC_FOR_TARGET)" \ "CFLAGS_FOR_BUILD=$(CFLAGS_FOR_BUILD)" \ - "`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'ENQUIRE=$(ENQUIRE)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" \ - "`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s/.*=$$/XFOO=/`" - -GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) + "`echo 'LANGUAGES=$(LANGUAGES)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'STMP_FIXPROTO=$(STMP_FIXPROTO)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'LIMITS_H_TEST=$(LIMITS_H_TEST)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'LIBGCC2_CFLAGS=$(LIBGCC2_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'LIBGCC2_DEBUG_CFLAGS=$(LIBGCC2_DEBUG_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'LIBGCC2_INCLUDES=$(LIBGCC2_INCLUDES)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'STAGE1_CFLAGS=$(STAGE1_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'BOOT_CFLAGS=$(BOOT_CFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" \ + "`echo 'BOOT_ADAFLAGS=$(BOOT_ADAFLAGS)' | sed -e s'/[^=][^=]*=$$/XFOO=/'`" + +GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_HOST_FLAGS) $(EXTRA_GCC_FLAGS) .PHONY: configure-host configure-host: maybe-configure-gcc [+ @@ -597,89 +527,6 @@ do-[+make_target+]: [+make_target+]-host [+make_target+]-target FOR target_modules +] \ maybe-[+make_target+]-target-[+module+][+ ENDFOR target_modules +] - -# GCC, the eternal special case -.PHONY: maybe-[+make_target+]-gcc [+make_target+]-gcc -maybe-[+make_target+]-gcc: -[+make_target+]-gcc: [+ - FOR depend +]\ - [+depend+]-gcc [+ - ENDFOR depend +] - @[ -f ./gcc/Makefile ] || exit 0; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - for flag in $(EXTRA_GCC_FLAGS); do \ - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ - done; \ - echo "Doing [+make_target+] in gcc" ; \ - (cd gcc && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - [+make_target+]) \ - || exit 1 - -# Host modules. -[+ FOR host_modules +] -.PHONY: maybe-[+make_target+]-[+module+] [+make_target+]-[+module+] -maybe-[+make_target+]-[+module+]: -[+ IF (match-value? = "missing" (get "make_target") ) +] -# [+module+] doesn't support [+make_target+]. -[+make_target+]-[+module+]: -[+ ELSE +] -[+make_target+]-[+module+]: [+ - FOR depend +]\ - [+depend+]-[+module+] [+ - ENDFOR depend +] - @[ -f ./[+module+]/Makefile ] || exit 0; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - for flag in $(EXTRA_HOST_FLAGS); do \ - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ - done; \ - echo "Doing [+make_target+] in [+module+]" ; \ - (cd [+module+] && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - [+make_target+]) \ - || exit 1 -[+ ENDIF +] -[+ ENDFOR host_modules +] - -# Target modules. -[+ FOR target_modules +] -.PHONY: maybe-[+make_target+]-target-[+module+] [+make_target+]-target-[+module+] -maybe-[+make_target+]-target-[+module+]: -[+ IF (match-value? = "missing" (get "make_target") ) +] -# [+module+] doesn't support [+make_target+]. -[+make_target+]-target-[+module+]: -[+ ELSE +] -[+make_target+]-target-[+module+]: [+ - FOR depend +]\ - [+depend+]-target-[+module+] [+ - ENDFOR depend +] - @[ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] || exit 0 ; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - echo "Doing [+make_target+] in $(TARGET_SUBDIR)/[+module+]" ; \ - for flag in $(EXTRA_TARGET_FLAGS); do \ - eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ - done; \ - (cd $(TARGET_SUBDIR)/[+module+] && \ - $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ - "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ - "RANLIB=$${RANLIB}" \ - "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - [+make_target+]) \ - || exit 1 -[+ ENDIF +] -[+ ENDFOR target_modules +] [+ ENDFOR recursive_targets +] # Here are the targets which correspond to the do-X targets. @@ -696,7 +543,7 @@ dvi: do-dvi do-info: maybe-all-texinfo install-info: do-install-info dir.info - s=`cd $(srcdir); ${PWD}`; export s; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ if [ -f dir.info ] ; then \ $(INSTALL_DATA) dir.info $(DESTDIR)$(infodir)/dir.info ; \ else true ; fi @@ -739,8 +586,7 @@ clean-target-libgcc: # Check target. .PHONY: check do-check -check: - $(MAKE) do-check NOTPARALLEL=parallel-ok +check: do-check # Only include modules actually being configured and built. do-check: maybe-check-gcc [+ @@ -801,7 +647,7 @@ uninstall: .PHONY: install.all install.all: install-no-fixedincludes @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}` ; export r ; \ + r=`${PWD_COMMAND}` ; export r ; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(FLAGS_TO_PASS) install-headers) ; \ @@ -851,19 +697,22 @@ TAGS: do-TAGS [+ FOR build_modules +] .PHONY: configure-build-[+module+] maybe-configure-build-[+module+] maybe-configure-build-[+module+]: +@if build-[+module+] +maybe-configure-build-[+module+]: configure-build-[+module+] configure-build-[+module+]: @test ! -f $(BUILD_SUBDIR)/[+module+]/Makefile || exit 0; \ - [ -d $(BUILD_SUBDIR)/[+module+] ] || \ - mkdir $(BUILD_SUBDIR)/[+module+];\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + $(SHELL) $(srcdir)/mkinstalldirs $(BUILD_SUBDIR)/[+module+] ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ AR="$(AR_FOR_BUILD)"; export AR; \ AS="$(AS_FOR_BUILD)"; export AS; \ CC="$(CC_FOR_BUILD)"; export CC; \ CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CXX="$(CXX_FOR_BUILD)"; export CXX; \ CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \ + GFORTRAN="$(GFORTRAN_FOR_BUILD)"; export GFORTRAN; \ DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \ LD="$(LD_FOR_BUILD)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \ @@ -910,13 +759,17 @@ configure-build-[+module+]: $(BUILD_CONFIGARGS) $${srcdiroption} \ --with-build-subdir="$(BUILD_SUBDIR)" \ || exit 1 +@endif build-[+module+] .PHONY: all-build-[+module+] maybe-all-build-[+module+] maybe-all-build-[+module+]: +@if build-[+module+] +maybe-all-build-[+module+]: all-build-[+module+] all-build-[+module+]: configure-build-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ (cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all) +@endif build-[+module+] [+ ENDFOR build_modules +] # -------------------------------------- @@ -925,13 +778,16 @@ all-build-[+module+]: configure-build-[+module+] [+ FOR host_modules +] .PHONY: configure-[+module+] maybe-configure-[+module+] maybe-configure-[+module+]: +@if [+module+] +maybe-configure-[+module+]: configure-[+module+] configure-[+module+]: @test ! -f [+module+]/Makefile || exit 0; \ [ -d [+module+] ] || mkdir [+module+]; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ AR="$(AR)"; export AR; \ @@ -939,6 +795,7 @@ configure-[+module+]: CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ LD="$(LD)"; export LD; \ + LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ RANLIB="$(RANLIB)"; export RANLIB; \ WINDRES="$(WINDRES)"; export WINDRES; \ @@ -960,28 +817,34 @@ configure-[+module+]: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ || exit 1 +@endif [+module+] .PHONY: all-[+module+] maybe-all-[+module+] maybe-all-[+module+]: +@if [+module+] +maybe-all-[+module+]: all-[+module+] all-[+module+]: configure-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x +] $(X11_FLAGS_TO_PASS)[+ ENDIF with_x +] all) +@endif [+module+] .PHONY: check-[+module+] maybe-check-[+module+] maybe-check-[+module+]: +@if [+module+] +maybe-check-[+module+]: check-[+module+] [+ IF no_check +] check-[+module+]: [+ ELIF no_check_cross +] # This module is only tested in a native toolchain. check-[+module+]: - @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @if [ '$(host)' = '$(target)' ] ; then \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x @@ -990,29 +853,66 @@ check-[+module+]: fi [+ ELSE check +] check-[+module+]: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x +] $(X11_FLAGS_TO_PASS)[+ ENDIF with_x +] check) [+ ENDIF no_check +] +@endif [+module+] .PHONY: install-[+module+] maybe-install-[+module+] maybe-install-[+module+]: +@if [+module+] +maybe-install-[+module+]: install-[+module+] [+ IF no_install +] install-[+module+]: [+ ELSE install +] install-[+module+]: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd [+module+] && $(MAKE) $(FLAGS_TO_PASS)[+ IF with_x +] $(X11_FLAGS_TO_PASS)[+ ENDIF with_x +] install) [+ ENDIF no_install +] +@endif [+module+] + +# Other targets (info, dvi, etc.) +[+ FOR recursive_targets +] +.PHONY: maybe-[+make_target+]-[+module+] [+make_target+]-[+module+] +maybe-[+make_target+]-[+module+]: +@if [+module+] +maybe-[+make_target+]-[+module+]: [+make_target+]-[+module+] +[+ IF (match-value? = "missing" (get "make_target") ) +] +# [+module+] doesn't support [+make_target+]. +[+make_target+]-[+module+]: +[+ ELSE +] +[+make_target+]-[+module+]: [+ + FOR depend +]\ + [+depend+]-[+module+] [+ + ENDFOR depend +] + @[ -f ./[+module+]/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_HOST_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing [+make_target+] in [+module+]" ; \ + (cd [+module+] && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 +[+ ENDIF +] +@endif [+module+] +[+ ENDFOR recursive_targets +] [+ ENDFOR host_modules +] # --------------------------------------- @@ -1021,25 +921,26 @@ install-[+module+]: installdirs [+ FOR target_modules +] .PHONY: configure-target-[+module+] maybe-configure-target-[+module+] maybe-configure-target-[+module+]: +@if target-[+module+] +maybe-configure-target-[+module+]: configure-target-[+module+] # There's only one multilib.out. Cleverer subdirs shouldn't need it copied. $(TARGET_SUBDIR)/[+module+]/multilib.out: multilib.out - @[ -d $(TARGET_SUBDIR)/[+module+] ] || \ - mkdir $(TARGET_SUBDIR)/[+module+]; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/[+module+] ; \ rm -f $(TARGET_SUBDIR)/[+module+]/Makefile || : ; \ cp multilib.out $(TARGET_SUBDIR)/[+module+]/multilib.out configure-target-[+module+]: $(TARGET_SUBDIR)/[+module+]/multilib.out @test ! -f $(TARGET_SUBDIR)/[+module+]/Makefile || exit 0; \ - [ -d $(TARGET_SUBDIR)/[+module+] ] || \ - mkdir $(TARGET_SUBDIR)/[+module+];\ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + $(SHELL) $(srcdir)/mkinstalldirs $(TARGET_SUBDIR)/[+module+] ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ AR="$(AR_FOR_TARGET)"; export AR; \ AS="$(AS_FOR_TARGET)"; export AS; \ CC="$(CC_FOR_TARGET)"; export CC; \ CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CPPFLAGS="$(CFLAGS_FOR_TARGET)"; export CPPFLAGS; \[+ IF raw_cxx +] CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ @@ -1049,6 +950,7 @@ ELSE normal_cxx +] ENDIF raw_cxx +] CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ + GFORTRAN="$(GFORTRAN_FOR_TARGET)"; export GFORTRAN; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ LD="$(LD_FOR_TARGET)"; export LD; \ LDFLAGS="$(LDFLAGS_FOR_TARGET)"; export LDFLAGS; \ @@ -1065,7 +967,7 @@ ENDIF raw_cxx +] .) topdir="../$(srcdir)" ;; \ *) topdir="../../$(srcdir)" ;; \ esac ;; \ - esac; \ + esac; \[+ IF stage +] if [ "$(srcdir)" = "." ] ; then \ if [ "$(TARGET_SUBDIR)" != "." ] ; then \ if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \ @@ -1086,21 +988,24 @@ ENDIF raw_cxx +] fi; \ srcdiroption="--srcdir=."; \ libsrcdir="."; \ - else \ + else \[+ ENDIF stage +] srcdiroption="--srcdir=$${topdir}/[+module+]"; \ - libsrcdir="$$s/[+module+]"; \ - fi; \ + libsrcdir="$$s/[+module+]"; \[+ IF stage +] + fi; \[+ ENDIF stage +] rm -f no-such-file || : ; \ CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ $(TARGET_CONFIGARGS) $${srcdiroption} \ --with-target-subdir="$(TARGET_SUBDIR)" \ || exit 1 +@endif target-[+module+] .PHONY: all-target-[+module+] maybe-all-target-[+module+] maybe-all-target-[+module+]: +@if target-[+module+] +maybe-all-target-[+module+]: all-target-[+module+] all-target-[+module+]: configure-target-[+module+] - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ @@ -1108,16 +1013,19 @@ all-target-[+module+]: configure-target-[+module+] +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ ENDIF raw_cxx +] all) +@endif target-[+module+] .PHONY: check-target-[+module+] maybe-check-target-[+module+] maybe-check-target-[+module+]: +@if target-[+module+] +maybe-check-target-[+module+]: check-target-[+module+] [+ IF no_check +] # Dummy target for uncheckable module. check-target-[+module+]: [+ ELSE check +] check-target-[+module+]: - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ @@ -1126,20 +1034,57 @@ check-target-[+module+]: ENDIF raw_cxx +] check) [+ ENDIF no_check +] +@endif target-[+module+] .PHONY: install-target-[+module+] maybe-install-target-[+module+] maybe-install-target-[+module+]: +@if target-[+module+] +maybe-install-target-[+module+]: install-target-[+module+] [+ IF no_install +] # Dummy target for uninstallable. install-target-[+module+]: [+ ELSE install +] install-target-[+module+]: installdirs - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd $(TARGET_SUBDIR)/[+module+] && \ $(MAKE) $(TARGET_FLAGS_TO_PASS) install) [+ ENDIF no_install +] +@endif target-[+module+] + +# Other targets (info, dvi, etc.) +[+ FOR recursive_targets +] +.PHONY: maybe-[+make_target+]-target-[+module+] [+make_target+]-target-[+module+] +maybe-[+make_target+]-target-[+module+]: +@if target-[+module+] +maybe-[+make_target+]-target-[+module+]: [+make_target+]-target-[+module+] +[+ IF (match-value? = "missing" (get "make_target") ) +] +# [+module+] doesn't support [+make_target+]. +[+make_target+]-target-[+module+]: +[+ ELSE +] +[+make_target+]-target-[+module+]: [+ + FOR depend +]\ + [+depend+]-target-[+module+] [+ + ENDFOR depend +] + @[ -f $(TARGET_SUBDIR)/[+module+]/Makefile ] || exit 0 ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + echo "Doing [+make_target+] in $(TARGET_SUBDIR)/[+module+]" ; \ + for flag in $(EXTRA_TARGET_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + (cd $(TARGET_SUBDIR)/[+module+] && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 +[+ ENDIF +] +@endif target-[+module+] +[+ ENDFOR recursive_targets +] [+ ENDFOR target_modules +] # ---------- @@ -1151,15 +1096,24 @@ install-target-[+module+]: installdirs # build modules. So GCC is a sort of hybrid. # gcc is the only module which uses GCC_FLAGS_TO_PASS. +# Don't use shared host config.cache, as it will confuse later +# directories; GCC wants slightly different values for some +# precious variables. *sigh* + +# We must skip configuring if toplevel bootstrap is going. .PHONY: configure-gcc maybe-configure-gcc maybe-configure-gcc: +@if gcc +maybe-configure-gcc: configure-gcc configure-gcc: @test ! -f gcc/Makefile || exit 0; \ + [ -f stage_last ] && exit 0; \ [ -d gcc ] || mkdir gcc; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ CC="$(CC)"; export CC; \ CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ CXX="$(CXX)"; export CXX; \ CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ @@ -1168,11 +1122,14 @@ configure-gcc: CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ LD="$(LD)"; export LD; \ + LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \ NM="$(NM)"; export NM; \ RANLIB="$(RANLIB)"; export RANLIB; \ WINDRES="$(WINDRES)"; export WINDRES; \ OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + GMPLIBS="$(HOST_GMPLIBS)"; export GMPLIBS; \ + GMPINC="$(HOST_GMPINC)"; export GMPINC; \ echo Configuring in gcc; \ cd gcc || exit 1; \ case $(srcdir) in \ @@ -1189,24 +1146,28 @@ configure-gcc: $(SHELL) $${libsrcdir}/configure \ $(HOST_CONFIGARGS) $${srcdiroption} \ || exit 1 +@endif gcc # Don't 'make all' in gcc if it's already been made by 'bootstrap'; that # causes trouble. This wart will be fixed eventually by moving # the bootstrap behavior to this file. .PHONY: all-gcc maybe-all-gcc maybe-all-gcc: +@if gcc +maybe-all-gcc: all-gcc all-gcc: configure-gcc - @if [ -f gcc/stage_last ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + if [ -f stage_last ] ; then \ + true ; \ + elif [ -f gcc/stage_last ] ; then \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) quickstrap); \ else \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) all); \ fi +@endif gcc # Building GCC uses some tools for rebuilding "source" files # like texinfo, bison/byacc, etc. So we must depend on those. @@ -1221,13 +1182,13 @@ all-gcc: configure-gcc GCC_STRAP_TARGETS = bootstrap bootstrap-lean bootstrap2 bootstrap2-lean bootstrap3 bootstrap3-lean bootstrap4 bootstrap4-lean bubblestrap quickstrap cleanstrap restrap .PHONY: $(GCC_STRAP_TARGETS) $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ echo "Bootstrapping the compiler"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $@ - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ case "$@" in \ *bootstrap4-lean ) \ msg="Comparing stage3 and stage4 of the compiler"; \ @@ -1245,38 +1206,38 @@ $(GCC_STRAP_TARGETS): all-bootstrap configure-gcc $(SET_LIB_PATH) \ echo "$$msg"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) $$compare - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all profiledbootstrap: all-bootstrap configure-gcc - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ echo "Bootstrapping the compiler"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stageprofile_build - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries and training compiler"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) all - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ echo "Building feedback based compiler"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) stagefeedback_build .PHONY: cross cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ echo "Building the C and C++ compiler"; \ cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" - @r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + @r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ echo "Building runtime libraries"; \ $(MAKE) $(BASE_FLAGS_TO_PASS) $(RECURSE_FLAGS) \ @@ -1284,10 +1245,12 @@ cross: all-texinfo all-bison all-byacc all-binutils all-gas all-ld .PHONY: check-gcc maybe-check-gcc maybe-check-gcc: +@if gcc +maybe-check-gcc: check-gcc check-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check); \ else \ @@ -1297,8 +1260,8 @@ check-gcc: .PHONY: check-gcc-c++ check-gcc-c++: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) check-c++); \ else \ @@ -1306,20 +1269,23 @@ check-gcc-c++: fi .PHONY: check-c++ -check-c++: - $(MAKE) check-target-libstdc++-v3 check-gcc-c++ NOTPARALLEL=parallel-ok +check-c++: check-target-libstdc++-v3 check-gcc-c++ +@endif gcc .PHONY: install-gcc maybe-install-gcc maybe-install-gcc: +@if gcc +maybe-install-gcc: install-gcc install-gcc: @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ $(SET_LIB_PATH) \ (cd gcc && $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ else \ true; \ fi +@endif gcc # Install the gcc headers files, but not the fixed include files, # which Cygnus is not allowed to distribute. This rule is very @@ -1333,8 +1299,8 @@ gcc-no-fixedincludes: cp $(srcdir)/gcc/gsyslimits.h gcc/include/syslimits.h; \ touch gcc/stmp-fixinc gcc/include/fixed; \ rm -f gcc/stmp-headers gcc/stmp-int-hdrs; \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}` ; export s; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}` ; export s; \ $(SET_LIB_PATH) \ (cd ./gcc && \ $(MAKE) $(GCC_FLAGS_TO_PASS) install); \ @@ -1342,6 +1308,343 @@ gcc-no-fixedincludes: mv gcc/tmp-include gcc/include 2>/dev/null; \ else true; fi +# Other targets (dvi, info, etc.) +[+ FOR recursive_targets +] +.PHONY: maybe-[+make_target+]-gcc [+make_target+]-gcc +maybe-[+make_target+]-gcc: +@if gcc +maybe-[+make_target+]-gcc: [+make_target+]-gcc +[+make_target+]-gcc: [+ + FOR depend +]\ + [+depend+]-gcc [+ + ENDFOR depend +] + @[ -f ./gcc/Makefile ] || exit 0; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + $(SET_LIB_PATH) \ + for flag in $(EXTRA_GCC_FLAGS); do \ + eval `echo "$$flag" | sed -e "s|^\([^=]*\)=\(.*\)|\1='\2'; export \1|"`; \ + done; \ + echo "Doing [+make_target+] in gcc" ; \ + (cd gcc && \ + $(MAKE) $(BASE_FLAGS_TO_PASS) "AR=$${AR}" "AS=$${AS}" \ + "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ + "RANLIB=$${RANLIB}" \ + "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ + [+make_target+]) \ + || exit 1 +@endif gcc + +[+ ENDFOR recursive_targets +] + +# --------------------- +# GCC bootstrap support +# --------------------- + +# We name the directories for the various stages "stage1-gcc", +# "stage2-gcc","stage3-gcc", etc. +# Unfortunately, the 'compare' process will fail (on debugging information) +# if any directory names are different! +# So in the building rule for each stage, we relocate them before and after. +# The current one is 'gcc', while the previous one is 'prev-gcc'. (The +# current one must be 'gcc' for now because the scripts in that directory +# assume it.) +# At the end of the bootstrap, 'stage3-gcc' must be moved to 'gcc' so that +# libraries can find it. Ick! + +# Bugs: This is almost certainly not parallel-make safe. + +# 'touch' doesn't work right on some platforms. +STAMP = echo timestamp > + +# Only build the C compiler for stage1, because that is the only one that +# we can guarantee will build with the native compiler, and also it is the +# only thing useful for building stage2. STAGE1_CFLAGS (via CFLAGS), +# MAKEINFO and MAKEINFOFLAGS are explicitly passed here to make them +# overrideable (for a bootstrap build stage1 also builds gcc.info). + +STAGE1_CFLAGS=@stage1_cflags@ +STAGE1_LANGUAGES=@stage1_languages@ + +# For stage 1: +# * We force-disable intermodule optimizations, even if +# --enable-intermodule was passed, since the installed compiler probably +# can't handle them. Luckily, autoconf always respects +# the last argument when conflicting --enable arguments are passed. +# * Likewise, we force-disable coverage flags, since the installed compiler +# probably has never heard of them. +# * We build only C (and possibly Ada). +configure-stage1-gcc: + echo configure-stage1-gcc > stage_last ; \ + if [ -f stage1-gcc/Makefile ] ; then \ + $(STAMP) configure-stage1-gcc ; \ + exit 0; \ + else \ + true ; \ + fi ; \ + [ -d stage1-gcc ] || mkdir stage1-gcc; \ + mv stage1-gcc gcc ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ + CC="$(CC)"; export CC; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + CC_FOR_BUILD="$(CC_FOR_BUILD)"; export CC_FOR_BUILD; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + echo Configuring stage 1 in gcc; \ + cd gcc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} \ + --disable-intermodule --disable-coverage \ + --enable-languages="$(STAGE1_LANGUAGES)"; \ + cd .. ; \ + mv gcc stage1-gcc ; \ + $(STAMP) configure-stage1-gcc + +# Real targets act phony if they depend on phony targets; this hack +# prevents gratuitous rebuilding of stage 1. +prebootstrap: + $(MAKE) all-bootstrap + $(STAMP) prebootstrap + +all-stage1-gcc: configure-stage1-gcc prebootstrap + echo all-stage1-gcc > stage_last ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + mv stage1-gcc gcc ; \ + cd gcc && \ + $(MAKE) $(GCC_FLAGS_TO_PASS) \ + CFLAGS="$(STAGE1_CFLAGS)" && $(STAMP) ../all-stage1-gcc ; \ + result=$$? ; \ + cd .. ; \ + mv gcc stage1-gcc ; \ + exit $$result + +# TODO: Deal with STAGE_PREFIX (which is only for ada, incidentally) +# Possibly pass --enable-werror-always (depending on --enable-werror); +# that's what @stage2_werror_flag@ is for +configure-stage2-gcc: all-stage1-gcc + echo configure-stage2-gcc > stage_last ; \ + if [ -f stage2-gcc/Makefile ] ; then \ + $(STAMP) configure-stage2-gcc ; \ + exit 0; \ + else \ + true ; \ + fi ; \ + [ -d stage2-gcc ] || mkdir stage2-gcc; \ + mv stage2-gcc gcc ; \ + mv stage1-gcc prev-gcc ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + CC="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/"; export CC; \ + CC_FOR_BUILD="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/"; export CC_FOR_BUILD; \ + echo Configuring stage 2 in gcc; \ + cd gcc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} @stage2_werror_flag@ ; \ + cd .. ; \ + mv gcc stage2-gcc ; \ + mv prev-gcc stage1-gcc ; \ + $(STAMP) configure-stage2-gcc + +# Flags to pass to stage2 and later makes. +BOOT_CFLAGS= -g -O2 +POSTSTAGE1_FLAGS_TO_PASS = \ + CFLAGS="$(BOOT_CFLAGS)" \ + ADAC="\$$(CC)" + +all-stage2-gcc: all-stage1-gcc configure-stage2-gcc + echo all-stage2-gcc > stage_last ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + mv stage2-gcc gcc ; \ + mv stage1-gcc prev-gcc ; \ + cd gcc && \ + $(MAKE) $(GCC_FLAGS_TO_PASS) \ + CC="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/" \ + CC_FOR_BUILD="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/" \ + STAGE_PREFIX=$$r/prev-gcc/ \ + $(POSTSTAGE1_FLAGS_TO_PASS) && $(STAMP) ../all-stage2-gcc ; \ + result=$$? ; \ + cd .. ; \ + mv prev-gcc stage1-gcc ; \ + mv gcc stage2-gcc ; \ + exit $$result + +configure-stage3-gcc: all-stage2-gcc + echo configure-stage3-gcc > stage_last ; \ + if [ -f stage3-gcc/Makefile ] ; then \ + $(STAMP) configure-stage3-gcc ; \ + exit 0; \ + else \ + true ; \ + fi ; \ + [ -d stage3-gcc ] || mkdir stage3-gcc; \ + mv stage3-gcc gcc ; \ + mv stage2-gcc prev-gcc ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + CONFIG_SHELL="$(SHELL)"; export CONFIG_SHELL; \ + TOPLEVEL_CONFIGURE_ARGUMENTS="$(TOPLEVEL_CONFIGURE_ARGUMENTS)"; export TOPLEVEL_CONFIGURE_ARGUMENTS; \ + CFLAGS="$(CFLAGS)"; export CFLAGS; \ + CXX="$(CXX)"; export CXX; \ + CXXFLAGS="$(CXXFLAGS)"; export CXXFLAGS; \ + AR="$(AR)"; export AR; \ + AS="$(AS)"; export AS; \ + DLLTOOL="$(DLLTOOL)"; export DLLTOOL; \ + LD="$(LD)"; export LD; \ + LDFLAGS="$(LDFLAGS)"; export LDFLAGS; \ + NM="$(NM)"; export NM; \ + RANLIB="$(RANLIB)"; export RANLIB; \ + WINDRES="$(WINDRES)"; export WINDRES; \ + OBJCOPY="$(OBJCOPY)"; export OBJCOPY; \ + OBJDUMP="$(OBJDUMP)"; export OBJDUMP; \ + CC="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/"; export CC; \ + CC_FOR_BUILD="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/"; export CC_FOR_BUILD; \ + echo Configuring stage 3 in gcc; \ + cd gcc || exit 1; \ + case $(srcdir) in \ + \.) \ + srcdiroption="--srcdir=."; \ + libsrcdir=".";; \ + /* | [A-Za-z]:[\\/]*) \ + srcdiroption="--srcdir=$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + *) \ + srcdiroption="--srcdir=../$(srcdir)/gcc"; \ + libsrcdir="$$s/gcc";; \ + esac; \ + $(SHELL) $${libsrcdir}/configure \ + $(HOST_CONFIGARGS) $${srcdiroption} @stage2_werror_flag@ ; \ + cd .. ; \ + mv gcc stage3-gcc ; \ + mv prev-gcc stage2-gcc ; \ + $(STAMP) configure-stage3-gcc + +all-stage3-gcc: all-stage2-gcc configure-stage3-gcc + echo all-stage3-gcc > stage_last ; \ + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + mv stage2-gcc prev-gcc ; \ + mv stage3-gcc gcc ; \ + cd gcc && \ + $(MAKE) $(GCC_FLAGS_TO_PASS) \ + CC="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/" \ + CC_FOR_BUILD="$(STAGE_CC_WRAPPER) $$r/prev-gcc/xgcc$(exeext) -B$$r/prev-gcc/ -B$(build_tooldir)/bin/" \ + STAGE_PREFIX=$$r/prev-gcc/ \ + $(POSTSTAGE1_FLAGS_TO_PASS) && $(STAMP) ../all-stage3-gcc \ + result=$$? ; \ + cd .. ; \ + mv prev-gcc stage2-gcc ; \ + mv gcc stage3-gcc ; \ + exit $$result + +# We only want to compare .o files, so set this! +objext = .o + +compare: all-stage3-gcc + r=`${PWD_COMMAND}`; export r; \ + s=`cd $(srcdir); ${PWD_COMMAND}`; export s; \ + rm -f .bad_compare ; \ + cd stage3-gcc; \ + files=`find . -name "*$(objext)" -print` ; \ + cd .. ; \ + for file in $${files} ; do \ + f1=$$r/stage2-gcc/$$file; f2=$$r/stage3-gcc/$$file; \ + @do_compare@ > /dev/null 2>&1; \ + test $$? -eq 1 && echo $$file differs >> .bad_compare || true; \ + done ; \ + if [ -f .bad_compare ]; then \ + echo "Bootstrap comparison failure!"; \ + cat .bad_compare; \ + exit 1; \ + else \ + true; \ + fi ; \ + $(STAMP) compare + +.PHONY: new-bootstrap +# This target exists so that everything can be made in one pass. +# 'all-gcc' has to avoid stomping on the bootstrap-generated gcc for +# this to work. +new-bootstrap: compare + mv stage3-gcc gcc ; \ + $(MAKE) all ; \ + mv gcc stage3-gcc + +new-cleanstrap: + rm -rf configure-stage1-gcc all-stage1-gcc stage1-gcc \ + configure-stage2-gcc all-stage2-gcc stage2-gcc \ + configure-stage3-gcc all-stage3-gcc stage3-gcc \ + compare + $(MAKE) new-bootstrap + +new-restage1: + rm -rf all-stage1-gcc \ + configure-stage2-gcc all-stage2-gcc stage2-gcc \ + configure-stage3-gcc all-stage3-gcc stage3-gcc \ + compare + $(MAKE) all-stage1-gcc + +new-restage2: all-stage1-gcc + rm -rf all-stage2-gcc \ + configure-stage3-gcc all-stage3-gcc stage3-gcc \ + compare + $(MAKE) all-stage2-gcc + +new-restage3: all-stage2-gcc + rm -rf all-stage3-gcc compare + $(MAKE) compare + # -------------------------------------- # Dependencies between different modules # -------------------------------------- @@ -1355,16 +1658,17 @@ gcc-no-fixedincludes: # Host modules specific to gcc. # GCC needs to identify certain tools. -configure-gcc: maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex -all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +# GCC also needs the information exported by the intl configure script. +configure-gcc: maybe-configure-intl maybe-configure-binutils maybe-configure-gas maybe-configure-ld maybe-configure-bison maybe-configure-flex +all-gcc: maybe-all-libiberty maybe-all-intl maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib maybe-all-libbanshee # This is a slightly kludgy method of getting dependencies on # all-build-libiberty correct; it would be better to build it every time. -all-gcc: maybe-all-build-libiberty -all-bootstrap: maybe-all-libiberty maybe-all-texinfo maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +all-gcc: maybe-all-build-libiberty maybe-all-libbanshee +all-bootstrap: [+ FOR host_modules +][+ IF bootstrap +]maybe-all-[+module+] [+ ENDIF bootstrap +][+ ENDFOR host_modules +] # Host modules specific to gdb. # GDB needs to know that the simulator is being built. -configure-gdb: maybe-configure-tcl maybe-configure-tk maybe-configure-sim +configure-gdb: maybe-configure-itcl maybe-configure-tcl maybe-configure-tk maybe-configure-sim GDB_TK = @GDB_TK@ all-gdb: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-mmalloc maybe-all-readline maybe-all-bison maybe-all-byacc maybe-all-sim $(gdbnlmrequirements) $(GDB_TK) install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui @@ -1415,7 +1719,7 @@ all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc all-gzip: maybe-all-libiberty all-hello: maybe-all-libiberty all-m4: maybe-all-libiberty maybe-all-texinfo -all-make: maybe-all-libiberty +all-make: maybe-all-libiberty maybe-all-intl all-patch: maybe-all-libiberty all-prms: maybe-all-libiberty all-recode: maybe-all-libiberty @@ -1432,8 +1736,8 @@ ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3 configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads configure-target-fastjar: maybe-configure-target-zlib all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty -configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: maybe-all-target-libiberty +configure-target-libada: $(ALL_GCC_C) +configure-target-libgfortran: $(ALL_GCC_C) configure-target-libffi: $(ALL_GCC_C) configure-target-libjava: $(ALL_GCC_C) maybe-configure-target-zlib maybe-configure-target-boehm-gc maybe-configure-target-qthreads maybe-configure-target-libffi all-target-libjava: maybe-all-fastjar maybe-all-target-zlib maybe-all-target-boehm-gc maybe-all-target-qthreads maybe-all-target-libffi @@ -1459,10 +1763,6 @@ configure-target-gperf: $(ALL_GCC_CXX) all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 configure-target-qthreads: $(ALL_GCC_C) -# Dependencies of maybe-foo on foo. These are used because, for example, -# all-gcc only depends on all-gas if gas is present and being configured. -@maybe_dependencies@ - # Serialization dependencies. Host configures don't work well in parallel to # each other, due to contention over config.cache. Target configures and # build configures are similar. @@ -1478,7 +1778,7 @@ configure-target-qthreads: $(ALL_GCC_C) # We use move-if-change so that it's only considered updated when it # actually changes, because it has to depend on a phony target. multilib.out: maybe-all-gcc - @r=`${PWD}`; export r; \ + @r=`${PWD_COMMAND}`; export r; \ echo "Checking multilib configuration..."; \ $(CC_FOR_TARGET) --print-multi-lib > multilib.tmp 2> /dev/null ; \ $(SHELL) $(srcdir)/move-if-change multilib.tmp multilib.out ; \ @@ -1493,7 +1793,7 @@ Makefile: $(srcdir)/Makefile.in config.status CONFIG_FILES=$@ CONFIG_HEADERS= $(SHELL) ./config.status config.status: configure $(gcc_version_trigger) - $(SHELL) ./config.status --recheck + CONFIG_SHELL="$(SHELL)" $(SHELL) ./config.status --recheck # Rebuilding configure. AUTOCONF = autoconf @@ -1504,12 +1804,6 @@ $(srcdir)/configure: @MAINT@ $(srcdir)/configure.in $(srcdir)/config/acx.m4 # Special directives to GNU Make # ------------------------------ -# Tell GNU make 3.79 not to run the top level in parallel. This -# prevents contention for $builddir/$target/config.cache, as well -# as minimizing scatter in file system caches. -NOTPARALLEL = .NOTPARALLEL -$(NOTPARALLEL): - # Don't pass command-line variables to submakes. .NOEXPORT: MAKEOVERRIDES=