From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 15778 invoked by alias); 26 Nov 2002 20:03:22 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 15763 invoked from network); 26 Nov 2002 20:03:20 -0000 Received: from unknown (HELO mailout5-0.nyroc.rr.com) (24.92.226.169) by sources.redhat.com with SMTP; 26 Nov 2002 20:03:20 -0000 Received: from doctormoo (syr-24-24-16-193.twcny.rr.com [24.24.16.193]) by mailout5-0.nyroc.rr.com (8.11.6/RoadRunner 1.20) with ESMTP id gAQK3EF17411; Tue, 26 Nov 2002 15:03:14 -0500 (EST) Received: from neroden by doctormoo with local (Exim 3.36 #1 (Debian)) id 18Glut-00006X-00; Tue, 26 Nov 2002 15:02:43 -0500 Date: Tue, 26 Nov 2002 12:03:00 -0000 To: gdb-patches@sources.redhat.com, binutils@sources.redhat.com Subject: Toplevel patches, currently on branch in gcc Message-ID: <20021126200243.GA402@doctormoo> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.4i From: Nathanael Nerode X-SW-Source: 2002-11/txt/msg00659.txt.bz2 I've been doing a lot of top level configury cleanup work on a branch of gcc. I'm now sending the net diff to the gdb and binutils lists so that you know what's going on. I hope all these changes will be acceptable for src as well, when the branch lands (hopefully soon). Some general notes on what I did: * Made nearly all variables in the Makefile substituted in an autoconf-like manner. * Cleaned out a lot of stuff which did nothing useful in src or gcc. * Introduced 'maybe' dependencies: maybe-all-x is the same as all-x if x is being configured and built; otherwise it's an empty target. These allow for a much cleaner specification of a lot of stuff. * Replaced a lot of repetitive targets which were specified using Make macros with repetitive targets specified using autogen FOR statements. * Made 'all', 'install', 'check' targets depend on the list of subdirectory targets which were actually configured, avoiding lots of unnecessary target hits. * Removed a lot of now-redundant embedded shell code in the Makefile. There's more to come and I will CC each subsequent patch individually. I did, in general, test everything with binutils, newlib, and gdb as well as gcc, though I can't guarantee perfection. "configure" looks more changed than it is due to an indenting change which I made so that I could read things after removing some conditionals surrounding most of the file. The great mess of ChangeLog entries: 2002-11-26 Nathanael Nerode * configure: Remove skip-this-dir support. * Makefile.tpl: Remove skip-this-dir support. * Makefile.tpl: Remove leftover support for non-autoconfiscated subdirectories. * Makefile.in: Regenerate. * Makefile.tpl: Strip out useless setting of 'dir'. * Makefile.in: Regenerate. 2002-11-22 Nathanael Nerode * configure.in: Fix deeply stupid bug. * configure.in: Introduce RAW_CXX_FOR_TARGET and simplify embedded shell code in CXX_FOR_TARGET * Makefile.def: Introduce raw_cxx. * Makefile.tpl: Use raw_cxx to select between CXX_FOR_TARGET and RAW_CXX_FOR_TARGET. * Makefile.in: Regenerate. 2002-11-21 Nathanael Nerode * Makefile.tpl: Remove unnecessary ifs. * Makefile.in: Regenerate. * Makefile.tpl: Implement soft dependency machinery. Maybe-ize dependencies. Maybe-ize build-libiberty. Create dummy install targets for 'no_install' modules. * configure: Move GDB_TK substitution to configure.in. Move build_modules stuff to configure.in. * configure.in: Implement soft dependency machinery. Maybe-ize GDB_TK, rearrange slightly. Move build_modules stuff from configure. * Makefile.in: Regenerate. 2002-11-19 Nathanael Nerode * Makefile.tpl: Make all-target, install-target behave similarly to all, install (only hitting configured targets). Eliminate unused macro defintions. * Makefile.tpl: Add all-gcc: all-build-libiberty dependency when build != host. * Makefile.tpl: Add all-gcc: all-libiberty dependency. * ltcf-c.sh, ltcf-gcj.sh, Makefile.tpl: Correct BUILD/HOST confusion. * configure.in: Produce lists of subdir targets we're actually configuring. Remove references to "dosrel". * Makefile.tpl: Let configure set which subdir targets are hit. Remove install-cross; clean up install; remove ALL. Remove references to "dosrel". Remove "EXTRA_TARGET_HOST" hackery. Autogenerate host module targets. Remove empty dependency lines and redundant dependency; rearrange slightly. * Makefile.def: Add host-side libtermcap, utils. * Makefile.in: Regenerate. --- Makefile.tpl 2002-11-14 17:42:36.000000000 -0500 +++ ../bib/Makefile.tpl 2002-11-26 14:47:38.000000000 -0500 @@ -29,6 +29,32 @@ NOTPARALLEL = .NOTPARALLEL $(NOTPARALLEL): +VPATH=@srcdir@ +links=@configlinks@ + +build_alias=@build_alias@ +build_cpu=@build_cpu@ +build_vendor=@build_vendor@ +build_os=@build_os@ +build_canonical=@build_cpu@-@build_vendor@-@build_os@ +host_alias=@host_alias@ +host_cpu=@host_cpu@ +host_vendor=@host_vendor@ +host_os=@host_os@ +host_canonical=@host_cpu@-@host_vendor@-@host_os@ +target_alias=@target_alias@ +target_cpu=@target_cpu@ +target_vendor=@target_vendor@ +target_os=@target_os@ +target_canonical=@target_cpu@-@target_vendor@-@target_os@ + +enable_shared = @enable_shared@ +enable_threads = @enable_threads@ +enable_version_specific_runtime_libs = @enable_version_specific_runtime_libs@ +# The file containing GCC's version number. +gcc_version_trigger = @gcc_version_trigger@ +gcc_version = @gcc_version@ + srcdir = @srcdir@ prefix = @prefix@ @@ -83,18 +109,16 @@ INSTALL_SCRIPT = $(INSTALL) INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DOSREL = install-dosrel-fake - -AS = as -AR = ar +AS = @AS@ +AR = @AR@ AR_FLAGS = rc CC = cc # Special variables passed down in EXTRA_GCC_FLAGS. They are defined # here so that they can be overridden by Makefile fragments. -HOST_CC = $(CC_FOR_BUILD) -BUILD_PREFIX = -BUILD_PREFIX_1 = loser- +BUILD_CC = $(CC_FOR_BUILD) +BUILD_PREFIX = @BUILD_PREFIX@ +BUILD_PREFIX_1 = @BUILD_PREFIX_1@ # These flag values are normally overridden by the configure script. CFLAGS = -g @@ -120,25 +144,27 @@ CXXFLAGS_FOR_TARGET = $(CXXFLAGS) LIBCXXFLAGS_FOR_TARGET = $(CXXFLAGS_FOR_TARGET) -fno-implicit-templates -DLLTOOL = dlltool -WINDRES = windres +DLLTOOL = @DLLTOOL@ +WINDRES = @WINDRES@ -NM = nm +NM = @NM@ -LD = ld +LD = @LD@ # These values are substituted by configure. DEFAULT_YACC = @DEFAULT_YACC@ DEFAULT_LEX = @DEFAULT_LEX@ DEFAULT_M4 = @DEFAULT_M4@ -BISON = `if [ -f $$r/bison/bison ] ; then \ +BISON=@BISON@ +USUAL_BISON = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -L $$s/bison/ ; \ else \ echo bison ; \ fi` -YACC = `if [ -f $$r/bison/bison ] ; then \ +YACC=@YACC@ +USUAL_YACC = `if [ -f $$r/bison/bison ] ; then \ echo $$r/bison/bison -y -L $$s/bison/ ; \ elif [ -f $$r/byacc/byacc ] ; then \ echo $$r/byacc/byacc ; \ @@ -146,7 +172,8 @@ echo ${DEFAULT_YACC} ; \ fi` -LEX = `if [ -f $$r/flex/flex ] ; \ +LEX=@LEX@ +USUAL_LEX = `if [ -f $$r/flex/flex ] ; \ then echo $$r/flex/flex ; \ else echo ${DEFAULT_LEX} ; fi` @@ -156,7 +183,8 @@ # For an installed makeinfo, we require it to be from texinfo 4 or # higher, else we use the "missing" dummy. -MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ +MAKEINFO=@MAKEINFO@ +USUAL_MAKEINFO = `if [ -f $$r/texinfo/makeinfo/makeinfo ] ; \ then echo $$r/texinfo/makeinfo/makeinfo ; \ else if (makeinfo --version \ | egrep 'texinfo[^0-9]*([1-3][0-9]|[4-9])') >/dev/null 2>&1; \ @@ -178,7 +206,7 @@ # compilers to use to create programs which must be run in the build # environment. -CC_FOR_BUILD = $(CC) +CC_FOR_BUILD = @CC_FOR_BUILD@ CXX_FOR_BUILD = $(CXX) SUBDIRS = @configdirs@ @@ -224,35 +252,24 @@ REALLY_SET_LIB_PATH = \ $(RPATH_ENVVAR)=`echo "$(HOST_LIB_PATH):$(TARGET_LIB_PATH):$$$(RPATH_ENVVAR)" | sed 's,::*,:,g;s,^:*,,;s,:*$$,,'`; export $(RPATH_ENVVAR); -ALL = all.normal -INSTALL_TARGET = installdirs \ - install-gcc \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - -INSTALL_TARGET_CROSS = installdirs \ - install-gcc-cross \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - $(INSTALL_DOSREL) - # Should be substed by configure.in FLAGS_FOR_TARGET = @FLAGS_FOR_TARGET@ CC_FOR_TARGET = @CC_FOR_TARGET@ CXX_FOR_TARGET = @CXX_FOR_TARGET@ +RAW_CXX_FOR_TARGET = @RAW_CXX_FOR_TARGET@ CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ +RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = @RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@ GCJ_FOR_TARGET = @GCJ_FOR_TARGET@ # If GCC_FOR_TARGET is not overriden on the command line, then this # variable is passed down to the gcc Makefile, where it is used to # build libgcc2.a. We define it here so that it can itself be # overridden on the command line. -GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) +GCC_FOR_TARGET=@GCC_FOR_TARGET@ +USUAL_GCC_FOR_TARGET = $(STAGE_CC_WRAPPER) $$r/gcc/xgcc -B$$r/gcc/ $(FLAGS_FOR_TARGET) -AS_FOR_TARGET = ` \ +AS_FOR_TARGET=@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 \ @@ -265,7 +282,8 @@ fi; \ fi` -LD_FOR_TARGET = ` \ +LD_FOR_TARGET=@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 \ @@ -278,7 +296,8 @@ fi; \ fi` -DLLTOOL_FOR_TARGET = ` \ +DLLTOOL_FOR_TARGET=@DLLTOOL_FOR_TARGET@ +USUAL_DLLTOOL_FOR_TARGET = ` \ if [ -f $$r/binutils/dlltool ] ; then \ echo $$r/binutils/dlltool ; \ else \ @@ -289,7 +308,8 @@ fi; \ fi` -WINDRES_FOR_TARGET = ` \ +WINDRES_FOR_TARGET=@WINDRES_FOR_TARGET@ +USUAL_WINDRES_FOR_TARGET = ` \ if [ -f $$r/binutils/windres ] ; then \ echo $$r/binutils/windres ; \ else \ @@ -300,7 +320,8 @@ fi; \ fi` -AR_FOR_TARGET = ` \ +AR_FOR_TARGET=@AR_FOR_TARGET@ +USUAL_AR_FOR_TARGET = ` \ if [ -f $$r/binutils/ar ] ; then \ echo $$r/binutils/ar ; \ else \ @@ -311,7 +332,8 @@ fi; \ fi` -RANLIB_FOR_TARGET = ` \ +RANLIB_FOR_TARGET=@RANLIB_FOR_TARGET@ +USUAL_RANLIB_FOR_TARGET = ` \ if [ -f $$r/binutils/ranlib ] ; then \ echo $$r/binutils/ranlib ; \ else \ @@ -326,7 +348,8 @@ fi; \ fi` -NM_FOR_TARGET = ` \ +NM_FOR_TARGET=@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 \ @@ -344,13 +367,6 @@ all: all.normal .PHONY: all -# These can be overridden by config/mt-*. -# The _TARGET_ is because they're specified in mt-foo. -# The _HOST_ is because they're programs that run on the host. -EXTRA_TARGET_HOST_ALL_MODULES = -EXTRA_TARGET_HOST_INSTALL_MODULES = -EXTRA_TARGET_HOST_CHECK_MODULES = - #### host and target specific makefile fragments come in here. ### @@ -425,7 +441,8 @@ # so we pass these variables down unchanged. They must not contain # single nor double quotes. RECURSE_FLAGS = \ - CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' + CXX_FOR_TARGET='$(CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ + RAW_CXX_FOR_TARGET='$(RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE)' \ # Flags to pass down to most sub-makes, in which we're building with # the host environment. @@ -488,7 +505,7 @@ 'CC=$(CC)' \ 'CXX=$(CXX)' \ 'DLLTOOL=$$(DLLTOOL_FOR_TARGET)' \ - 'HOST_CC=$(CC_FOR_BUILD)' \ + 'BUILD_CC=$(CC_FOR_BUILD)' \ 'BUILD_PREFIX=$(BUILD_PREFIX)' \ 'BUILD_PREFIX_1=$(BUILD_PREFIX_1)' \ 'NM=$(NM)' \ @@ -508,97 +525,6 @@ GCC_FLAGS_TO_PASS = $(BASE_FLAGS_TO_PASS) $(EXTRA_GCC_FLAGS) -# This is a list of the targets for all of the modules which are compiled -# using the build machine's native compiler. Configure edits the second -# macro for build!=host builds. -ALL_BUILD_MODULES_LIST = \ - all-build-libiberty -ALL_BUILD_MODULES = @all_build_modules@ - -# This is a list of the configure targets for all of the modules which -# are compiled using the native tools. -CONFIGURE_BUILD_MODULES = \ - configure-build-libiberty - -# This is a list of the targets for all of the modules which are compiled -# using $(FLAGS_TO_PASS). -ALL_MODULES =[+ - FOR host_modules +] \ - all-[+module+][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_ALL_MODULES) - -# This is a list of the check targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -# -# The list is in two parts. The first lists those tools which -# are tested as part of the host's native tool-chain, and not -# tested in a cross configuration. -NATIVE_CHECK_MODULES = \ - check-bison \ - check-byacc \ - check-fastjar \ - check-flex \ - check-zip - -CROSS_CHECK_MODULES =[+ - FOR host_modules +][+ - IF (not (or (exist? "no_check_cross") (exist? "no_check"))) - +] \ - check-[+module+][+ - ENDIF no_check +][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_CHECK_MODULES) - -CHECK_MODULES=$(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) - -# This is a list of the install targets for all of the modules which are -# compiled using $(FLAGS_TO_PASS). -INSTALL_MODULES =[+ - FOR host_modules+][+ - IF (not (exist? "no_install")) +] \ - install-[+module+][+ - ENDIF no_install +][+ - ENDFOR host_modules +] \ - $(EXTRA_TARGET_HOST_INSTALL_MODULES) - -# This is a list of the targets for all of the modules which are compiled -# using $(X11_FLAGS_TO_PASS). -ALL_X11_MODULES = \ - all-gdb \ - all-expect \ - all-guile \ - all-tclX \ - all-tk \ - all-tix - -# This is a list of the check targets for all of the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -CHECK_X11_MODULES = \ - check-gdb \ - check-guile \ - check-expect \ - check-tclX \ - check-tk \ - check-tix - -# This is a list of the install targets for all the modules which are -# compiled using $(X11_FLAGS_TO_PASS). -INSTALL_X11_MODULES = \ - install-gdb \ - install-guile \ - install-expect \ - install-tclX \ - install-tk \ - install-tix - -# This is a list of the targets for all of the modules which are compiled -# using $(TARGET_FLAGS_TO_PASS). -ALL_TARGET_MODULES =[+ - FOR target_modules +] \ - all-target-[+module+][+ - ENDFOR target_modules +] - # This is a list of the configure targets for all of the modules which # are compiled using the target tools. CONFIGURE_TARGET_MODULES =[+ @@ -606,28 +532,12 @@ configure-target-[+module+][+ ENDFOR target_modules +] -# This is a list of the check targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -CHECK_TARGET_MODULES =[+ - FOR target_modules +][+ - IF (not (exist? "no_check")) +] \ - check-target-[+module+][+ - ENDIF no_check +][+ - ENDFOR target_modules +] - -# This is a list of the install targets for all of the modules which are -# compiled using $(TARGET_FLAGS_TO_PASS). -INSTALL_TARGET_MODULES =[+ - FOR target_modules +][+ - IF (not (exist? "no_install")) +] \ - install-target-[+module+][+ - ENDIF no_install +][+ - ENDFOR target_modules +] +configure-target: $(CONFIGURE_TARGET_MODULES) # This is a list of the targets for which we can do a clean-{target}. CLEAN_MODULES =[+ FOR host_modules +][+ - IF (not (exist? "no_clean")) +] \ + IF (not (or (exist? "no_clean") (exist? "with_x"))) +] \ clean-[+module+][+ ENDIF no_clean +][+ ENDFOR host_modules +] @@ -641,22 +551,17 @@ ENDFOR target_modules +] # All of the x11 modules that can be cleaned -CLEAN_X11_MODULES = \ - clean-gdb \ - clean-expect \ - clean-guile \ - clean-tclX \ - clean-tk \ - clean-tix +CLEAN_X11_MODULES = [+ FOR host_modules +][+ IF with_x +]\ + clean-[+module+] [+ ENDIF with_x +][+ ENDFOR host_modules +] # The target built for a native build. +# This list only includes modules actually being configured and built. .PHONY: all.normal -all.normal: \ - $(ALL_BUILD_MODULES) \ - $(ALL_MODULES) \ - $(ALL_X11_MODULES) \ - $(ALL_TARGET_MODULES) \ - all-gcc +all.normal: @all_build_modules@ \ + @all_host_modules@ \ + @all_target_modules@ + +all-target: @all_target_modules@ # Do a target for all the subdirectories. A ``make do-X'' will do a # ``make X'' in all subdirectories (because, in general, there is a @@ -665,20 +570,10 @@ # This target ensures that $(BASE_FLAGS_TO_PASS) appears only once, # because it is so large that it can easily overflow the command line # length limit on some systems. -DO_X = \ - do-clean \ - do-distclean \ - do-dvi \ - do-info \ - do-install-info \ - do-installcheck \ - do-mostlyclean \ - do-maintainer-clean \ - do-TAGS -.PHONY: $(DO_X) -$(DO_X): - @target=`echo $@ | sed -e 's/^do-//'`; \ - r=`${PWD}`; export r; \ +[+ FOR recursive_targets +] +.PHONY: do-[+target+] +do-[+target+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ for i in $(SUBDIRS) -dummy-; do \ @@ -700,11 +595,11 @@ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ + [+target+]); \ then true; else exit 1; fi; \ else true; fi; \ done - @target=`echo $@ | sed -e 's/^do-//'`; \ + # Break into two pieces r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ @@ -718,10 +613,12 @@ "CC=$${CC}" "CXX=$${CXX}" "LD=$${LD}" "NM=$${NM}" \ "`echo \"RANLIB=$${RANLIB}\" | sed -e 's/.*=$$/XFOO=/'`" \ "DLLTOOL=$${DLLTOOL}" "WINDRES=$${WINDRES}" \ - $${target}); \ + [+target+]); \ then true; else exit 1; fi; \ else true; fi; \ done +[+ ENDFOR recursive_targets +] + # Here are the targets which correspond to the do-X targets. @@ -805,10 +702,9 @@ check: $(MAKE) do-check NOTPARALLEL=parallel-ok -do-check: $(CHECK_MODULES) \ - $(CHECK_TARGET_MODULES) \ - $(CHECK_X11_MODULES) \ - check-gcc +# Only include modules actually being configured and built. +do-check: @check_host_modules@ \ + @check_target_modules@ # Automated reporting of test results. @@ -833,9 +729,10 @@ # Installation targets. -.PHONY: install install-cross uninstall source-vault binary-vault vault-install -install: $(INSTALL_TARGET) -install-cross: $(INSTALL_TARGET_CROSS) +.PHONY: install uninstall source-vault binary-vault vault-install +install: installdirs @install_host_modules@ @install_target_modules@ + +install-target: @install_target_modules@ uninstall: @echo "the uninstall target is not supported in this tree" @@ -869,12 +766,8 @@ # install-no-fixedincludes is used because Cygnus can not distribute # the fixed header files. .PHONY: install-no-fixedincludes -install-no-fixedincludes: \ - installdirs \ - $(INSTALL_MODULES) \ - $(INSTALL_TARGET_MODULES) \ - $(INSTALL_X11_MODULES) \ - gcc-no-fixedincludes +install-no-fixedincludes: installdirs @install_host_modules_nogcc@ \ + @install_target_modules@ gcc-no-fixedincludes # Install the gcc headers files, but not the fixed include files, # which Cygnus is not allowed to distribute. This rule is very @@ -897,31 +790,30 @@ mv gcc/tmp-include gcc/include 2>/dev/null; \ else true; fi -# This rule is used to build the modules which are built with the +# These rules are used to build the modules which are built with the # build machine's native compiler. -.PHONY: $(ALL_BUILD_MODULES) -$(ALL_BUILD_MODULES): - dir=`echo $@ | sed -e 's/all-build-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ +[+ FOR build_modules +] +.PHONY: all-build-[+module+] maybe-all-build-[+module+] +maybe-all-build-[+module+]: +all-build-[+module+]: + @if [ -f ./[+module+]/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ - (cd $(BUILD_SUBDIR)/$${dir} && $(MAKE) all); \ + (cd $(BUILD_SUBDIR)/[+module+] && $(MAKE) all); \ else \ true; \ fi -# This rule is used to configure the modules which are built with the -# native tools. -.PHONY: $(CONFIGURE_BUILD_MODULES) -$(CONFIGURE_BUILD_MODULES): - @dir=`echo $@ | sed -e 's/configure-build-//'`; \ - if [ ! -d $(BUILD_SUBDIR) ]; then \ +.PHONY: configure-build-[+module+] maybe-configure-build-[+module+] +maybe-configure-build-[+module+]: +configure-build-[+module+]: + @if [ ! -d $(BUILD_SUBDIR) ]; then \ true; \ - elif [ -f $(BUILD_SUBDIR)/$${dir}/Makefile ] ; then \ + elif [ -f $(BUILD_SUBDIR)/[+module+]/Makefile ] ; then \ true; \ - elif echo " $(BUILD_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(BUILD_SUBDIR)/$${dir} ] || mkdir $(BUILD_SUBDIR)/$${dir};\ + elif echo " $(BUILD_CONFIGDIRS) " | grep " [+module+] " >/dev/null 2>&1; then \ + if [ -d $(srcdir)/[+module+] ]; then \ + [ -d $(BUILD_SUBDIR)/[+module+] ] || mkdir $(BUILD_SUBDIR)/[+module+];\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ AR="$(AR_FOR_BUILD)"; export AR; \ @@ -937,8 +829,8 @@ NM="$(NM_FOR_BUILD)"; export NM; \ RANLIB="$(RANLIB_FOR_BUILD)"; export RANLIB; \ WINDRES="$(WINDRES_FOR_BUILD)"; export WINDRES; \ - echo Configuring in $(BUILD_SUBDIR)/$${dir}; \ - cd "$(BUILD_SUBDIR)/$${dir}" || exit 1; \ + echo Configuring in $(BUILD_SUBDIR)/[+module+]; \ + cd "$(BUILD_SUBDIR)/[+module+]" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ @@ -950,7 +842,7 @@ esac; \ if [ "$(srcdir)" = "." ] ; then \ if [ "$(BUILD_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -969,129 +861,118 @@ srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ - fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(BUILD_CONFIGARGS) $${srcdiroption} \ - --with-build-subdir="$(BUILD_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ + srcdiroption="--srcdir=$${topdir}/[+module+]"; \ + libsrcdir="$$s/[+module+]"; \ fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(BUILD_CONFIGARGS) $${srcdiroption} \ + --with-build-subdir="$(BUILD_SUBDIR)" \ + || exit 1; \ else \ true; \ fi; \ else \ true; \ fi +[+ ENDFOR build_modules +] -# This rule is used to build the modules which use FLAGS_TO_PASS. To +# These rules are used to build the modules which use FLAGS_TO_PASS. To # build a target all-X means to cd to X and make all. -.PHONY: $(ALL_MODULES) -$(ALL_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +[+ FOR host_modules +] +.PHONY: all-[+module+] maybe-all-[+module+] +maybe-all-[+module+]: +all-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# These rules are used to check the modules which use FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make check. Some -# modules are only tested in a native toolchain. - -.PHONY: $(CHECK_MODULES) $(NATIVE_CHECK_MODULES) $(CROSS_CHECK_MODULES) -$(NATIVE_CHECK_MODULES): + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] all) + +[+ IF no_check +] +.PHONY: check-[+module+] +check-[+module+]: +[+ ELIF no_check_cross +] +.PHONY: check-[+module+] +# This module is only tested in a native toolchain. +check-[+module+]: @if [ '$(host_canonical)' = '$(target_canonical)' ] ; then \ - dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi; \ - fi - -$(CROSS_CHECK_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check); \ + fi +[+ ELSE check +] +.PHONY: check-[+module+] +check-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) check); \ - else \ - true; \ - fi - -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_MODULES) -$(INSTALL_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] check) +[+ ENDIF no_check +] + +[+ IF no_install +] +.PHONY: install-[+module+] maybe-install-[+module+] +maybe-install-[+module+]: +install-[+module+]: +[+ ELSE install +] +.PHONY: install-[+module+] maybe-install-[+module+] +maybe-install-[+module+]: +install-[+module+]: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -# This rule is used to configure the modules which are built with the -# target tools. -.PHONY: $(CONFIGURE_TARGET_MODULES) -$(CONFIGURE_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ -d $(TARGET_SUBDIR)/$${dir} ]; then \ - r=`${PWD}`; export r; \ - $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/$${dir}/tmpmulti.out 2> /dev/null; \ - if [ -s $(TARGET_SUBDIR)/$${dir}/tmpmulti.out ]; then \ - if [ -f $(TARGET_SUBDIR)/$${dir}/multilib.out ]; then \ - if cmp $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/tmpmulti.out > /dev/null; then \ - rm -f $(TARGET_SUBDIR)/$${dir}/tmpmulti.out; \ + (cd [+module+]; $(MAKE) $(FLAGS_TO_PASS)[+ + IF with_x + +] $(X11_FLAGS_TO_PASS)[+ + ENDIF with_x +] install) +[+ ENDIF no_install +] +[+ ENDFOR host_modules +] + +# These rules are used to build the modules which are built with the target +# tools. To make foo-X means to cd to X and make foo. +[+ FOR target_modules +] +.PHONY: configure-target-[+module+] maybe-configure-target-[+module+] +maybe-configure-target-[+module+]: +configure-target-[+module+]: + @r=`${PWD}`; export r; \ + $(CC_FOR_TARGET) --print-multi-lib > $(TARGET_SUBDIR)/[+module+]/tmpmulti.out 2> /dev/null; \ + if [ -s $(TARGET_SUBDIR)/[+module+]/tmpmulti.out ]; then \ + if [ -f $(TARGET_SUBDIR)/[+module+]/multilib.out ]; then \ + if cmp $(TARGET_SUBDIR)/[+module+]/multilib.out $(TARGET_SUBDIR)/[+module+]/tmpmulti.out > /dev/null; then \ + rm -f $(TARGET_SUBDIR)/[+module+]/tmpmulti.out; \ else \ - echo "Multilibs changed for $${dir}, reconfiguring"; \ - rm -f $(TARGET_SUBDIR)/$${dir}/multilib.out $(TARGET_SUBDIR)/$${dir}/Makefile; \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + echo "Multilibs changed for [+module+], reconfiguring"; \ + rm -f $(TARGET_SUBDIR)/[+module+]/multilib.out $(TARGET_SUBDIR)/[+module+]/Makefile; \ + mv $(TARGET_SUBDIR)/[+module+]/tmpmulti.out $(TARGET_SUBDIR)/[+module+]/multilib.out; \ fi; \ else \ - mv $(TARGET_SUBDIR)/$${dir}/tmpmulti.out $(TARGET_SUBDIR)/$${dir}/multilib.out; \ + mv $(TARGET_SUBDIR)/[+module+]/tmpmulti.out $(TARGET_SUBDIR)/[+module+]/multilib.out; \ fi; \ - fi; \ fi; exit 0 # break command into two pieces - @dir=`echo $@ | sed -e 's/configure-target-//'`; \ - if [ ! -d $(TARGET_SUBDIR) ]; then \ - true; \ - elif [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - true; \ - elif echo " $(TARGET_CONFIGDIRS) " | grep " $${dir} " >/dev/null 2>&1; then \ - if [ -d $(srcdir)/$${dir} ]; then \ - [ -d $(TARGET_SUBDIR)/$${dir} ] || mkdir $(TARGET_SUBDIR)/$${dir};\ + @if [ -d $(srcdir)/[+module+] ]; then \ + [ -d $(TARGET_SUBDIR)/[+module+] ] || mkdir $(TARGET_SUBDIR)/[+module+];\ r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; 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; \ - CXX="$(CXX_FOR_TARGET)"; export CXX; \ + CFLAGS="$(CFLAGS_FOR_TARGET)"; export CFLAGS; \[+ + IF raw_cxx +] + CXX_FOR_TARGET="$(RAW_CXX_FOR_TARGET)"; export CXX_FOR_TARGET; \ + CXX="$(RAW_CXX_FOR_TARGET)"; export CXX; \[+ + ELSE normal_cxx +] + CXX="$(CXX_FOR_TARGET)"; export CXX; \[+ + ENDIF raw_cxx +] CXXFLAGS="$(CXXFLAGS_FOR_TARGET)"; export CXXFLAGS; \ GCJ="$(GCJ_FOR_TARGET)"; export GCJ; \ DLLTOOL="$(DLLTOOL_FOR_TARGET)"; export DLLTOOL; \ @@ -1100,8 +981,8 @@ NM="$(NM_FOR_TARGET)"; export NM; \ RANLIB="$(RANLIB_FOR_TARGET)"; export RANLIB; \ WINDRES="$(WINDRES_FOR_TARGET)"; export WINDRES; \ - echo Configuring in $(TARGET_SUBDIR)/$${dir}; \ - cd "$(TARGET_SUBDIR)/$${dir}" || exit 1; \ + echo Configuring in $(TARGET_SUBDIR)/[+module+]; \ + cd "$(TARGET_SUBDIR)/[+module+]" || exit 1; \ case $(srcdir) in \ /* | [A-Za-z]:[\\/]*) \ topdir=$(srcdir) ;; \ @@ -1113,7 +994,7 @@ esac; \ if [ "$(srcdir)" = "." ] ; then \ if [ "$(TARGET_SUBDIR)" != "." ] ; then \ - if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \ + if $(SHELL) $$s/symlink-tree $${topdir}/[+module+] "no-such-file" ; then \ if [ -f Makefile ]; then \ if $(MAKE) distclean; then \ true; \ @@ -1132,127 +1013,67 @@ srcdiroption="--srcdir=."; \ libsrcdir="."; \ else \ - srcdiroption="--srcdir=$${topdir}/$${dir}"; \ - libsrcdir="$$s/$${dir}"; \ - fi; \ - if [ -f $${libsrcdir}/configure ] ; then \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - else \ - rm -f no-such-file skip-this-dir; \ - CONFIG_SITE=no-such-file $(SHELL) $$s/configure \ - $(TARGET_CONFIGARGS) $${srcdiroption} \ - --with-target-subdir="$(TARGET_SUBDIR)"; \ - fi || exit 1; \ - if [ -f skip-this-dir ] ; then \ - sh skip-this-dir; \ - rm -f skip-this-dir; \ - cd ..; rmdir $${dir} || true; \ - else \ - true; \ + srcdiroption="--srcdir=$${topdir}/[+module+]"; \ + libsrcdir="$$s/[+module+]"; \ fi; \ + rm -f no-such-file || : ; \ + CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \ + $(TARGET_CONFIGARGS) $${srcdiroption} \ + --with-target-subdir="$(TARGET_SUBDIR)" \ + || exit 1; \ else \ true; \ - fi; \ - else \ - true; \ - fi - -# This rule is used to build the modules which use TARGET_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_TARGET_MODULES) -$(ALL_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/all-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# This rule is used to check the modules which use TARGET_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(CHECK_TARGET_MODULES) -$(CHECK_TARGET_MODULES): - @dir=`echo $@ | sed -e 's/check-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) check);\ - else \ - true; \ - fi + fi -# This rule is used to install the modules which use -# TARGET_FLAGS_TO_PASS. To build a target install-X means to cd to X -# and make install. -.PHONY: $(INSTALL_TARGET_MODULES) -$(INSTALL_TARGET_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-target-//'`; \ - if [ -f $(TARGET_SUBDIR)/$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $(TARGET_SUBDIR)/$${dir}; \ - $(MAKE) $(TARGET_FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -# This rule is used to build the modules which use X11_FLAGS_TO_PASS. -# To build a target all-X means to cd to X and make all. -.PHONY: $(ALL_X11_MODULES) -$(ALL_X11_MODULES): - @dir=`echo $@ | sed -e 's/all-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ +.PHONY: all-target-[+module+] maybe-all-target-[+module+] +maybe-all-target-[+module+]: +all-target-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) all); \ - else \ - true; \ - fi - -# This rule is used to check the modules which use X11_FLAGS_TO_PASS. -# To build a target check-X means to cd to X and make all. -.PHONY: $(CHECK_X11_MODULES) -$(CHECK_X11_MODULES): - @dir=`echo $@ | sed -e 's/check-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd $(TARGET_SUBDIR)/[+module+]; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ + IF raw_cxx + +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ + ENDIF raw_cxx + +] all) +[+ IF no_check +] +# Dummy target for uncheckable module. +.PHONY: check-target-[+module+] +check-target-[+module+]: +[+ ELSE check +] +.PHONY: check-target-[+module+] +check-target-[+module+]: + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) check); \ - else \ - true; \ - fi - -# This rule is used to install the modules which use X11_FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: $(INSTALL_X11_MODULES) -$(INSTALL_X11_MODULES): installdirs - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ + (cd $(TARGET_SUBDIR)/[+module+]; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) [+ + IF raw_cxx + +] 'CXX=$$(RAW_CXX_FOR_TARGET)' 'CXX_FOR_TARGET=$$(RAW_CXX_FOR_TARGET)' [+ + ENDIF raw_cxx + +] check) +[+ ENDIF no_check +] +[+ IF no_install +] +.PHONY: install-target-[+module+] maybe-install-target-[+module+] +maybe-install-target-[+module+]: +# Dummy target for uninstallable. +install-target-[+module+]: +[+ ELSE install +] +.PHONY: install-target-[+module+] maybe-install-target-[+module+] +maybe-install-target-[+module+]: +install-target-[+module+]: installdirs + @r=`${PWD}`; export r; \ s=`cd $(srcdir); ${PWD}`; export s; \ $(SET_LIB_PATH) \ - (cd $${dir}; \ - $(MAKE) $(FLAGS_TO_PASS) $(X11_FLAGS_TO_PASS) install); \ - else \ - true; \ - fi + (cd $(TARGET_SUBDIR)/[+module+]; \ + $(MAKE) $(TARGET_FLAGS_TO_PASS) install) +[+ ENDIF no_install +] +[+ ENDFOR target_modules +] # gcc is the only module which uses GCC_FLAGS_TO_PASS. -.PHONY: all-gcc +.PHONY: all-gcc maybe-all-gcc +maybe-all-gcc: all-gcc: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ @@ -1339,7 +1160,8 @@ true; \ fi -.PHONY: install-gcc +.PHONY: install-gcc maybe-install-gcc +maybe-install-gcc: install-gcc: @if [ -f ./gcc/Makefile ] ; then \ r=`${PWD}`; export r; \ @@ -1350,152 +1172,103 @@ true; \ fi -.PHONY: install-gcc-cross -install-gcc-cross: - @if [ -f ./gcc/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd gcc; $(MAKE) $(GCC_FLAGS_TO_PASS) LANGUAGES="c c++" install); \ - else \ - true; \ - fi -# EXPERIMENTAL STUFF -# This rule is used to install the modules which use FLAGS_TO_PASS. -# To build a target install-X means to cd to X and make install. -.PHONY: install-dosrel -install-dosrel: installdirs info - @dir=`echo $@ | sed -e 's/install-//'`; \ - if [ -f ./$${dir}/Makefile ] ; then \ - r=`${PWD}`; export r; \ - s=`cd $(srcdir); ${PWD}`; export s; \ - $(SET_LIB_PATH) \ - (cd $${dir}; $(MAKE) $(FLAGS_TO_PASS) install); \ - else \ - true; \ - fi - -install-dosrel-fake: - -ALL_GCC = all-gcc -ALL_GCC_C = $(ALL_GCC) all-target-newlib all-target-libgloss -ALL_GCC_CXX = $(ALL_GCC_C) all-target-libstdc++-v3 +ALL_GCC = maybe-all-gcc +ALL_GCC_C = $(ALL_GCC) maybe-all-target-newlib maybe-all-target-libgloss +ALL_GCC_CXX = $(ALL_GCC_C) maybe-all-target-libstdc++-v3 # This is a list of inter-dependencies among modules. -all-ash: -all-autoconf: all-m4 all-texinfo -all-automake: all-m4 all-texinfo -all-bash: -all-bfd: all-libiberty all-intl -all-binutils: all-libiberty all-opcodes all-bfd all-flex all-bison all-byacc all-intl -all-bison: all-texinfo -configure-target-boehm-gc: $(ALL_GCC_C) configure-target-qthreads -all-byacc: -all-bzip2: -all-db: -all-dejagnu: all-tcl all-expect all-tk -all-diff: all-libiberty -all-etc: +all-autoconf: maybe-all-m4 maybe-all-texinfo +all-automake: maybe-all-m4 maybe-all-texinfo +all-bfd: maybe-all-libiberty maybe-all-intl +all-binutils: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-flex maybe-all-bison maybe-all-byacc maybe-all-intl +all-bison: maybe-all-texinfo +configure-target-boehm-gc: $(ALL_GCC_C) maybe-configure-target-qthreads +all-dejagnu: maybe-all-tcl maybe-all-expect maybe-all-tk +all-diff: maybe-all-libiberty configure-target-examples: $(ALL_GCC_C) -all-expect: all-tcl all-tk -all-fileutils: all-libiberty -all-findutils: -all-find: -all-flex: all-libiberty all-bison all-byacc -all-gas: all-libiberty all-opcodes all-bfd all-intl -all-gawk: -all-gcc: all-bison all-byacc all-binutils all-gas all-ld all-zlib -all-bootstrap: all-libiberty all-texinfo all-bison all-byacc all-binutils all-gas all-ld all-zlib +all-expect: maybe-all-tcl maybe-all-tk +all-fileutils: maybe-all-libiberty +all-flex: maybe-all-libiberty maybe-all-bison maybe-all-byacc +all-gas: maybe-all-libiberty maybe-all-opcodes maybe-all-bfd maybe-all-intl +all-gcc: maybe-all-libiberty maybe-all-bison maybe-all-byacc maybe-all-binutils maybe-all-gas maybe-all-ld maybe-all-zlib +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 GDB_TK = @GDB_TK@ -all-gdb: all-libiberty all-opcodes all-bfd all-mmalloc all-readline all-bison all-byacc all-sim $(gdbnlmrequirements) $(GDB_TK) -all-gettext: -all-gnuserv: +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) configure-target-gperf: $(ALL_GCC_CXX) -all-target-gperf: all-target-libiberty all-target-libstdc++-v3 -all-gprof: all-libiberty all-bfd all-opcodes all-intl -all-grep: all-libiberty -all-guile: -all-gzip: all-libiberty -all-hello: all-libiberty -all-indent: -all-intl: -all-itcl: all-tcl all-tk -all-ld: all-libiberty all-bfd all-opcodes all-bison all-byacc all-flex all-intl +all-target-gperf: maybe-all-target-libiberty maybe-all-target-libstdc++-v3 +all-gprof: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-intl +all-grep: maybe-all-libiberty +all-gzip: maybe-all-libiberty +all-hello: maybe-all-libiberty +all-itcl: maybe-all-tcl maybe-all-tk +all-ld: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-bison maybe-all-byacc maybe-all-flex maybe-all-intl configure-target-libgloss: $(ALL_GCC) -all-target-libgloss: configure-target-newlib -all-libgui: all-tcl all-tk all-itcl -all-libiberty: - -all-build-libiberty: configure-build-libiberty - +all-target-libgloss: maybe-configure-target-newlib +all-libgui: maybe-all-tcl maybe-all-tk maybe-all-itcl configure-target-libffi: $(ALL_GCC_C) -configure-target-libjava: $(ALL_GCC_C) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi -all-target-libjava: all-fastjar all-target-zlib all-target-boehm-gc all-target-qthreads all-target-libffi +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 configure-target-libstdc++-v3: $(ALL_GCC_C) -all-target-libstdc++-v3: all-target-libiberty -all-libtool: +all-target-libstdc++-v3: maybe-all-target-libiberty configure-target-libf2c: $(ALL_GCC_C) -all-target-libf2c: all-target-libiberty +all-target-libf2c: maybe-all-target-libiberty configure-target-libobjc: $(ALL_GCC_C) -all-target-libobjc: all-target-libiberty -all-m4: all-libiberty all-texinfo -all-make: all-libiberty -all-mmalloc: +all-target-libobjc: maybe-all-target-libiberty +all-m4: maybe-all-libiberty maybe-all-texinfo +all-make: maybe-all-libiberty configure-target-newlib: $(ALL_GCC) configure-target-libtermcap: $(ALL_GCC_C) -all-opcodes: all-bfd all-libiberty -all-patch: all-libiberty -all-perl: -all-prms: all-libiberty +all-opcodes: maybe-all-bfd maybe-all-libiberty +all-patch: maybe-all-libiberty +all-prms: maybe-all-libiberty configure-target-qthreads: $(ALL_GCC_C) -all-rcs: -all-readline: -all-recode: all-libiberty -all-sed: all-libiberty -all-send-pr: all-prms -all-shellutils: -all-sid: all-tcl all-tk -all-sim: all-libiberty all-bfd all-opcodes all-readline -all-snavigator: all-tcl all-tk all-itcl all-tix all-db all-grep all-libgui -all-tar: all-libiberty -all-tcl: -all-tclX: all-tcl all-tk -all-tk: all-tcl -all-texinfo: all-libiberty -all-textutils: -all-time: -all-tix: all-tcl all-tk -all-wdiff: +all-recode: maybe-all-libiberty +all-sed: maybe-all-libiberty +all-send-pr: maybe-all-prms +all-sid: maybe-all-tcl maybe-all-tk +all-sim: maybe-all-libiberty maybe-all-bfd maybe-all-opcodes maybe-all-readline +all-snavigator: maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-db maybe-all-grep maybe-all-libgui +all-tar: maybe-all-libiberty +all-tclX: maybe-all-tcl maybe-all-tk +all-tk: maybe-all-tcl +all-texinfo: maybe-all-libiberty +all-tix: maybe-all-tcl maybe-all-tk configure-target-winsup: $(ALL_GCC_C) -all-target-winsup: all-target-libiberty all-target-libtermcap -all-uudecode: all-libiberty -all-zip: -all-zlib: +all-target-winsup: maybe-all-target-libiberty maybe-all-target-libtermcap +all-uudecode: maybe-all-libiberty configure-target-zlib: $(ALL_GCC_C) -all-fastjar: all-zlib all-libiberty -configure-target-fastjar: configure-target-zlib -all-target-fastjar: configure-target-fastjar all-target-zlib all-target-libiberty +all-fastjar: maybe-all-zlib maybe-all-libiberty +configure-target-fastjar: maybe-configure-target-zlib +all-target-fastjar: maybe-all-target-zlib maybe-all-target-libiberty configure-target-libiberty: $(ALL_GCC_C) -configure-target: $(CONFIGURE_TARGET_MODULES) -all-target: $(ALL_TARGET_MODULES) -install-target: $(INSTALL_TARGET_MODULES) -install-gdb: install-tcl install-tk install-itcl install-tix install-libgui -install-sid: install-tcl install-tk +install-gdb: maybe-install-tcl maybe-install-tk maybe-install-itcl maybe-install-tix maybe-install-libgui +install-sid: maybe-install-tcl maybe-install-tk # We put install-opcodes before install-binutils because the installed # binutils might be on PATH, and they might need the shared opcodes # library. -install-binutils: install-opcodes +install-binutils: maybe-install-opcodes # We put install-tcl before install-itcl because itcl wants to run a # program on installation which uses the Tcl libraries. -install-itcl: install-tcl +install-itcl: maybe-install-tcl +# 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 + +# Dependencies of all-build-foo on configure-build-foo. +[+ FOR build_modules +]all-build-[+module+]: configure-build-[+module+] +[+ ENDFOR build_modules +] # Dependencies of all-target-foo on configure-target-foo. [+ FOR target_modules +]all-target-[+module+]: configure-target-[+module+] [+ ENDFOR target_modules +] +# 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@ + ### other supporting targets MAKEDIRS= \ @@ -1532,6 +1305,9 @@ # with the gnu make, this is done automatically. +host_makefile_frag=@host_makefile_frag@ +target_makefile_frag=@target_makefile_frag@ + Makefile: Makefile.in configure.in $(host_makefile_frag) $(target_makefile_frag) $(gcc_version_trigger) $(SHELL) ./config.status --- Makefile.def 2002-11-04 13:41:14.000000000 -0500 +++ ../bib/Makefile.def 2002-11-21 22:33:46.000000000 -0500 @@ -1,6 +1,8 @@ #! /usr/bin/autogen AutoGen definitions Makefile.tpl; +build_modules= { module= libiberty; }; + host_modules= { module= ash; }; host_modules= { module= autoconf; }; host_modules= { module= automake; }; @@ -61,8 +63,16 @@ host_modules= { module= wdiff; }; host_modules= { module= zip; no_check_cross=true; }; host_modules= { module= zlib; no_install=true; no_check=true; }; +host_modules= { module= gdb; with_x=true; }; +host_modules= { module= expect; with_x=true; }; +host_modules= { module= guile; with_x=true; }; +host_modules= { module= tclX; with_x=true; }; +host_modules= { module= tk; with_x=true; }; +host_modules= { module= tix; with_x=true; }; +host_modules= { module= libtermcap; no_check=true; no_clean=true; }; +host_modules= { module= utils; no_check=true; }; -target_modules = { module= libstdc++-v3; }; +target_modules = { module= libstdc++-v3; raw_cxx=true; }; target_modules = { module= newlib; }; target_modules = { module= libf2c; }; target_modules = { module= libobjc; }; @@ -73,8 +83,20 @@ target_modules = { module= gperf; }; target_modules = { module= examples; no_check=true; no_install=true; }; target_modules = { module= libffi; no_install=true; }; -target_modules = { module= libjava; }; +target_modules = { module= libjava; raw_cxx=true; }; target_modules = { module= zlib; }; target_modules = { module= boehm-gc; }; target_modules = { module= qthreads; }; target_modules = { module= rda; }; + +// These are (some of) the targets to be done in each subdirectory. +// Not all; these are the ones which don't have special options. +recursive_targets = { target= clean; }; +recursive_targets = { target= distclean; }; +recursive_targets = { target= dvi; }; +recursive_targets = { target= info; }; +recursive_targets = { target= install-info; }; +recursive_targets = { target= installcheck; }; +recursive_targets = { target= mostlyclean; }; +recursive_targets = { target= maintainer-clean; }; +recursive_targets = { target= TAGS; }; --- configure.in 2002-11-04 13:41:14.000000000 -0500 +++ ../bib/configure.in 2002-11-26 14:47:38.000000000 -0500 @@ -197,12 +197,8 @@ # Configure extra directories which are host specific case "${host}" in - i[3456]86-*-go32*) - configdirs="$configdirs dosrel" ;; - i[3456]86-*-mingw32*) - configdirs="$configdirs dosrel" ;; *-cygwin*) - configdirs="$configdirs libtermcap dosrel" ;; + configdirs="$configdirs libtermcap" ;; esac # Remove more programs from consideration, based on the host or @@ -852,13 +848,6 @@ *msdosdjgpp*) enable_gdbtk=no ;; esac -# Determine whether gdb needs tk/tcl or not. -case "$enable_gdbtk" in - no) - GDB_TK="" ;; - *) - GDB_TK="all-tcl all-tk all-itcl all-tix all-libgui" ;; -esac copy_dirs= @@ -1118,10 +1107,9 @@ host_makefile_frag=mh-frag fi +extra_arflags_for_target= +extra_nmflags_for_target= case "${target}" in - v810*) - target_makefile_frag="config/mt-v810" - ;; i[3456]86-*-netware*) target_makefile_frag="config/mt-netware" ;; @@ -1132,7 +1120,11 @@ target_makefile_frag="config/mt-linux" ;; *-*-aix4.[3456789]* | *-*-aix[56789].*) - target_makefile_frag="config/mt-aix43" + # nm and ar from AIX 4.3 and above require -X32_64 flag to all ar and nm + # commands to handle both 32-bit and 64-bit objects. These flags are + # harmless if we're using GNU nm or ar. + extra_arflags_for_target=" -X32_64" + extra_nmflags_for_target=" -B -X32_64" ;; mips*-*-pe | sh*-*-pe | *arm-wince-pe) target_makefile_frag="config/mt-wince" @@ -1345,6 +1337,72 @@ rm -f Makefile mv -f Makefile.tem Makefile +# Record target_configdirs and the configure arguments for target and +# build configuration in Makefile. +target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` + +# This is the final value for target_configdirs. configdirs already +# has its final value. It's time to create some lists of valid targets. + +all_build_modules= +configure_build_modules= +# Only make build modules if build != host. +# This should be done more generally, but at the moment it doesn't matter. +if test ${host_alias} != ${build_alias} ; then + all_build_modules=all-build-libiberty + configure_build_modules=configure-build-libiberty +fi + +all_host_modules= +check_host_modules= +install_host_modules= +configure_host_modules= +for module in ${configdirs} ; do + all_host_modules="${all_host_modules} all-${module}" + check_host_modules="${check_host_modules} check-${module}" + install_host_modules="${install_host_modules} install-${module}" + configure_host_modules="${configure_host_modules} configure-${module}" +done +install_host_modules_nogcc=`echo "${install_host_modules}" | sed -e 's/install-gcc//g'` + +all_target_modules= +check_target_modules= +install_target_modules= +configure_target_modules= +for module in ${target_configdirs} ; do + all_target_modules="${all_target_modules} all-target-${module}" + check_target_modules="${check_target_modules} check-target-${module}" + install_target_modules="${install_target_modules} install-target-${module}" + configure_target_modules="${configure_target_modules} configure-target-${module}" +done + +# Determine whether gdb needs tk/tcl or not. +# Use 'maybe' since enable_gdbtk might be true even if tk isn't available +# and in that case we want gdb to be built without tk. Ugh! +# In fact I believe gdb is the *only* package directly dependent on tk, +# so we should be able to put the 'maybe's in unconditionally and +# leave out the maybe dependencies when enable_gdbtk is false. I'm not +# 100% sure that that's safe though. +case "$enable_gdbtk" in + no) + GDB_TK="" ;; + *) + GDB_TK="maybe-all-tcl maybe-all-tk maybe-all-itcl maybe-all-tix maybe-all-libgui" ;; +esac + +# Create the 'maybe dependencies'. This uses a temporary file. +rm -f maybedep.tmp +for item in ${all_build_modules} ${all_host_modules} ${all_target_modules} \ + ${install_host_modules} ${install_target_modules} \ + ${configure_build_modules} ${configure_host_modules} ${configure_target_modules} \ + ; do + echo "maybe-${item}: ${item}" >> maybedep.tmp +done +sed -e '/@maybe_dependencies@/r maybedep.tmp' \ + -e 's/@maybe_dependencies@//' Makefile > Makefile.tem +rm -f Makefile +mv -f Makefile.tem Makefile +rm -f maybedep.tmp # Base args. Strip norecursion, cache-file, srcdir, host, build, target. # These are the ones we might not want to pass down to subconfigures. @@ -1361,9 +1419,6 @@ # desired. buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${baseargs}" -# Record target_configdirs and the configure arguments for target and -# build configuration in Makefile. -target_configdirs=`echo "${target_configdirs}" | sed -e 's/target-//g'` targargs=${baseargs} # Passing a --with-cross-host argument lets the target libraries know @@ -1515,7 +1570,8 @@ esac # Don't use libstdc++-v3's flags to configure/build itself. -libstdcxx_flags='`case $$dir in libstdc++-v3 | libjava) ;; *) test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes;; esac` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +libstdcxx_flags='`test ! -f $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags || $(SHELL) $$r/$(TARGET_SUBDIR)/libstdc++-v3/testsuite_flags --build-includes` -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' +raw_libstdcxx_flags=' -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src -L$$r/$(TARGET_SUBDIR)/libstdc++-v3/src/.libs' if test "x${CXX_FOR_TARGET+set}" = xset; then : @@ -1523,17 +1579,28 @@ # We add -shared-libgcc to CXX_FOR_TARGET whenever we use xgcc instead # of g++ for linking C++ or Java, because g++ has -shared-libgcc by # default whereas gcc does not. - CXX_FOR_TARGET='$$r/gcc/`case $$dir in libstdc++-v3 | libjava) echo xgcc -shared-libgcc ;; *) echo g++ ;; esac` -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + # RAW_CXX_FOR_TARGET is for linking C++ or java; CXX_FOR_TARGET is for + # all other cases. + CXX_FOR_TARGET='$$r/gcc/g++ -B$$r/gcc/ -nostdinc++ '$libstdcxx_flags + RAW_CXX_FOR_TARGET='$$r/gcc/xgcc -shared-libgcc -B$$r/gcc/ -nostdinc++ '$raw_libstdcxx_flags elif test "$host" = "$target"; then CXX_FOR_TARGET='$(CXX)' + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} else CXX_FOR_TARGET=`echo c++ | sed -e 's/x/x/' ${program_transform_name}` + RAW_CXX_FOR_TARGET=${CXX_FOR_TARGET} fi case $CXX_FOR_TARGET in *' $(FLAGS_FOR_TARGET)') ;; *) CXX_FOR_TARGET=$CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; esac +case $RAW_CXX_FOR_TARGET in +*' $(FLAGS_FOR_TARGET)') ;; +*) RAW_CXX_FOR_TARGET=$RAW_CXX_FOR_TARGET' $(FLAGS_FOR_TARGET)' ;; +esac + qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` +qRAW_CXX_FOR_TARGET=`echo "$RAW_CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'` # We want to defer the evaluation of `cmd`s and shell variables in # CXX_FOR_TARGET when recursing in the top-level Makefile, such as for @@ -1542,16 +1609,29 @@ # can be expanded by the nested make as shell variables, not as make # macros. qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` +qqRAW_CXX_FOR_TARGET=`echo "$qRAW_CXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'` sedtemp=sed.$$ cat >$sedtemp <&2 fi @@ -687,24 +682,8 @@ ### do common part of configure.in -# If the language specific compiler does not exist, but the "gcc" directory does, -# we will skip this directory; in this case the sub-directory's common part -# of configure.in will create a small shell script "skip-this-dir" containing -# commands to completely clean up any temporary or created files. - . ${tmpfile}.com -if test -f skip-this-dir; then - # Perform the same cleanup as the trap handler, minus the "exit 1" of course, - # and reset the trap handler. - trap 0 - rm -rf Makefile* ${tmpdir} - # Execute the final clean-up actions - ${config_shell} skip-this-dir - # and stop configuring this directory. - exit 0 -fi - # some sanity checks on configure.in case "${srctrigger}" in "") @@ -911,10 +890,10 @@ test -n "$DEFAULT_LEX" && break done + if [ "${build}" != "${host}" ]; then # If we are doing a Canadian Cross, in which the host and build systems # are not the same, we set reasonable default values for the tools. - tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD" tools="${tools} CC_FOR_TARGET CXX_FOR_TARGET GCJ_FOR_TARGET" tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET BUILD_PREFIX" @@ -941,6 +920,7 @@ AR=${AR-${host_alias}-ar} AR_FOR_TARGET=${AR_FOR_TARGET-${target_alias}-ar} + AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} AS=${AS-${host_alias}-as} AS_FOR_TARGET=${AS_FOR_TARGET-${target_alias}-as} BISON=${BISON-bison} @@ -962,6 +942,7 @@ MAKEINFO=${MAKEINFO-makeinfo} NM=${NM-${host_alias}-nm} NM_FOR_TARGET=${NM_FOR_TARGET-${target_alias}-nm} + NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} RANLIB=${RANLIB-${host_alias}-ranlib} RANLIB_FOR_TARGET=${RANLIB_FOR_TARGET-${target_alias}-ranlib} WINDRES=${WINDRES-${host_alias}-windres} @@ -1021,6 +1002,44 @@ export OBJCOPY export OBJDUMP else + # Set reasonable default values for some tools even if not Canadian. + # Of course, these are different reasonable default values, originally + # specified directly in the Makefile. + # We don't export, so that autoconf can do its job. + # Note that all these settings are above the fragment inclusion point + # in Makefile.in, so can still be overridden by fragments. + # This is all going to change when we autoconfiscate... + + tools="AR AR_FOR_TARGET AS AS_FOR_TARGET BISON CC_FOR_BUILD" + tools="${tools} DLLTOOL DLLTOOL_FOR_TARGET GCC_FOR_TARGET BUILD_PREFIX" + tools="${tools} BUILD_PREFIX_1 LD LD_FOR_TARGET LEX MAKEINFO NM" + tools="${tools} NM_FOR_TARGET RANLIB_FOR_TARGET" + tools="${tools} WINDRES WINDRES_FOR_TARGET YACC" + + AR=ar + AR_FOR_TARGET='\$(USUAL_AR_FOR_TARGET)' + AR_FOR_TARGET=${AR_FOR_TARGET}${extra_arflags_for_target} + AS=as + AS_FOR_TARGET='\$(USUAL_AS_FOR_TARGET)' + BISON='$(USUAL_BISON)' + CC_FOR_BUILD='\$(CC)' + DLLTOOL=dlltool + DLLTOOL_FOR_TARGET='\$(USUAL_DLLTOOL_FOR_TARGET)' + GCC_FOR_TARGET='\$(USUAL_GCC_FOR_TARGET)' + BUILD_PREFIX= + BUILD_PREFIX_1=loser- + LD=ld + LD_FOR_TARGET='\$(USUAL_LD_FOR_TARGET)' + MAKEINFO='\$(USUAL_MAKEINFO)' + NM=nm + NM_FOR_TARGET='\$(USUAL_NM_FOR_TARGET)' + NM_FOR_TARGET=${NM_FOR_TARGET}${extra_nmflags_for_target} + RANLIB_FOR_TARGET='\$(USUAL_RANLIB_FOR_TARGET)' + WINDRES=windres + WINDRES_FOR_TARGET='\$(USUAL_WINDRES_FOR_TARGET)' + LEX='\$(USUAL_LEX)' + YACC='\$(USUAL_YACC)' + # If CC is still not set, try to get gcc. if [ -z "${CC}" ]; then IFS="${IFS= }"; save_ifs="$IFS"; IFS="${IFS}:" @@ -1072,434 +1091,332 @@ export CFLAGS export CXXFLAGS -all_build_modules= -if test x"${build_alias}" != x"${host_alias}" -then - all_build_modules='$(ALL_BUILD_MODULES_LIST)' -fi - -for subdir in . ${subdirs} ; do - - # ${subdir} is relative path from . to the directory we're currently - # configuring. - # ${invsubdir} is inverse of ${subdir), *with* trailing /, if needed. - invsubdir=`echo ${subdir}/ | sed -e 's|\./||g' -e 's|[^/]*/|../|g'` - - ### figure out what to do with srcdir - case "${srcdir}" in - ".") # no -srcdir option. We're building in place. - makesrcdir=. ;; - /* | [A-Za-z]:[\\/]* ) # absolute path - makesrcdir=`echo ${srcdir}/${subdir} | sed -e 's|/\.$||'` - ;; - *) # otherwise relative - case "${subdir}" in - .) makesrcdir=${srcdir} ;; - *) makesrcdir=${invsubdir}${srcdir}/${subdir} ;; - esac - ;; - esac - - if [ "${subdir}/" != "./" ] ; then - Makefile=${subdir}/Makefile - fi - - if [ ! -d ${subdir} ] ; then - if mkdir ${subdir} ; then - true - else - echo '***' "${progname}: could not make ${PWD=`${PWDCMD-pwd}`}/${subdir}" 1>&2 - exit 1 - fi +# FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) +# Set up the list of links to be made. +# ${links} is the list of link names, and ${files} is the list of names to link to. + +# Make the links. +configlinks="${links}" +if [ -r ./config.status ] ; then + mv -f ./config.status ./config.back +fi +while [ -n "${files}" ] ; do + # set file to car of files, files to cdr of files + set ${files}; file=$1; shift; files=$* + set ${links}; link=$1; shift; links=$* + + if [ ! -r ${srcdir}/${file} ] ; then + if [ ! -r ${file} ] ; then + echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 + echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 + exit 1 + else + srcfile=${file} fi + else + srcfile=${srcdir}/${file} + fi - case "${removing}" in - "") - case "${subdir}" in - .) ;; - *) eval echo Building in ${subdir} ${redirect} ;; - esac - - # FIXME Should this be done recursively ??? (Useful for e.g. gdbtest) - # Set up the list of links to be made. - # ${links} is the list of link names, and ${files} is the list of names to link to. - - # Make the links. - configlinks="${links}" - if [ -r ${subdir}/config.status ] ; then - mv -f ${subdir}/config.status ${subdir}/config.back - fi - while [ -n "${files}" ] ; do - # set file to car of files, files to cdr of files - set ${files}; file=$1; shift; files=$* - set ${links}; link=$1; shift; links=$* - - if [ ! -r ${srcdir}/${file} ] ; then - if [ ! -r ${file} ] ; then - - echo '***' "${progname}: cannot create a link \"${link}\"," 1>&2 - echo '***' "since the file \"${srcdir}/${file}\" does not exist." 1>&2 - exit 1 - else - srcfile=${file} - fi - else - srcfile=${srcdir}/${file} - fi - - ${remove} -f ${link} - # Make a symlink if possible, otherwise try a hard link - if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then - true - else - # We need to re-remove the file because Lynx leaves a - # very strange directory there when it fails an NFS symlink. - ${remove} -r -f ${link} - ${hard_link} ${srcfile} ${link} - fi - if [ ! -r ${link} ] ; then - echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 - exit 1 - fi + ${remove} -f ${link} + # Make a symlink if possible, otherwise try a hard link + if ${symbolic_link} ${srcfile} ${link} >/dev/null 2>&1 ; then + true + else + # We need to re-remove the file because Lynx leaves a + # very strange directory there when it fails an NFS symlink. + ${remove} -r -f ${link} + ${hard_link} ${srcfile} ${link} + fi + if [ ! -r ${link} ] ; then + echo '***' "${progname}: unable to link \"${link}\" to \"${srcfile}\"." 1>&2 + exit 1 + fi - echo "Linked \"${link}\" to \"${srcfile}\"." - done + echo "Linked \"${link}\" to \"${srcfile}\"." +done - # Create a .gdbinit file which runs the one in srcdir - # and tells GDB to look there for source files. +# Create a .gdbinit file which runs the one in srcdir +# and tells GDB to look there for source files. - if [ -r ${srcdir}/${subdir}/.gdbinit ] ; then - case ${srcdir} in - .) ;; - *) cat > ${subdir}/.gdbinit < ./.gdbinit < ${Makefile}.tem - else - echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/Makefile.tem - fi - esac - # working copy now in ${Makefile}.tem - - # Conditionalize for this site. - rm -f ${Makefile} - case "${site}" in - "") mv ${subdir}/Makefile.tem ${Makefile} ;; - *) - site_makefile_frag=${srcdir}/config/ms-${site} - - if [ -f ${site_makefile_frag} ] ; then - sed -e "/^####/ r ${site_makefile_frag}" ${subdir}/Makefile.tem \ - > ${Makefile} - else - mv ${subdir}/Makefile.tem ${Makefile} - site_makefile_frag= - fi - ;; - esac - # working copy now in ${Makefile} - - # Conditionalize the makefile for this host. - rm -f ${subdir}/Makefile.tem - case "${host_makefile_frag}" in - "") mv ${Makefile} ${subdir}/Makefile.tem ;; - *) - if [ ! -f ${host_makefile_frag} ] ; then - host_makefile_frag=${srcdir}/${host_makefile_frag} - fi - if [ -f ${host_makefile_frag} ] ; then - sed -e "/^####/ r ${host_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem - else - echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - mv ${Makefile} ${subdir}/Makefile.tem - fi - esac - # working copy now in ${subdir)/Makefile.tem - - # Conditionalize the makefile for this target. - rm -f ${Makefile} - case "${target_makefile_frag}" in - "") mv ${subdir}/Makefile.tem ${Makefile} ;; - *) - if [ ! -f ${target_makefile_frag} ] ; then - target_makefile_frag=${srcdir}/${target_makefile_frag} - fi - if [ -f ${target_makefile_frag} ] ; then - sed -e "/^####/ r ${target_makefile_frag}" ${subdir}/Makefile.tem > ${Makefile} - else - mv ${subdir}/Makefile.tem ${Makefile} - target_makefile_frag= - fi - ;; - esac - # working copy now in ${Makefile} - - # Emit the default values of this package's macros. - rm -f ${subdir}/Makefile.tem - case "${package_makefile_frag}" in - "") mv ${Makefile} ${subdir}/Makefile.tem ;; - *) - if [ ! -f ${package_makefile_frag} ] ; then - package_makefile_frag=${srcdir}/${package_makefile_frag} - fi - if [ -f ${package_makefile_frag} ] ; then - sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ${subdir}/Makefile.tem - else - echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2 - echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 - mv ${Makefile} ${subdir}/Makefile.tem - fi - esac - # real copy now in ${subdir}/Makefile.tem - - # prepend warning about editing, and a bunch of variables. - rm -f ${Makefile} - cat > ${Makefile} <> ${Makefile} << EOF -build_alias = ${build_alias} -build_cpu = ${build_cpu} -build_vendor = ${build_vendor} -build_os = ${build_os} -build_canonical = ${build_cpu}-${build_vendor}-${build_os} -EOF - esac +# Install a makefile, and make it set VPATH +# if necessary so that the sources are found. +# Also change its value of srcdir. +# NOTE: Makefile generation constitutes the majority of the time in configure. Hence, this section has +# been somewhat optimized and is perhaps a bit twisty. + +# code is order so as to try to sed the smallest input files we know. +# so do these separately because I don't trust the order of sed -e expressions. + +# the five makefile fragments MUST end up in the resulting Makefile in this order: +# package macros, target, host, site, and package rules. + +if [ -f ${srcdir}/${Makefile_in} ] ; then + + # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem. + rm -f ./${Makefile}.tem + case "${package_makefile_rules_frag}" in + "") cp ${srcdir}/${Makefile_in} ./Makefile.tem ;; + *) + if [ ! -f ${package_makefile_rules_frag} ] ; then + package_makefile_rules_frag=${srcdir}/${package_makefile_rules_frag} + fi + if [ -f ${package_makefile_rules_frag} ] ; then + sed -e "/^####/ r ${package_makefile_rules_frag}" ${srcdir}/${Makefile_in} > ${Makefile}.tem + else + echo '***' Expected package makefile rules fragment \"${package_makefile_rules_frag}\" 1>&2 + echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 + cp ${srcdir}/${Makefile_in} ./Makefile.tem + fi + esac + # working copy now in ${Makefile}.tem - case "${package_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo package_makefile_frag = ${package_makefile_frag} >>${Makefile} ;; - *) echo package_makefile_frag = ${invsubdir}${package_makefile_frag} >>${Makefile} ;; - esac - - case "${target_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo target_makefile_frag = ${target_makefile_frag} >>${Makefile} ;; - *) echo target_makefile_frag = ${invsubdir}${target_makefile_frag} >>${Makefile} ;; - esac - - case "${host_makefile_frag}" in - "") ;; - /* | [A-Za-z]:[\\/]* ) echo host_makefile_frag = ${host_makefile_frag} >>${Makefile} ;; - *) echo host_makefile_frag = ${invsubdir}${host_makefile_frag} >>${Makefile} ;; - esac - - if [ "${site_makefile_frag}" != "" ] ; then - echo site_makefile_frag = ${invsubdir}${site_makefile_frag} >>${Makefile} - fi - - echo enable_shared = ${enable_shared} >> ${Makefile} - echo enable_threads = ${enable_threads} >> ${Makefile} - # record if we want to rumtime library stuff installed in libsubdir. - if test -z "${enable_version_specific_runtime_libs}"; then - echo enable_version_specific_runtime_libs = no >> ${Makefile} - else - echo enable_version_specific_runtime_libs = ${enable_version_specific_runtime_libs} >> ${Makefile} - fi + # Conditionalize for this site. + rm -f ${Makefile} + case "${site}" in + "") mv ./Makefile.tem ${Makefile} ;; + *) + site_makefile_frag=${srcdir}/config/ms-${site} - # Emit a macro which describes the file containing gcc's - # version number. - echo gcc_version_trigger = ${gcc_version_trigger} >> ${Makefile} - # And emit a macro defining gcc's version number. - echo gcc_version = ${gcc_version} >> ${Makefile} - - # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, - # remove any form feeds. - if [ -z "${subdirs}" ]; then - rm -f ${subdir}/Makefile.tm2 - sedtemp=sed.$$ - cat >$sedtemp < ${subdir}/Makefile.tm2 - rm -f $sedtemp - rm -f ${subdir}/Makefile.tem - mv ${subdir}/Makefile.tm2 ${subdir}/Makefile.tem - fi - sed -e "s|@prefix@|${prefix}|" \ - -e "s|@exec_prefix@|${exec_prefix}|" \ - -e "s|@bindir@|${bindir}|" \ - -e "s|@sbindir@|${sbindir}|" \ - -e "s|@libexecdir@|${libexecdir}|" \ - -e "s|@datadir@|${datadir}|" \ - -e "s|@sysconfdir@|${sysconfdir}|" \ - -e "s|@sharedstatedir@|${sharedstatedir}|" \ - -e "s|@localstatedir@|${localstatedir}|" \ - -e "s|@libdir@|${libdir}|" \ - -e "s|@includedir@|${includedir}|" \ - -e "s|@oldincludedir@|${oldincludedir}|" \ - -e "s|@infodir@|${infodir}|" \ - -e "s|@mandir@|${mandir}|" \ - -e "s|@all_build_modules@|${all_build_modules}|" \ - -e "/^CC[ ]*=/{ - :loop1 - /\\\\$/ N - s/\\\\\\n//g - t loop1 - s%^CC[ ]*=.*$%CC = ${CC}% - }" \ - -e "/^CXX[ ]*=/{ - :loop2 - /\\\\$/ N - s/\\\\\\n//g - t loop2 - s%^CXX[ ]*=.*$%CXX = ${CXX}% - }" \ - -e "/^CFLAGS[ ]*=/{ - :loop3 - /\\\\$/ N - s/\\\\\\n//g - t loop3 - s%^CFLAGS[ ]*=.*$%CFLAGS = ${CFLAGS}% - }" \ - -e "/^CXXFLAGS[ ]*=/{ - :loop4 - /\\\\$/ N - s/\\\\\\n//g - t loop4 - s%^CXXFLAGS[ ]*=.*$%CXXFLAGS = ${CXXFLAGS}% - }" \ - -e "s|@config_shell@|${config_shell}|" \ - -e "s|@srcdir@|${makesrcdir}|" \ - -e "s/ //" \ - -e "s:@program_transform_name@:${program_transform_name}:" \ - -e "s|@tooldir@|${tooldir}|" \ - -e "s|@build_tooldir@|${tooldir}|" \ - -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \ - -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \ - -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \ - ${subdir}/Makefile.tem >> ${Makefile} - - sed -e "s:@GDB_TK@:${GDB_TK}:" ${Makefile} >${Makefile}.tem - mv -f ${Makefile}.tem ${Makefile} - - # If this is a Canadian Cross, preset the values of many more - # tools. - if [ "${build}" != "${host}" ]; then - for var in ${tools}; do - eval val=\$${var} - sed -e "/^${var}[ ]*=/{ - :loop1 - /\\\\$/ N - /\\\\$/ b loop1 - s/\\\\\\n//g - s%^${var}[ ]*=.*$%${var} = ${val}% - }" ${Makefile} > ${Makefile}.tem - mv -f ${Makefile}.tem ${Makefile} - done - fi + if [ -f ${site_makefile_frag} ] ; then + sed -e "/^####/ r ${site_makefile_frag}" ./Makefile.tem > ${Makefile} + else + mv ./Makefile.tem ${Makefile} + site_makefile_frag= + fi + ;; + esac + # working copy now in ${Makefile} + + # Conditionalize the makefile for this host. + rm -f ./Makefile.tem + case "${host_makefile_frag}" in + "") mv ${Makefile} ./Makefile.tem ;; + *) + if [ ! -f ${host_makefile_frag} ] ; then + host_makefile_frag=${srcdir}/${host_makefile_frag} + fi + if [ -f ${host_makefile_frag} ] ; then + sed -e "/^####/ r ${host_makefile_frag}" ${Makefile} > ./Makefile.tem + else + echo '***' Expected host makefile fragment \"${host_makefile_frag}\" 1>&2 + echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 + mv ${Makefile} ./Makefile.tem + fi + esac + # working copy now in ./Makefile.tem - # final copy now in ${Makefile} + # Conditionalize the makefile for this target. + rm -f ${Makefile} + case "${target_makefile_frag}" in + "") mv ./Makefile.tem ${Makefile} ;; + *) + if [ ! -f ${target_makefile_frag} ] ; then + target_makefile_frag=${srcdir}/${target_makefile_frag} + fi + if [ -f ${target_makefile_frag} ] ; then + sed -e "/^####/ r ${target_makefile_frag}" ./Makefile.tem > ${Makefile} + else + mv ./Makefile.tem ${Makefile} + target_makefile_frag= + fi + ;; + esac + # working copy now in ${Makefile} + + # Emit the default values of this package's macros. + rm -f ./Makefile.tem + case "${package_makefile_frag}" in + "") mv ${Makefile} ./Makefile.tem ;; + *) + if [ ! -f ${package_makefile_frag} ] ; then + package_makefile_frag=${srcdir}/${package_makefile_frag} + fi + if [ -f ${package_makefile_frag} ] ; then + sed -e "/^####/ r ${package_makefile_frag}" ${Makefile} > ./Makefile.tem + else + echo '***' Expected package makefile fragment \"${package_makefile_rules_frag}\" 1>&2 + echo '***' is missing in ${PWD=`${PWDCMD-pwd}`}. 1>&2 + mv ${Makefile} ./Makefile.tem + fi + esac + # real copy now in ./Makefile.tem - else - echo "No Makefile.in found in ${srcdir}/${subdir}, unable to configure" 1>&2 - fi + # record if we want runtime library stuff installed in libsubdir. + # Blank means no. + if test -z "${enable_version_specific_runtime_libs}"; then + enable_version_specific_runtime_libs=no + fi - rm -f ${subdir}/Makefile.tem + sed -e "s|@configlinks@|${configlinks}|" \ + -e "s|@build_alias@|${build_alias}|" \ + -e "s|@build_cpu@|${build_cpu}|" \ + -e "s|@build_vendor@|${build_vendor}|" \ + -e "s|@build_os@|${build_os}|" \ + -e "s|@host_alias@|${host_alias}|" \ + -e "s|@host_cpu@|${host_cpu}|" \ + -e "s|@host_vendor@|${host_vendor}|" \ + -e "s|@host_os@|${host_os}|" \ + -e "s|@target_alias@|${target_alias}|" \ + -e "s|@target_cpu@|${target_cpu}|" \ + -e "s|@target_vendor@|${target_vendor}|" \ + -e "s|@target_os@|${target_os}|" \ + -e "s|@target_makefile_frag@|${target_makefile_frag}|" \ + -e "s|@host_makefile_frag@|${host_makefile_frag}|" \ + -e "s|@enable_shared@|${enable_shared}|" \ + -e "s|@enable_threads@|${enable_threads}|" \ + -e "s|@enable_version_specific_runtime_libs@|${enable_version_specific_runtime_libs}|" \ + -e "s|@gcc_version_trigger@|${gcc_version_trigger}|" \ + -e "s|@gcc_version@|${gcc_version}|" \ + ./Makefile.tem > ${Makefile} + mv -f ${Makefile} ./Makefile.tem + # Real copy now in Makefile.tem; no prologue. + + # reset prefix, exec_prefix, srcdir, SUBDIRS, NONSUBDIRS, + # remove any form feeds. + sed -e "s|@configdirs@|${configdirs}|" \ + -e "s|@prefix@|${prefix}|" \ + -e "s|@exec_prefix@|${exec_prefix}|" \ + -e "s|@bindir@|${bindir}|" \ + -e "s|@sbindir@|${sbindir}|" \ + -e "s|@libexecdir@|${libexecdir}|" \ + -e "s|@datadir@|${datadir}|" \ + -e "s|@sysconfdir@|${sysconfdir}|" \ + -e "s|@sharedstatedir@|${sharedstatedir}|" \ + -e "s|@localstatedir@|${localstatedir}|" \ + -e "s|@libdir@|${libdir}|" \ + -e "s|@includedir@|${includedir}|" \ + -e "s|@oldincludedir@|${oldincludedir}|" \ + -e "s|@infodir@|${infodir}|" \ + -e "s|@mandir@|${mandir}|" \ + -e "/^CC[ ]*=/{ + :loop1 + /\\\\$/ N + s/\\\\\\n//g + t loop1 + s%^CC[ ]*=.*$%CC = ${CC}% + }" \ + -e "/^CXX[ ]*=/{ + :loop2 + /\\\\$/ N + s/\\\\\\n//g + t loop2 + s%^CXX[ ]*=.*$%CXX = ${CXX}% + }" \ + -e "/^CFLAGS[ ]*=/{ + :loop3 + /\\\\$/ N + s/\\\\\\n//g + t loop3 + s%^CFLAGS[ ]*=.*$%CFLAGS = ${CFLAGS}% + }" \ + -e "/^CXXFLAGS[ ]*=/{ + :loop4 + /\\\\$/ N + s/\\\\\\n//g + t loop4 + s%^CXXFLAGS[ ]*=.*$%CXXFLAGS = ${CXXFLAGS}% + }" \ + -e "s|@config_shell@|${config_shell}|" \ + -e "s|@srcdir@|${srcdir}|" \ + -e "s/ //" \ + -e "s:@program_transform_name@:${program_transform_name}:" \ + -e "s|@tooldir@|${tooldir}|" \ + -e "s|@build_tooldir@|${tooldir}|" \ + -e "s:@DEFAULT_YACC@:${DEFAULT_YACC}:" \ + -e "s:@DEFAULT_LEX@:${DEFAULT_LEX}:" \ + -e "s:@DEFAULT_M4@:${DEFAULT_M4}:" \ + ./Makefile.tem > ${Makefile} + + # If this is a Canadian Cross, preset the values of many more + # tools. + if [ "${build}" != "${host}" ]; then + for var in ${tools}; do + eval val=\$${var} + sed -e "/^${var}[ ]*=/{ + :loop1 + /\\\\$/ N + /\\\\$/ b loop1 + s/\\\\\\n//g + s%^${var}[ ]*=.*$%${var} = ${val}% + }" ${Makefile} > ${Makefile}.tem + mv -f ${Makefile}.tem ${Makefile} + done + fi + # If this is NOT a Canadian Cross, preset the values of some more + # tools. The above line should get merged into this, but this + # substitutes *once* where the above substitutes *globally*; that + # needs to be worked out before the merger. The issue is in Makefile + # fragment elements (ick, yuck, ugh). + if [ "${build}" = "${host}" ]; then + for var in ${tools}; do + eval val=\$${var} + sed -e "s%@${var}@%${val}%" ${Makefile} > ${Makefile}.tem + mv -f ${Makefile}.tem ${Makefile} + done + fi - case "${host_makefile_frag}" in - "") using= ;; - *) using="and \"${host_makefile_frag}\"" ;; - esac + # final copy now in ${Makefile} - case "${target_makefile_frag}" in - "") ;; - *) using="${using} and \"${target_makefile_frag}\"" ;; - esac +else + echo "No Makefile.in found in ${srcdir}/., unable to configure" 1>&2 +fi - case "${site_makefile_frag}" in - "") ;; - *) using="${using} and \"${site_makefile_frag}\"" ;; - esac +rm -f ./Makefile.tem - newusing=`echo "${using}" | sed 's/and/using/'` - using=${newusing} - echo "Created \"${Makefile}\" in" ${PWD=`${PWDCMD-pwd}`} ${using} - - . ${tmpfile}.pos - - # describe the chosen configuration in config.status. - # Make that file a shellscript which will reestablish - # the same configuration. Used in Makefiles to rebuild - # Makefiles. - - case "${norecursion}" in - "") arguments="${arguments} --norecursion" ;; - *) ;; - esac +case "${host_makefile_frag}" in + "") using= ;; + *) using="and \"${host_makefile_frag}\"" ;; +esac - if [ ${subdir} = . ] ; then - echo "#!/bin/sh -# ${NO_EDIT} -# This directory was configured as follows: -${progname}" ${arguments} " -# ${using}" > ${subdir}/config.new - else - echo "#!/bin/sh +case "${target_makefile_frag}" in + "") ;; + *) using="${using} and \"${target_makefile_frag}\"" ;; +esac + +case "${site_makefile_frag}" in + "") ;; + *) using="${using} and \"${site_makefile_frag}\"" ;; +esac + +newusing=`echo "${using}" | sed 's/and/using/'` +using=${newusing} +echo "Created \"${Makefile}\" in" ${PWD=`${PWDCMD-pwd}`} ${using} + +. ${tmpfile}.pos + +# describe the chosen configuration in config.status. +# Make that file a shellscript which will reestablish +# the same configuration. Used in Makefiles to rebuild +# Makefiles. + +case "${norecursion}" in + "") arguments="${arguments} --norecursion" ;; + *) ;; +esac + +echo "#!/bin/sh # ${NO_EDIT} # This directory was configured as follows: -cd ${invsubdir} ${progname}" ${arguments} " -# ${using}" > ${subdir}/config.new - fi - chmod a+x ${subdir}/config.new - if [ -r ${subdir}/config.back ] ; then - mv -f ${subdir}/config.back ${subdir}/config.status - fi - ${config_shell} ${moveifchange} ${subdir}/config.new ${subdir}/config.status - ;; - - *) rm -f ${Makefile} ${subdir}/config.status ${links} ;; - esac -done +# ${using}" > ./config.new +chmod a+x ./config.new +if [ -r ./config.back ] ; then + mv -f ./config.back ./config.status +fi +${config_shell} ${moveifchange} ./config.new ./config.status # If there are subdirectories, then recur. if [ -z "${norecursion}" ] && [ -n "${configdirs}" ] ; then @@ -1580,7 +1497,7 @@ if [ ! -z "${recprog}" ] ; then if eval ${config_shell} ${recprog} ${verbose} ${buildopt} --host=${host_alias} --target=${tgt_alias} \ ${prefixoption} ${tmpdiroption} ${exec_prefixoption} \ - ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${removing} ${other_options} ${redirect} ; then + ${srcdiroption} ${diroptions} ${program_prefixoption} ${program_suffixoption} ${program_transform_nameoption} ${site_option} ${withoptions} ${withoutoptions} ${enableoptions} ${disableoptions} ${floating_pointoption} ${cache_file_option} ${other_options} ${redirect} ; then true else echo Configure in `${PWDCMD-pwd}` failed, exiting. 1>&2