This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Toplevel patches, currently on branch in gcc
- From: Nathanael Nerode <neroden at twcny dot rr dot com>
- To: gdb-patches at sources dot redhat dot com, binutils at sources dot redhat dot com
- Date: Tue, 26 Nov 2002 15:02:43 -0500
- Subject: Toplevel patches, currently on branch in gcc
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 <neroden@gcc.gnu.org>
* 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 <neroden@gcc.gnu.org>
* 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 <neroden@gcc.gnu.org>
* 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 <neroden@gcc.gnu.org>
* 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 <<EOF
+s%@GDB_TK@%${GDB_TK}%
+s%@all_build_modules@%${all_build_modules}%
+s%@configure_build_modules@%${configure_build_modules}%
+s%@all_host_modules@%${all_host_modules}%
+s%@check_host_modules@%${check_host_modules}%
+s%@install_host_modules@%${install_host_modules}%
+s%@install_host_modules_nogcc@%${install_host_modules_nogcc}%
+s%@all_target_modules@%${all_target_modules}%
+s%@check_target_modules@%${check_target_modules}%
+s%@install_target_modules@%${install_target_modules}%
s:@target_configdirs@:${target_configdirs}:
s%@target_configargs@%${targargs}%
s%@FLAGS_FOR_TARGET@%${FLAGS_FOR_TARGET}%
s%@CC_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${CC_FOR_TARGET}%
s%@GCJ_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${GCJ_FOR_TARGET}%
s%@CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET@%\$(STAGE_CC_WRAPPER) ${qRAW_CXX_FOR_TARGET}%
s%@CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqCXX_FOR_TARGET}%
+s%@RAW_CXX_FOR_TARGET_FOR_RECURSIVE_MAKE@%\$(STAGE_CC_WRAPPER) ${qqRAW_CXX_FOR_TARGET}%
s%@target_subdir@%${target_subdir}%
s%@build_subdir@%${build_subdir}%
s%@build_configargs@%${buildargs}%
--- configure 2002-10-02 01:37:45.000000000 -0400
+++ ../bib/configure 2002-11-26 14:47:38.000000000 -0500
@@ -79,17 +79,15 @@
program_transform_name=
program_transform_nameoption=
redirect=
-removing=
site=
site_makefile_frag=
site_option=
srcdir=
srctrigger=
-subdirs=
target_alias=NOTARGET
target_makefile_frag=
undefs=NOUNDEFS
-version="$Revision: 1.24 $"
+version="$Revision: 1.46.6.6 $"
x11=default
bindir='${exec_prefix}/bin'
sbindir='${exec_prefix}/sbin'
@@ -317,9 +315,6 @@
program_transform_name="${program_transform_name} -e `echo ${optarg} | sed -e 's/\\\\/\\\\\\\\/g' -e 's/\\\$/$$/g'`"
program_transform_nameoption="${program_transform_nameoption} --program-transform-name='$optarg'"
;;
- --rm)
- removing=--rm
- ;;
--sb*)
sbindir=$optarg
diroptions="$diroptions --sbindir=$optarg"
@@ -639,7 +634,7 @@
${program_transform_nameoption} ${site_option} \
${withoptions} ${withoutoptions} \
${enableoptions} ${disableoptions} ${floating_pointoption} \
- ${cache_file_option} ${removing} ${other_options} ${redirect}
+ ${cache_file_option} ${other_options} ${redirect}
else
echo '***' There is no configure script present though. 1>&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 <<EOF
+if [ -r ${srcdir}/.gdbinit ] ; then
+ case ${srcdir} in
+ .) ;;
+ *) cat > ./.gdbinit <<EOF
# ${NO_EDIT}
-dir ${makesrcdir}
+dir ${srcdir}
dir .
-source ${makesrcdir}/.gdbinit
+source ${srcdir}/.gdbinit
EOF
- ;;
- esac
- fi
+ ;;
+ esac
+fi
- # 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}/${subdir}/${Makefile_in} ] ; then
-
- # Conditionalize the makefile for this package from "Makefile.in" (or whatever it's called) into Makefile.tem.
- rm -f ${subdir}/${Makefile}.tem
- case "${package_makefile_rules_frag}" in
- "") cp ${srcdir}/${subdir}/${Makefile_in} ${subdir}/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}/${subdir}/${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}/${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} <<EOF
-# ${NO_EDIT}
-VPATH = ${makesrcdir}
-links = ${configlinks}
-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}
-EOF
- case "${build}" in
- "") ;;
- *) cat >> ${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 <<EOF
-s:@configdirs@:${configdirs}:
-EOF
- sed -f $sedtemp \
- ${subdir}/Makefile.tem > ${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