Diff of /config-ml.in [6bab77] .. [2deb53]  Maximize  Restore

Switch to side-by-side view

--- a/config-ml.in
+++ b/config-ml.in
@@ -1,32 +1,6 @@
 # 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  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.
 #
@@ -43,6 +17,8 @@
 #   . ${srcdir}/../config-ml.in
 # fi
 #
+# See librx/configure.in in the libg++ distribution for an example of how
+# to handle autoconf'd libraries.
 #
 # Things are complicated because 6 separate cases must be handled:
 # 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6.
@@ -54,10 +30,13 @@
 # The build tree is layed out as
 #
 # ./
+#   libg++
 #   newlib
 #   m68020/
+#          libg++
 #          newlib
 #          m68881/
+#                 libg++
 #                 newlib
 #
 # The nice feature about this arrangement is that inter-library references
@@ -90,6 +69,11 @@
 # newlib.  It is up to each target to turn on multilib support for the other
 # libraries as desired.
 
+# We have to handle being invoked by both Cygnus configure and Autoconf.
+#
+# Cygnus configure incoming variables:
+# srcdir, subdir, host, arguments
+#
 # Autoconf incoming variables:
 # srcdir, host, ac_configure_args
 #
@@ -99,20 +83,27 @@
 # 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}
+if [ -n "${ac_configure_args}" ]; then
+  Makefile=${ac_file-Makefile}
+  ml_config_shell=${CONFIG_SHELL-/bin/sh}
+  ml_arguments="${ac_configure_args}"
+  ml_realsrcdir=${srcdir}
+else
+  Makefile=${Makefile-Makefile}
+  ml_config_shell=${config_shell-/bin/sh}
+  ml_arguments="${arguments}"
+  if [ -n "${subdir}" -a "${subdir}" != "." ] ; then
+    ml_realsrcdir=${srcdir}/${subdir}
+  else
+    ml_realsrcdir=${srcdir}
+  fi
+fi
 
 # Scan all the arguments and set all the ones we need.
 
 ml_verbose=--verbose
-for option in ${ac_configure_args}
+for option in ${ml_arguments}
 do
-  # strip single quotes surrounding individual options
-  case $option in
-  \'*\') eval option=$option ;;
-  esac
-
   case $option in
   --*) ;;
   -*) option=-$option ;;
@@ -135,14 +126,9 @@
 	*)	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)
+	eval $enableopt="$optarg"
+	;;
+  --norecursion | --no*)
 	ml_norecursion=yes
 	;;
   --silent | --sil* | --quiet | --q*)
@@ -170,7 +156,7 @@
 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).
+# (ie: not a multilib subdirectory, and not a subdirectory like libg++/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
@@ -224,6 +210,19 @@
 # $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
@@ -281,17 +280,6 @@
 	    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 ]
@@ -376,28 +364,6 @@
 	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}"
@@ -460,6 +426,17 @@
 	  for x in ${old_multidirs}; do
 	    case "$x" in
 	      *mcall-sysv* ) : ;;
+	      *) multidirs="${multidirs} ${x}" ;;
+	    esac
+	  done
+	fi
+	if [ x$enable_aix = xno ]
+	then
+	  old_multidirs="${multidirs}"
+	  multidirs=""
+	  for x in ${old_multidirs}; do
+	    case "$x" in
+	      *mcall-aix* ) : ;;
 	      *) multidirs="${multidirs} ${x}" ;;
 	    esac
 	  done
@@ -475,8 +452,6 @@
 # subdirs.
 
 cat > Multi.tem <<\EOF
-
-PWD_COMMAND=$${PWDCMD-pwd}
 
 # FIXME: There should be an @-sign in front of the `if'.
 # Leave out until this is tested a bit more.
