|  | # Configure fragment invoked in the post-target section for subdirs | 
|  | # wanting multilib support. | 
|  | # | 
|  | # Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, | 
|  | # 2005, 2006, 2007, 2008, 2010, 2011, 2014 Free Software Foundation, Inc. | 
|  | # | 
|  | # This file is free software; you can redistribute it and/or modify | 
|  | # it under the terms of the GNU General Public License as published by | 
|  | # the Free Software Foundation; either version 2 of the License, or | 
|  | # (at your option) any later version. | 
|  | # | 
|  | # This program is distributed in the hope that it will be useful, | 
|  | # but WITHOUT ANY WARRANTY; without even the implied warranty of | 
|  | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
|  | # GNU General Public License for more details. | 
|  | # | 
|  | # You should have received a copy of the GNU General Public License | 
|  | # along with this program; if not, write to the Free Software | 
|  | # Foundation, Inc., 51 Franklin Street, Fifth Floor, | 
|  | # Boston, MA 02110-1301, USA. | 
|  | # | 
|  | # As a special exception to the GNU General Public License, if you | 
|  | # distribute this file as part of a program that contains a | 
|  | # configuration script generated by Autoconf, you may include it under | 
|  | # the same distribution terms that you use for the rest of that program. | 
|  | # | 
|  | # Please report bugs to <gcc-bugs@gnu.org> | 
|  | # and send patches to <gcc-patches@gnu.org>. | 
|  |  | 
|  | # It is advisable to support a few --enable/--disable options to let the | 
|  | # user select which libraries s/he really wants. | 
|  | # | 
|  | # Subdirectories wishing to use multilib should put the following lines | 
|  | # in the "post-target" section of configure.ac. | 
|  | # | 
|  | # if [ "${srcdir}" = "." ] ; then | 
|  | #   if [ "${with_target_subdir}" != "." ] ; then | 
|  | #     . ${with_multisrctop}../../config-ml.in | 
|  | #   else | 
|  | #     . ${with_multisrctop}../config-ml.in | 
|  | #   fi | 
|  | # else | 
|  | #   . ${srcdir}/../config-ml.in | 
|  | # fi | 
|  | # | 
|  | # | 
|  | # Things are complicated because 6 separate cases must be handled: | 
|  | # 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6. | 
|  | # | 
|  | # srcdir=. is special.  It must handle make programs that don't handle VPATH. | 
|  | # To implement this, a symlink tree is built for each library and for each | 
|  | # multilib subdir. | 
|  | # | 
|  | # The build tree is layed out as | 
|  | # | 
|  | # ./ | 
|  | #   newlib | 
|  | #   m68020/ | 
|  | #          newlib | 
|  | #          m68881/ | 
|  | #                 newlib | 
|  | # | 
|  | # The nice feature about this arrangement is that inter-library references | 
|  | # in the build tree work without having to care where you are.  Note that | 
|  | # inter-library references also work in the source tree because symlink trees | 
|  | # are built when srcdir=. | 
|  | # | 
|  | # Unfortunately, trying to access the libraries in the build tree requires | 
|  | # the user to manually choose which library to use as GCC won't be able to | 
|  | # find the right one.  This is viewed as the lesser of two evils. | 
|  | # | 
|  | # Configure variables: | 
|  | # ${with_target_subdir} = "." for native, or ${target_alias} for cross. | 
|  | # Set by top level Makefile. | 
|  | # ${with_multisrctop} = how many levels of multilibs there are in the source | 
|  | # tree.  It exists to handle the case of configuring in the source tree: | 
|  | # ${srcdir} is not constant. | 
|  | # ${with_multisubdir} = name of multilib subdirectory (eg: m68020/m68881). | 
|  | # | 
|  | # Makefile variables: | 
|  | # MULTISRCTOP = number of multilib levels in source tree (+1 if cross) | 
|  | # (FIXME: note that this is different than ${with_multisrctop}.  Check out.). | 
|  | # MULTIBUILDTOP = number of multilib levels in build tree | 
|  | # MULTIDIRS = list of multilib subdirs (eg: m68000 m68020 ...) | 
|  | # (only defined in each library's main Makefile). | 
|  | # MULTISUBDIR = installed subdirectory name with leading '/' (eg: /m68000) | 
|  | # (only defined in each multilib subdir). | 
|  |  | 
|  | # FIXME: Multilib is currently disabled by default for everything other than | 
|  | # newlib.  It is up to each target to turn on multilib support for the other | 
|  | # libraries as desired. | 
|  |  | 
|  | # Autoconf incoming variables: | 
|  | # srcdir, host, ac_configure_args | 
|  | # | 
|  | # 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. | 
|  |  | 
|  | Makefile=${ac_file-Makefile} | 
|  | ml_config_shell=${CONFIG_SHELL-/bin/sh} | 
|  | ml_realsrcdir=${srcdir} | 
|  |  | 
|  | # Scan all the arguments and set all the ones we need. | 
|  |  | 
|  | scan_arguments () | 
|  | { | 
|  | ml_verbose=--verbose | 
|  | for option | 
|  | do | 
|  | # Strip single quotes surrounding individual options, that is, remove one | 
|  | # level of shell quoting for these. | 
|  | case $option in | 
|  | \'*\') eval option=$option ;; | 
|  | esac | 
|  |  | 
|  | case $option in | 
|  | --*) ;; | 
|  | -*) option=-$option ;; | 
|  | esac | 
|  |  | 
|  | case $option in | 
|  | --*=*) | 
|  | optarg=`echo $option | sed -e 's/^[^=]*=//'` | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | case $option in | 
|  | --disable-*) | 
|  | enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'` | 
|  | eval $enableopt=no | 
|  | ;; | 
|  | --enable-*) | 
|  | case "$option" in | 
|  | *=*)	;; | 
|  | *)	optarg=yes ;; | 
|  | esac | 
|  | enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` | 
|  | # enable_shared and enable_static are handled by configure. | 
|  | # Don't undo its work. | 
|  | case $enableopt in | 
|  | enable_shared | enable_static) ;; | 
|  | *) eval $enableopt='$optarg' ;; | 
|  | esac | 
|  | ;; | 
|  | --norecursion | --no-recursion) | 
|  | ml_norecursion=yes | 
|  | ;; | 
|  | --silent | --sil* | --quiet | --q*) | 
|  | ml_verbose=--silent | 
|  | ;; | 
|  | --verbose | --v | --verb*) | 
|  | ml_verbose=--verbose | 
|  | ;; | 
|  | --with-*) | 
|  | case "$option" in | 
|  | *=*)	;; | 
|  | *)	optarg=yes ;; | 
|  | esac | 
|  | withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` | 
|  | eval $withopt='$optarg' | 
|  | ;; | 
|  | --without-*) | 
|  | withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'` | 
|  | eval $withopt=no | 
|  | ;; | 
|  | esac | 
|  | done | 
|  | } | 
|  | # Use eval to properly handle configure arguments such as | 
|  | # --enable-foo='--enable-a=1 --enable-b=2 --enable-c=3'. | 
|  | eval scan_arguments "${ac_configure_args}" | 
|  | unset scan_arguments | 
|  |  | 
|  | # Only do this if --enable-multilib. | 
|  | if [ "${enable_multilib}" = yes ]; then | 
|  |  | 
|  | # Compute whether this is the library's top level directory | 
|  | # (ie: not a multilib subdirectory, and not a subdirectory like newlib/src). | 
|  | # ${with_multisubdir} tells us we're in the right branch, but we could be | 
|  | # in a subdir of that. | 
|  | # ??? The previous version could void this test by separating the process into | 
|  | # two files: one that only the library's toplevel configure.ac ran (to | 
|  | # configure the multilib subdirs), and another that all configure.ac's ran to | 
|  | # update the Makefile.  It seemed reasonable to collapse all multilib support | 
|  | # into one file, but it does leave us with having to perform this test. | 
|  | ml_toplevel_p=no | 
|  | if [ -z "${with_multisubdir}" ]; then | 
|  | if [ "${srcdir}" = "." ]; then | 
|  | # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}. | 
|  | # ${with_target_subdir} = "." for native, otherwise target alias. | 
|  | if [ "${with_target_subdir}" = "." ]; then | 
|  | if [ -f ${ml_realsrcdir}/../config-ml.in ]; then | 
|  | ml_toplevel_p=yes | 
|  | fi | 
|  | else | 
|  | if [ -f ${ml_realsrcdir}/../../config-ml.in ]; then | 
|  | ml_toplevel_p=yes | 
|  | fi | 
|  | fi | 
|  | else | 
|  | # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}. | 
|  | if [ -f ${ml_realsrcdir}/../config-ml.in ]; then | 
|  | ml_toplevel_p=yes | 
|  | fi | 
|  | fi | 
|  | fi | 
|  |  | 
|  | # If this is the library's top level directory, set multidirs to the | 
|  | # multilib subdirs to support.  This lives at the top because we need | 
|  | # `multidirs' set right away. | 
|  |  | 
|  | if [ "${ml_toplevel_p}" = yes ]; then | 
|  |  | 
|  | multidirs= | 
|  | for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do | 
|  | dir=`echo $i | sed -e 's/;.*$//'` | 
|  | if [ "${dir}" = "." ]; then | 
|  | true | 
|  | else | 
|  | if [ -z "${multidirs}" ]; then | 
|  | multidirs="${dir}" | 
|  | else | 
|  | multidirs="${multidirs} ${dir}" | 
|  | fi | 
|  | fi | 
|  | done | 
|  |  | 
|  | # Target libraries are configured for the host they run on, so we check | 
|  | # $host here, not $target. | 
|  |  | 
|  | case "${host}" in | 
|  | arm-*-*) | 
|  | if [ x"$enable_fpu" = xno ] | 
|  | then | 
|  | old_multidirs=${multidirs} | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | 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 | 
|  | if [ x$enable_biendian = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *le* ) : ;; | 
|  | *be* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x"$enable_nofmult" = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *nofmult* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | ;; | 
|  | m68*-*-*) | 
|  | if [ x$enable_softfloat = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *soft-float* ) : ;; | 
|  | *) 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 | 
|  | ;; | 
|  | mips*-*-*) | 
|  | if [ x$enable_single_float = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *single* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_biendian = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *el* ) : ;; | 
|  | *eb* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_softfloat = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *soft-float* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | ;; | 
|  | msp430-*-*) | 
|  | if [ x$enable_no_exceptions = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *no-exceptions* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | ;; | 
|  | powerpc*-*-* | rs6000*-*-*) | 
|  | if [ x$enable_aix64 = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *ppc64* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_pthread = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *pthread* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_softfloat = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *soft-float* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_powercpu = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | power | */power | */power/* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_powerpccpu = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *powerpc* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_powerpcos = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *mcall-linux* | *mcall-solaris* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_biendian = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *mlittle* | *mbig* ) : ;; | 
|  | *) multidirs="${multidirs} ${x}" ;; | 
|  | esac | 
|  | done | 
|  | fi | 
|  | if [ x$enable_sysv = xno ] | 
|  | then | 
|  | old_multidirs="${multidirs}" | 
|  | multidirs="" | 
|  | for x in ${old_multidirs}; do | 
|  | case "$x" in | 
|  | *mcall-sysv* ) : ;; | 
|  | *) 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. | 
|  |  | 
|  | cat > Multi.tem <<\EOF | 
|  |  | 
|  | PWD_COMMAND=$${PWDCMD-pwd} | 
|  |  | 
|  | multi-do: | 
|  | @if [ -z "$(MULTIDIRS)" ]; then \ | 
|  | true; \ | 
|  | else \ | 
|  | rootpre=`${PWD_COMMAND}`/; export rootpre; \ | 
|  | srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ | 
|  | lib=`echo "$${rootpre}" | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \ | 
|  | compiler="$(CC)"; \ | 
|  | for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \ | 
|  | dir=`echo $$i | sed -e 's/;.*$$//'`; \ | 
|  | if [ "$${dir}" = "." ]; then \ | 
|  | true; \ | 
|  | else \ | 
|  | if [ -d ../$${dir}/$${lib} ]; then \ | 
|  | flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ | 
|  | if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \ | 
|  | CFLAGS="$(CFLAGS) $${flags}" \ | 
|  | CCASFLAGS="$(CCASFLAGS) $${flags}" \ | 
|  | FCFLAGS="$(FCFLAGS) $${flags}" \ | 
|  | FFLAGS="$(FFLAGS) $${flags}" \ | 
|  | ADAFLAGS="$(ADAFLAGS) $${flags}" \ | 
|  | prefix="$(prefix)" \ | 
|  | exec_prefix="$(exec_prefix)" \ | 
|  | GOCFLAGS="$(GOCFLAGS) $${flags}" \ | 
|  | GDCFLAGS="$(GDCFLAGS) $${flags}" \ | 
|  | CXXFLAGS="$(CXXFLAGS) $${flags}" \ | 
|  | LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ | 
|  | LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ | 
|  | LDFLAGS="$(LDFLAGS) $${flags}" \ | 
|  | MULTIFLAGS="$${flags}" \ | 
|  | DESTDIR="$(DESTDIR)" \ | 
|  | INSTALL="$(INSTALL)" \ | 
|  | INSTALL_DATA="$(INSTALL_DATA)" \ | 
|  | INSTALL_PROGRAM="$(INSTALL_PROGRAM)" \ | 
|  | INSTALL_SCRIPT="$(INSTALL_SCRIPT)" \ | 
|  | $(DO)); then \ | 
|  | true; \ | 
|  | else \ | 
|  | exit 1; \ | 
|  | fi; \ | 
|  | else true; \ | 
|  | fi; \ | 
|  | fi; \ | 
|  | done; \ | 
|  | fi | 
|  |  | 
|  | multi-clean: | 
|  | @if [ -z "$(MULTIDIRS)" ]; then \ | 
|  | true; \ | 
|  | else \ | 
|  | lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ | 
|  | for dir in : $(MULTIDIRS); do \ | 
|  | test $$dir != : || continue; \ | 
|  | EOF | 
|  | cat >>Multi.tem <<EOF | 
|  | if [ -f ../\$\${dir}/\$\${lib}/${Makefile} ]; then \\ | 
|  | EOF | 
|  | cat >>Multi.tem <<\EOF | 
|  | if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \ | 
|  | then true; \ | 
|  | else exit 1; \ | 
|  | fi; \ | 
|  | else true; \ | 
|  | fi; \ | 
|  | done; \ | 
|  | fi | 
|  | EOF | 
|  |  | 
|  | cat ${Makefile} Multi.tem > Makefile.tem | 
|  | rm -f ${Makefile} Multi.tem | 
|  | mv Makefile.tem ${Makefile} | 
|  |  | 
|  | fi # ${ml_toplevel_p} = yes | 
|  |  | 
|  | if [ "${ml_verbose}" = --verbose ]; then | 
|  | echo "Adding multilib support to ${Makefile} in ${ml_realsrcdir}" | 
|  | if [ "${ml_toplevel_p}" = yes ]; then | 
|  | echo "multidirs=${multidirs}" | 
|  | fi | 
|  | echo "with_multisubdir=${with_multisubdir}" | 
|  | fi | 
|  |  | 
|  | if [ "${srcdir}" = "." ]; then | 
|  | if [ "${with_target_subdir}" != "." ]; then | 
|  | ml_srcdotdot="../" | 
|  | else | 
|  | ml_srcdotdot="" | 
|  | fi | 
|  | else | 
|  | ml_srcdotdot="" | 
|  | fi | 
|  |  | 
|  | if [ -z "${with_multisubdir}" ]; then | 
|  | ml_subdir= | 
|  | ml_builddotdot= | 
|  | : # ml_srcdotdot= # already set | 
|  | else | 
|  | ml_subdir="/${with_multisubdir}" | 
|  | # The '[^/][^/]*' appears that way to work around a SunOS sed bug. | 
|  | ml_builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`/ | 
|  | if [ "$srcdir" = "." ]; then | 
|  | ml_srcdotdot=${ml_srcdotdot}${ml_builddotdot} | 
|  | else | 
|  | : # ml_srcdotdot= # already set | 
|  | fi | 
|  | fi | 
|  |  | 
|  | if [ "${ml_toplevel_p}" = yes ]; then | 
|  | ml_do='$(MAKE)' | 
|  | ml_clean='$(MAKE)' | 
|  | else | 
|  | ml_do=true | 
|  | ml_clean=true | 
|  | fi | 
|  |  | 
|  | # TOP is used by newlib and should not be used elsewhere for this purpose. | 
|  | # MULTI{SRC,BUILD}TOP are the proper ones to use.  MULTISRCTOP is empty | 
|  | # when srcdir != builddir.  MULTIBUILDTOP is always some number of ../'s. | 
|  | # FIXME: newlib needs to be updated to use MULTI{SRC,BUILD}TOP so we can | 
|  | # delete TOP.  Newlib may wish to continue to use TOP for its own purposes | 
|  | # of course. | 
|  | # MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile) | 
|  | # and lists the subdirectories to recurse into. | 
|  | # MULTISUBDIR is non-empty in each cpu subdirectory's Makefile | 
|  | # (eg: newlib/h8300h/Makefile) and is the installed subdirectory name with | 
|  | # a leading '/'. | 
|  | # MULTIDO is used for targets like all, install, and check where | 
|  | # $(FLAGS_TO_PASS) augmented with the subdir's compiler option is needed. | 
|  | # MULTICLEAN is used for the *clean targets. | 
|  | # | 
|  | # ??? It is possible to merge MULTIDO and MULTICLEAN into one.  They are | 
|  | # currently kept separate because we don't want the *clean targets to require | 
|  | # the existence of the compiler (which MULTIDO currently requires) and | 
|  | # therefore we'd have to record the directory options as well as names | 
|  | # (currently we just record the names and use --print-multi-lib to get the | 
|  | # options). | 
|  |  | 
|  | sed -e "s:^TOP[ 	]*=[ 	]*\([./]*\)[ 	]*$:TOP = ${ml_builddotdot}\1:" \ | 
|  | -e "s:^MULTISRCTOP[ 	]*=.*$:MULTISRCTOP = ${ml_srcdotdot}:" \ | 
|  | -e "s:^MULTIBUILDTOP[ 	]*=.*$:MULTIBUILDTOP = ${ml_builddotdot}:" \ | 
|  | -e "s:^MULTIDIRS[ 	]*=.*$:MULTIDIRS = ${multidirs}:" \ | 
|  | -e "s:^MULTISUBDIR[ 	]*=.*$:MULTISUBDIR = ${ml_subdir}:" \ | 
|  | -e "s:^MULTIDO[ 	]*=.*$:MULTIDO = $ml_do:" \ | 
|  | -e "s:^MULTICLEAN[ 	]*=.*$:MULTICLEAN = $ml_clean:" \ | 
|  | ${Makefile} > Makefile.tem | 
|  | rm -f ${Makefile} | 
|  | mv Makefile.tem ${Makefile} | 
|  |  | 
|  | # If this is the library's top level, configure each multilib subdir. | 
|  | # This is done at the end because this is the loop that runs configure | 
|  | # in each multilib subdir and it seemed reasonable to finish updating the | 
|  | # Makefile before going on to configure the subdirs. | 
|  |  | 
|  | if [ "${ml_toplevel_p}" = yes ]; then | 
|  |  | 
|  | # We must freshly configure each subdirectory.  This bit of code is | 
|  | # actually partially stolen from the main configure script.  FIXME. | 
|  |  | 
|  | if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then | 
|  |  | 
|  | if [ "${ml_verbose}" = --verbose ]; then | 
|  | echo "Running configure in multilib subdirs ${multidirs}" | 
|  | echo "pwd: `${PWDCMD-pwd}`" | 
|  | fi | 
|  |  | 
|  | ml_origdir=`${PWDCMD-pwd}` | 
|  | ml_libdir=`echo "$ml_origdir" | sed -e 's,^.*/,,'` | 
|  | # cd to top-level-build-dir/${with_target_subdir} | 
|  | cd .. | 
|  |  | 
|  | for ml_dir in ${multidirs}; do | 
|  |  | 
|  | if [ "${ml_verbose}" = --verbose ]; then | 
|  | echo "Running configure in multilib subdir ${ml_dir}" | 
|  | echo "pwd: `${PWDCMD-pwd}`" | 
|  | fi | 
|  |  | 
|  | if [ -d ${ml_dir} ]; then true; else | 
|  | # ``mkdir -p ${ml_dir}'' See also mkinstalldirs. | 
|  | pathcomp="" | 
|  | for d in `echo ":${ml_dir}" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`; do | 
|  | pathcomp="$pathcomp$d" | 
|  | case "$pathcomp" in | 
|  | -* ) pathcomp=./$pathcomp ;; | 
|  | esac | 
|  | if test ! -d "$pathcomp"; then | 
|  | echo "mkdir $pathcomp" 1>&2 | 
|  | mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? | 
|  | fi | 
|  | if test ! -d "$pathcomp"; then | 
|  | exit $lasterr | 
|  | fi | 
|  | pathcomp="$pathcomp/" | 
|  | done | 
|  | fi | 
|  | if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi | 
|  |  | 
|  | # Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../ | 
|  | dotdot=../`echo ${ml_dir} | sed -e 's|[^/]||g' -e 's|/|../|g'` | 
|  |  | 
|  | case ${srcdir} in | 
|  | ".") | 
|  | echo "Building symlink tree in `${PWDCMD-pwd}`/${ml_dir}/${ml_libdir}" | 
|  | if [ "${with_target_subdir}" != "." ]; then | 
|  | ml_unsubdir="../" | 
|  | else | 
|  | ml_unsubdir="" | 
|  | 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} | 
|  | ;; | 
|  | *) | 
|  | case "${srcdir}" in | 
|  | /* | [A-Za-z]:[\\/]* ) # absolute path | 
|  | ml_newsrcdir=${srcdir} | 
|  | ;; | 
|  | *) # otherwise relative | 
|  | ml_newsrcdir=${dotdot}${srcdir} | 
|  | ;; | 
|  | esac | 
|  | ml_srcdiroption="-srcdir=${ml_newsrcdir}" | 
|  | multisrctop= | 
|  | ;; | 
|  | esac | 
|  |  | 
|  | case "${progname}" in | 
|  | /* | [A-Za-z]:[\\/]* )     ml_recprog=${progname} ;; | 
|  | *)      ml_recprog=${dotdot}${progname} ;; | 
|  | esac | 
|  |  | 
|  | # FIXME: POPDIR=${PWD=`pwd`} doesn't work here. | 
|  | ML_POPDIR=`${PWDCMD-pwd}` | 
|  | cd ${ml_dir}/${ml_libdir} | 
|  |  | 
|  | if [ -f ${ml_newsrcdir}/configure ]; then | 
|  | ml_recprog="${ml_newsrcdir}/configure" | 
|  | fi | 
|  |  | 
|  | # find compiler flag corresponding to ${ml_dir} | 
|  | for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do | 
|  | dir=`echo $i | sed -e 's/;.*$//'` | 
|  | if [ "${dir}" = "${ml_dir}" ]; then | 
|  | flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'` | 
|  | break | 
|  | fi | 
|  | done | 
|  | ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags" GDC="${GDC_}$flags"' | 
|  |  | 
|  | if [ "${with_target_subdir}" = "." ]; then | 
|  | CC_=$CC' ' | 
|  | CXX_=$CXX' ' | 
|  | F77_=$F77' ' | 
|  | GFORTRAN_=$GFORTRAN' ' | 
|  | GOC_=$GOC' ' | 
|  | GDC_=$GDC' ' | 
|  | else | 
|  | # Create a regular expression that matches any string as long | 
|  | # as ML_POPDIR. | 
|  | popdir_rx=`echo "${ML_POPDIR}" | sed 's,.,.,g'` | 
|  | CC_= | 
|  | for arg in ${CC}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | CC_="${CC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | CC_="${CC_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | CXX_= | 
|  | for arg in ${CXX}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | CXX_="${CXX_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | CXX_="${CXX_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | F77_= | 
|  | for arg in ${F77}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | F77_="${F77_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | F77_="${F77_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | GFORTRAN_= | 
|  | for arg in ${GFORTRAN}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | GFORTRAN_="${GFORTRAN_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | GFORTRAN_="${GFORTRAN_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | GOC_= | 
|  | for arg in ${GOC}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | GOC_="${GOC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | GOC_="${GOC_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | GDC_= | 
|  | for arg in ${GDC}; do | 
|  | case $arg in | 
|  | -[BIL]"${ML_POPDIR}"/*) | 
|  | GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(-[BIL]${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X-[BIL]${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | "${ML_POPDIR}"/*) | 
|  | GDC_="${GDC_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | 
|  | *) | 
|  | GDC_="${GDC_}${arg} " ;; | 
|  | esac | 
|  | done | 
|  |  | 
|  | if test "x${LD_LIBRARY_PATH+set}" = xset; then | 
|  | LD_LIBRARY_PATH_= | 
|  | for arg in `echo "$LD_LIBRARY_PATH" | tr ':' ' '`; do | 
|  | case "$arg" in | 
|  | "${ML_POPDIR}"/*) | 
|  | arg=`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"` | 
|  | ;; | 
|  | esac | 
|  | if test "x$LD_LIBRARY_PATH_" != x; then | 
|  | LD_LIBRARY_PATH_=$LD_LIBRARY_PATH_:$arg | 
|  | else | 
|  | LD_LIBRARY_PATH_=$arg | 
|  | fi | 
|  | done | 
|  | ml_config_env="$ml_config_env LD_LIBRARY_PATH=$LD_LIBRARY_PATH_" | 
|  | fi | 
|  |  | 
|  | if test "x${SHLIB_PATH+set}" = xset; then | 
|  | SHLIB_PATH_= | 
|  | for arg in `echo "$SHLIB_PATH" | tr ':' ' '`; do | 
|  | case "$arg" in | 
|  | "${ML_POPDIR}"/*) | 
|  | arg=`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"` | 
|  | ;; | 
|  | esac | 
|  | if test "x$SHLIB_PATH_" != x; then | 
|  | SHLIB_PATH_=$SHLIB_PATH_:$arg | 
|  | else | 
|  | SHLIB_PATH_=$arg | 
|  | fi | 
|  | done | 
|  | ml_config_env="$ml_config_env SHLIB_PATH=$SHLIB_PATH_" | 
|  | fi | 
|  | fi | 
|  |  | 
|  | if eval ${ml_config_env} ${ml_config_shell} ${ml_recprog} \ | 
|  | --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \ | 
|  | "${ac_configure_args}" ${ml_config_env} ${ml_srcdiroption} ; then | 
|  | true | 
|  | else | 
|  | exit 1 | 
|  | fi | 
|  |  | 
|  | cd "${ML_POPDIR}" | 
|  |  | 
|  | done | 
|  |  | 
|  | cd "${ml_origdir}" | 
|  | fi | 
|  |  | 
|  | fi # ${ml_toplevel_p} = yes | 
|  | fi # ${enable_multilib} = yes |