# We have to handle being invoked by both Cygnus configure and Autoconf.
#
# Cygnus configure incoming variables:
-# srcdir, subdir, target, arguments
+# srcdir, subdir, host, arguments
#
# Autoconf incoming variables:
-# srcdir, target, ac_configure_args
+# srcdir, host, ac_configure_args
#
-# We *could* figure srcdir and target out, but we'd have to do work that
+# We *could* figure srcdir and host out, but we'd have to do work that
# our caller has already done to figure them out and requiring these two
# seems reasonable.
+# Note that `host' in this case is GCC's `target'. Target libraries are
+# configured for a particular host.
if [ -n "${ac_configure_args}" ]; then
Makefile=${ac_file-Makefile}
# Scan all the arguments and set all the ones we need.
+ml_verbose=--verbose
for option in ${ml_arguments}
do
case $option in
--norecursion | --no*)
ml_norecursion=yes
;;
+ --silent | --sil* | --quiet | --q*)
+ ml_verbose=--silent
+ ;;
--verbose | --v | --verb*)
ml_verbose=--verbose
;;
fi
done
-case "${target}" in
-# start-sanitize-arc
-arc-sbp-elf*)
+# Target libraries are configured for the host they run on, so we check
+# $host here, not $target.
+
+case "${host}" in
+arc-*-elf*)
if [ x$enable_biendian != xyes ]
then
old_multidirs=${multidirs}
- multidirs=
+ multidirs=""
for x in ${old_multidirs}; do
case "${x}" in
- *be*) ;;
- *) if [ x"$multidirs" = x ]; then
- multidirs="$x";
- else
- multidirs="${multidirs} ${x}";
- fi
- ;;
+ *be*) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
-# end-sanitize-arc
-mips*-*-*)
- if [ x$enable_single_float = xno ]
+arm-*-*)
+ if [ x"$enable_fpu" = xno ]
then
- old_multidirs="${multidirs}"
+ old_multidirs=${multidirs}
multidirs=""
for x in ${old_multidirs}; do
- case "$x" in
- *single* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ case "${x}" in
+ *fpu*) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x"$enable_26bit" = xno ]
+ then
+ old_multidirs=${multidirs}
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "${x}" in
+ *26bit*) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x"$enable_underscore" = xno ]
+ then
+ old_multidirs=${multidirs}
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "${x}" in
+ *under*) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x"$enable_interwork" = xno ]
+ then
+ old_multidirs=${multidirs}
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "${x}" in
+ *interwork*) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *el* ) : ;;
- *eb* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *le* ) : ;;
+ *be* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
+ ;;
+m68*-*-*)
if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
for x in ${old_multidirs}; do
case "$x" in
*soft-float* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x$enable_m68881 = xno ]
+ then
+ old_multidirs="${multidirs}"
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "$x" in
+ *m68881* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x$enable_m68000 = xno ]
+ then
+ old_multidirs="${multidirs}"
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "$x" in
+ *m68000* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
+ esac
+ done
+ fi
+ if [ x$enable_m68020 = xno ]
+ then
+ old_multidirs="${multidirs}"
+ multidirs=""
+ for x in ${old_multidirs}; do
+ case "$x" in
+ *m68020* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
-powerpc*-*-* | rs6000*-*-*)
- if [ x$enable_softfloat = xno ]
+mips*-*-*)
+ if [ x$enable_single_float = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *soft-float* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *single* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_commoncpu = xno ]
+ if [ x$enable_biendian = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *common* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *el* ) : ;;
+ *eb* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_powercpu = xno ]
+ if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- power | */power | */power/* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *soft-float* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_power2cpu = xno ]
+ ;;
+powerpc*-*-* | rs6000*-*-*)
+ if [ x$enable_softfloat = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *power2* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *soft-float* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_powerpccpu = xno ]
+ if [ x$enable_powercpu = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *powerpc* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ power | */power | */power/* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_601cpu = xno ]
+ if [ x$enable_powerpccpu = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *601* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *powerpc* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_biendian = xno ]
+ if [ x$enable_powerpcos = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *endian* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *mcall-linux* | *mcall-solaris* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
- if [ x$enable_relocatable = xno ]
+ if [ x$enable_biendian = xno ]
then
old_multidirs="${multidirs}"
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *relocatable* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *mlittle* | *mbig* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *sysv* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *mcall-sysv* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
multidirs=""
for x in ${old_multidirs}; do
case "$x" in
- *aix* ) : ;;
- *) if [ x"$multidirs" = x ]; then multidirs="$x"; else multidirs="${multidirs} ${x}"; fi ;;
+ *mcall-aix* ) : ;;
+ *) multidirs="${multidirs} ${x}" ;;
esac
done
fi
;;
esac
+# Remove extraneous blanks from multidirs.
+# Tests like `if [ -n "$multidirs" ]' require it.
+multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
+
# Add code to library's top level makefile to handle building the multilib
# subdirs.
CXXFLAGS="$(CXXFLAGS) $${flags}" \
LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
+ LDFLAGS="$(LDFLAGS) $${flags}" \
$(DO)); then \
true; \
else \
fi
(cd ${ml_dir}/${ml_libdir};
../${dotdot}${ml_unsubdir}symlink-tree ../${dotdot}${ml_unsubdir}${ml_libdir} "")
+ if [ -f ${ml_dir}/${ml_libdir}/Makefile ]; then
+ if [ x"${MAKE}" = x ]; then
+ (cd ${ml_dir}/${ml_libdir}; make distclean)
+ else
+ (cd ${ml_dir}/${ml_libdir}; ${MAKE} distclean)
+ fi
+ fi
ml_newsrcdir="."
ml_srcdiroption=
multisrctop=${dotdot}