@@ -484,9 +459,9 @@
 	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,'`; \
+	  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/;.*$$//'`; \
@@ -497,24 +472,10 @@
 		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)" \
-				GCJFLAGS="$(GCJFLAGS) $${flags}" \
-				GOCFLAGS="$(GOCFLAGS) $${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 \
@@ -532,14 +493,9 @@
 	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
+	  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; \
@@ -557,7 +513,7 @@
 fi # ${ml_toplevel_p} = yes
 
 if [ "${ml_verbose}" = --verbose ]; then
-  echo "Adding multilib support to ${Makefile} in ${ml_realsrcdir}"
+  echo "Adding multilib support to Makefile in ${ml_realsrcdir}"
   if [ "${ml_toplevel_p}" = yes ]; then
     echo "multidirs=${multidirs}"
   fi
@@ -644,11 +600,11 @@
 
   if [ "${ml_verbose}" = --verbose ]; then
     echo "Running configure in multilib subdirs ${multidirs}"
-    echo "pwd: `${PWDCMD-pwd}`"
+    echo "pwd: `pwd`"
   fi
 
-  ml_origdir=`${PWDCMD-pwd}`
-  ml_libdir=`echo "$ml_origdir" | sed -e 's,^.*/,,'`
+  ml_origdir=`pwd`
+  ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'`
   # cd to top-level-build-dir/${with_target_subdir}
   cd ..
 
@@ -656,27 +612,10 @@
 
     if [ "${ml_verbose}" = --verbose ]; then
       echo "Running configure in multilib subdir ${ml_dir}"
-      echo "pwd: `${PWDCMD-pwd}`"
+      echo "pwd: `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} ]; then true; else mkdir ${ml_dir}; fi
     if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi
 
     # Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../
@@ -684,7 +623,7 @@
 
     case ${srcdir} in
     ".")
-      echo "Building symlink tree in `${PWDCMD-pwd}`/${ml_dir}/${ml_libdir}"
+      echo Building symlink tree in `pwd`/${ml_dir}/${ml_libdir}
       if [ "${with_target_subdir}" != "." ]; then
 	ml_unsubdir="../"
       else
@@ -692,7 +631,7 @@
       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 [ -f ${ml_dir}/${ml_libdir}/Makefile ]; then
 	if [ x"${MAKE}" = x ]; then
 	  (cd ${ml_dir}/${ml_libdir}; make distclean)
 	else
@@ -705,7 +644,7 @@
       ;;
     *)
       case "${srcdir}" in
-      /* | [A-Za-z]:[\\/]* ) # absolute path
+      /*) # absolute path
         ml_newsrcdir=${srcdir}
         ;;
       *) # otherwise relative
@@ -718,159 +657,30 @@
     esac
 
     case "${progname}" in
-    /* | [A-Za-z]:[\\/]* )     ml_recprog=${progname} ;;
+    /*)     ml_recprog=${progname} ;;
     *)      ml_recprog=${dotdot}${progname} ;;
     esac
 
     # FIXME: POPDIR=${PWD=`pwd`} doesn't work here.
-    ML_POPDIR=`${PWDCMD-pwd}`
+    ML_POPDIR=`pwd`
     cd ${ml_dir}/${ml_libdir}
 
     if [ -f ${ml_newsrcdir}/configure ]; then
-      ml_recprog="${ml_newsrcdir}/configure"
+      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" GCJ="${GCJ_}$flags" GFORTRAN="${GFORTRAN_}$flags" GOC="${GOC_}$flags"'
-
-    if [ "${with_target_subdir}" = "." ]; then
-	CC_=$CC' '
-	CXX_=$CXX' '
-	F77_=$F77' '
-	GCJ_=$GCJ' '
-	GFORTRAN_=$GFORTRAN' '
-	GOC_=$GOC' '
-    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
-
-	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
-
-	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
-
-	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} \
+    if eval ${ml_config_shell} ${ml_recprog} \
 	--with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
-	${ac_configure_args} ${ml_config_env} ${ml_srcdiroption} ; then
+	${ml_arguments} ${ml_srcdiroption} ; then
       true
     else
       exit 1
     fi
 
-    cd "${ML_POPDIR}"
+    cd ${ML_POPDIR}
 
   done
 
-  cd "${ml_origdir}"
+  cd ${ml_origdir}
 fi
 
 fi # ${ml_toplevel_p} = yes

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks