When build != host, create libiberty for the build machine.

* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
CONFIG_ARGUMENTS.
(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
New variables.
(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
and rules.
(all.normal): Depend on ALL_BUILD_MODULES.
(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
(all-build-libiberty): Depend on configure-build-libiberty.

* configure: Calculate and substitute proper value for
ALL_BUILD_MODULES.
* configure.in: Create the build subdirectory.
Calculate and substitute TARGET_CONFIGARGS (formerly
CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
This commit is contained in:
DJ Delorie 2001-11-28 19:55:01 +00:00
parent 558f1fb418
commit f66d193650
4 changed files with 181 additions and 7 deletions

View File

@ -1,3 +1,24 @@
2001-11-28 DJ Delorie <dj@redhat.com>
Zack Weinberg <zack@codesourcery.com>
When build != host, create libiberty for the build machine.
* Makefile.in (TARGET_CONFIGARGS, BUILD_CONFIGARGS): Replace
CONFIG_ARGUMENTS.
(ALL_BUILD_MODULES_LIST, BUILD_CONFIGDIRS, BUILD_SUBDIR):
New variables.
(ALL_BUILD_MODULES, CONFIGURE_BUILD_MODULES): New variables
and rules.
(all.normal): Depend on ALL_BUILD_MODULES.
(CONFIGURE_TARGET_MODULES rule): Use TARGET_CONFIGARGS.
(all-build-libiberty): Depend on configure-build-libiberty.
* configure: Calculate and substitute proper value for
ALL_BUILD_MODULES.
* configure.in: Create the build subdirectory.
Calculate and substitute TARGET_CONFIGARGS (formerly
CONFIG_ARGUMENTS); also BUILD_SUBDIR and BUILD_CONFIGARGS (new).
2001-11-26 Geoffrey Keating <geoffk@redhat.com>
* config.sub: Update to version 1.232 on subversion.

View File

@ -179,8 +179,16 @@ TARGET_CONFIGDIRS = libiberty libgloss $(SPECIAL_LIBS) newlib libio librx libstd
# Changed by configure to $(target_alias) if cross.
TARGET_SUBDIR = .
# This is set by the configure script to the arguments passed to configure.
CONFIG_ARGUMENTS =
BUILD_CONFIGDIRS = libiberty
BUILD_SUBDIR = .
# This is set by the configure script to the arguments to use when configuring
# directories built for the target.
TARGET_CONFIGARGS =
# This is set by the configure script to the arguments to use when configuring
# directories built for the build system.
BUILD_CONFIGARGS =
# This is set by configure to REALLY_SET_LIB_PATH if --enable-shared
# was used.
@ -488,6 +496,18 @@ EXTRA_GCC_FLAGS = \
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 =
# 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 = \
@ -954,6 +974,7 @@ CLEAN_X11_MODULES = \
# The target built for a native build.
.PHONY: all.normal
all.normal: \
$(ALL_BUILD_MODULES) \
$(ALL_MODULES) \
$(ALL_X11_MODULES) \
$(ALL_TARGET_MODULES) \
@ -1195,6 +1216,106 @@ gcc-no-fixedincludes:
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
# build machine's native compiler.
.PHONY: $(ALL_BUILD_MODULES)
$(ALL_BUILD_MODULES):
dir=`echo $@ | sed -e 's/all-build-//'`; \
if [ -f ./$${dir}/Makefile ] ; then \
r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
(cd $(BUILD_SUBDIR)/$${dir} && $(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 \
true; \
elif [ -f $(BUILD_SUBDIR)/$${dir}/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};\
r=`pwd`; export r; \
s=`cd $(srcdir); pwd`; export s; \
AR="$(AR_FOR_BUILD)"; export AR; \
AS="$(AS_FOR_BUILD)"; export AS; \
CC="$(CC_FOR_BUILD)"; export CC; \
CFLAGS="$(CFLAGS_FOR_BUILD)"; export CFLAGS; \
CXX="$(CXX_FOR_BUILD)"; export CXX; \
CXXFLAGS="$(CXXFLAGS_FOR_BUILD)"; export CXXFLAGS; \
GCJ="$(GCJ_FOR_BUILD)"; export GCJ; \
DLLTOOL="$(DLLTOOL_FOR_BUILD)"; export DLLTOOL; \
LD="$(LD_FOR_BUILD)"; export LD; \
LDFLAGS="$(LDFLAGS_FOR_BUILD)"; export LDFLAGS; \
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; \
case $(srcdir) in \
/* | [A-Za-z]:[\\/]*) \
topdir=$(srcdir) ;; \
*) \
case "$(BUILD_SUBDIR)" in \
.) topdir="../$(srcdir)" ;; \
*) topdir="../../$(srcdir)" ;; \
esac ;; \
esac; \
if [ "$(srcdir)" = "." ] ; then \
if [ "$(BUILD_SUBDIR)" != "." ] ; then \
if $(SHELL) $$s/symlink-tree $${topdir}/$${dir} "no-such-file" ; then \
if [ -f Makefile ]; then \
if $(MAKE) distclean; then \
true; \
else \
exit 1; \
fi; \
else \
true; \
fi; \
else \
exit 1; \
fi; \
else \
true; \
fi; \
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; \
fi; \
else \
true; \
fi; \
else \
true; \
fi
# This rule is used to build the modules which use FLAGS_TO_PASS. To
# build a target all-X means to cd to X and make all.
#
@ -1339,12 +1460,12 @@ $(CONFIGURE_TARGET_MODULES):
if [ -f $${libsrcdir}/configure ] ; then \
rm -f no-such-file skip-this-dir; \
CONFIG_SITE=no-such-file $(SHELL) $${libsrcdir}/configure \
$(CONFIG_ARGUMENTS) $${srcdiroption} \
$(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 \
$(CONFIG_ARGUMENTS) $${srcdiroption} \
$(TARGET_CONFIGARGS) $${srcdiroption} \
--with-target-subdir="$(TARGET_SUBDIR)"; \
fi; \
if [ -f skip-this-dir ] ; then \
@ -1635,6 +1756,9 @@ all-target-libio: configure-target-libio all-gas all-ld all-gcc all-target-libib
check-target-libio: all-target-libstdc++
all-libgui: all-tcl all-tk all-tcl8.1 all-tk8.1 all-itcl
all-libiberty:
all-build-libiberty: configure-build-libiberty
configure-target-libffi: $(ALL_GCC_C)
all-target-libffi: configure-target-libffi
configure-target-libjava: $(ALL_GCC_CXX) configure-target-zlib configure-target-boehm-gc configure-target-qthreads configure-target-libffi

7
configure vendored
View File

@ -1078,6 +1078,12 @@ else
GDB_TK=""
fi
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
@ -1378,6 +1384,7 @@ EOF
-e "s|^oldincludedir[ ]*=.*$|oldincludedir = ${oldincludedir}|" \
-e "s|^infodir[ ]*=.*$|infodir = ${infodir}|" \
-e "s|^mandir[ ]*=.*$|mandir = ${mandir}|" \
-e "s|^ALL_BUILD_MODULES =.*|ALL_BUILD_MODULES =${all_build_modules}|" \
-e "/^CC[ ]*=/{
:loop1
/\\\\$/ N

View File

@ -434,6 +434,18 @@ if [ ! -d ${target_subdir} ] ; then
fi
fi
build_subdir=${build_alias}
if [ x"${build_alias}" != x"${host}" ] ; then
if [ ! -d ${build_subdir} ] ; then
if mkdir ${build_subdir} ; then true
else
echo "'*** could not make ${PWD=`pwd`}/${build_subdir}" 1>&2
exit 1
fi
fi
fi
copy_dirs=
# Handle --with-headers=XXX. The contents of the named directory are
@ -1260,7 +1272,8 @@ if [ "${shared}" = "yes" ]; then
esac
fi
# Record target_configdirs and the configure arguments in 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'`
targargs=`echo "${arguments}" | \
sed -e 's/--no[^ ]*//' \
@ -1269,6 +1282,11 @@ targargs=`echo "${arguments}" | \
-e 's/--bu[a-z-]*=[^ ]*//' \
-e 's/--ta[a-z-]*=[^ ]*//'`
# For the build-side libraries, we just need to pretend we're native,
# and not use the same cache file. Multilibs are neither needed nor
# desired.
buildargs="--cache-file=../config.cache --build=${build_alias} --host=${build_alias} ${targargs}"
# Passing a --with-cross-host argument lets the target libraries know
# whether they are being built with a cross-compiler or being built
# native. However, it would be better to use other mechanisms to make the
@ -1289,6 +1307,9 @@ if [ x${with_newlib} != xno ] && echo " ${target_configdirs} " | grep " newlib "
targargs="--with-newlib ${targargs}"
fi
# Pass the appropriate --host, --build, and --cache-file arguments.
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
# provide a proper gxx_include_dir.
# Note, if you change the default, make sure to fix both here and in
# the gcc, libio, and libstdc++ subdirectories.
@ -1426,15 +1447,16 @@ qCXX_FOR_TARGET=`echo "$CXX_FOR_TARGET" | sed 's,[&%],\\\&,g'`
# macros.
qqCXX_FOR_TARGET=`echo "$qCXX_FOR_TARGET" | sed -e 's,[$][$],$$$$,g'`
targargs="--cache-file=../config.cache --host=${target_alias} --build=${build_alias} ${targargs}"
sed -e "s:^TARGET_CONFIGDIRS[ ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
-e "s%^CONFIG_ARGUMENTS[ ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
-e "s%^TARGET_CONFIGARGS[ ]*=.*$%TARGET_CONFIGARGS = ${targargs}%" \
-e "s%^FLAGS_FOR_TARGET[ ]*=.*$%FLAGS_FOR_TARGET = ${FLAGS_FOR_TARGET}%" \
-e "s%^CC_FOR_TARGET[ ]*=.*$%CC_FOR_TARGET = ${CC_FOR_TARGET}%" \
-e "s%^CHILL_FOR_TARGET[ ]*=.*$%CHILL_FOR_TARGET = ${CHILL_FOR_TARGET}%" \
-e "s%^CXX_FOR_TARGET[ ]*=.*$%CXX_FOR_TARGET = ${qCXX_FOR_TARGET}%" \
-e "s%^CXX_FOR_TARGET_FOR_RECURSIVE_MAKE[ ]*=.*$%CXX_FOR_TARGET_FOR_RECURSIVE_MAKE = ${qqCXX_FOR_TARGET}%" \
-e "s%^TARGET_SUBDIR[ ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
-e "s%^BUILD_SUBDIR[ ]*=.*$%BUILD_SUBDIR = ${build_subdir}%" \
-e "s%^BUILD_CONFIGARGS[ ]*=.*$%BUILD_CONFIGARGS = ${buildargs}%" \
-e "s%^gxx_include_dir[ ]*=.*$%gxx_include_dir=${gxx_include_dir}%" \
Makefile > Makefile.tem
rm -f Makefile