2003-05-05 H.J. Lu <hjl@gnu.org>
* config-ml.in: Restored from gcc repository.
This commit is contained in:
		| @@ -1,3 +1,7 @@ | ||||
| 2003-05-05  H.J. Lu <hjl@gnu.org> | ||||
|  | ||||
| 	* config-ml.in: Restored from gcc repository. | ||||
|  | ||||
| 2003-05-02  Chris Demetriou  <cgd@broadcom.com> | ||||
|  | ||||
|         * Makefile.tpl: Require "makeinfo" from texinfo 4.2 or later. | ||||
|   | ||||
							
								
								
									
										847
									
								
								config-ml.in
									
									
									
									
									
								
							
							
						
						
									
										847
									
								
								config-ml.in
									
									
									
									
									
								
							| @@ -0,0 +1,847 @@ | ||||
| # Configure fragment invoked in the post-target section for subdirs | ||||
| # wanting multilib support. | ||||
| # | ||||
| # 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.in. | ||||
| # | ||||
| # 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_arguments="${ac_configure_args}" | ||||
| ml_realsrcdir=${srcdir} | ||||
|  | ||||
| # Scan all the arguments and set all the ones we need. | ||||
|  | ||||
| ml_verbose=--verbose | ||||
| for option in ${ml_arguments} | ||||
| do | ||||
|   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'` | ||||
| 	eval $enableopt="$optarg" | ||||
| 	;; | ||||
|   --norecursion | --no*) | ||||
| 	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 | ||||
|  | ||||
| # 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.in ran (to | ||||
| # configure the multilib subdirs), and another that all configure.in'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 | ||||
| arc-*-elf*) | ||||
| 	if [ x$enable_biendian != xyes ] | ||||
| 	then | ||||
| 	  old_multidirs=${multidirs} | ||||
| 	  multidirs="" | ||||
| 	  for x in ${old_multidirs}; do | ||||
| 	    case "${x}" in | ||||
| 	      *be*) : ;; | ||||
| 	      *) multidirs="${multidirs} ${x}" ;; | ||||
| 	    esac | ||||
| 	  done | ||||
| 	fi | ||||
| 	;; | ||||
| 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 | ||||
| 	case " $multidirs " in | ||||
| 	*" mabi=64 "*) | ||||
| 	  # We will not be able to create libraries with -mabi=64 if | ||||
| 	  # we cannot even link a trivial program.  It usually | ||||
| 	  # indicates the 64bit libraries are missing. | ||||
| 	  if echo 'main() {}' > conftest.c && | ||||
| 	     ${CC-gcc} -mabi=64 conftest.c -o conftest; then | ||||
| 	    : | ||||
| 	  else | ||||
| 	    echo Could not link program with -mabi=64, disabling it. | ||||
| 	    old_multidirs="${multidirs}" | ||||
| 	    multidirs="" | ||||
| 	    for x in ${old_multidirs}; do | ||||
| 	      case "$x" in | ||||
| 	      *mabi=64* ) : ;; | ||||
| 	      *) multidirs="${multidirs} ${x}" ;; | ||||
| 	      esac | ||||
| 	    done | ||||
| 	  fi | ||||
| 	  rm -f conftest.c conftest | ||||
| 	  ;; | ||||
| 	esac | ||||
| 	;; | ||||
| 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 | ||||
| 	;; | ||||
| sparc*-*-*) | ||||
| 	case " $multidirs " in | ||||
| 	*" m64 "*) | ||||
| 	  # We will not be able to create libraries with -m64 if | ||||
| 	  # we cannot even link a trivial program.  It usually | ||||
| 	  # indicates the 64bit libraries are missing. | ||||
| 	  if echo 'main() {}' > conftest.c && | ||||
| 	     ${CC-gcc} -m64 conftest.c -o conftest; then | ||||
| 	    : | ||||
| 	  else | ||||
| 	    echo Could not link program with -m64, disabling it. | ||||
| 	    old_multidirs="${multidirs}" | ||||
| 	    multidirs="" | ||||
| 	    for x in ${old_multidirs}; do | ||||
| 	      case "$x" in | ||||
| 	      *m64* ) : ;; | ||||
| 	      *) multidirs="${multidirs} ${x}" ;; | ||||
| 	      esac | ||||
| 	    done | ||||
| 	  fi | ||||
| 	  rm -f conftest.c conftest | ||||
| 	  ;; | ||||
| 	esac | ||||
| 	;; | ||||
| 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=$${PWDCMD-pwd} | ||||
|  | ||||
| # FIXME: There should be an @-sign in front of the `if'. | ||||
| # Leave out until this is tested a bit more. | ||||
| multi-do: | ||||
| 	if [ -z "$(MULTIDIRS)" ]; then \ | ||||
| 	  true; \ | ||||
| 	else \ | ||||
| 	  rootpre=`${PWD}`/; export rootpre; \ | ||||
| 	  srcrootpre=`cd $(srcdir); ${PWD}`/; 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}" \ | ||||
| 				prefix="$(prefix)" \ | ||||
| 				exec_prefix="$(exec_prefix)" \ | ||||
| 				GCJFLAGS="$(GCJFLAGS) $${flags}" \ | ||||
| 				CXXFLAGS="$(CXXFLAGS) $${flags}" \ | ||||
| 				LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ | ||||
| 				LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ | ||||
| 				LDFLAGS="$(LDFLAGS) $${flags}" \ | ||||
| 				DESTDIR="$(DESTDIR)" \ | ||||
| 				$(DO)); then \ | ||||
| 		  true; \ | ||||
| 		else \ | ||||
| 		  exit 1; \ | ||||
| 		fi; \ | ||||
| 	      else true; \ | ||||
| 	      fi; \ | ||||
| 	    fi; \ | ||||
| 	  done; \ | ||||
| 	fi | ||||
|  | ||||
| # FIXME: There should be an @-sign in front of the `if'. | ||||
| # Leave out until this is tested a bit more. | ||||
| multi-clean: | ||||
| 	if [ -z "$(MULTIDIRS)" ]; then \ | ||||
| 	  true; \ | ||||
| 	else \ | ||||
| 	  lib=`${PWD} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ | ||||
| 	  for dir in Makefile $(MULTIDIRS); do \ | ||||
| 	    if [ -f ../$${dir}/$${lib}/Makefile ]; then \ | ||||
| 	      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 --cache-file=../config.cache" | ||||
|     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" GCJ="${GCJ_}$flags"' | ||||
|  | ||||
|     if [ "${with_target_subdir}" = "." ]; then | ||||
| 	CC_=$CC' ' | ||||
| 	CXX_=$CXX' ' | ||||
| 	GCJ_=$GCJ' ' | ||||
|     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 | ||||
|  | ||||
| 	GCJ_= | ||||
| 	for arg in ${GCJ}; do | ||||
| 	  case $arg in | ||||
| 	  -[BIL]"${ML_POPDIR}"/*) | ||||
| 	    GCJ_="${GCJ_}"`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}"/*) | ||||
| 	    GCJ_="${GCJ_}"`echo "X${arg}" | sed -n "s/X\\(${popdir_rx}\\).*/\\1/p"`/${ml_dir}`echo "X${arg}" | sed -n "s/X${popdir_rx}\\(.*\\)/\\1/p"`' ' ;; | ||||
| 	  *) | ||||
| 	    GCJ_="${GCJ_}${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} \ | ||||
| 	${ml_arguments} ${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 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user