* Makefile.tpl: Introduce rules to serialize subconfigure runs.
[deliverable/binutils-gdb.git] / config-ml.in
index d4e7fe63bae8e3f214b217c88a09aed017fa8ada..aae3f87fe74e5d9538e68ccde051aba58a83c1b1 100644 (file)
@@ -510,14 +510,16 @@ multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ]
 
 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; \
+         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 \
@@ -535,6 +537,7 @@ multi-do:
                                LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
                                LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
                                LDFLAGS="$(LDFLAGS) $${flags}" \
+                               DESTDIR="$(DESTDIR)" \
                                $(DO)); then \
                  true; \
                else \
@@ -552,7 +555,7 @@ multi-clean:
        if [ -z "$(MULTIDIRS)" ]; then \
          true; \
        else \
-         lib=`pwd | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
+         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)); \
@@ -659,10 +662,10 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
 
   if [ "${ml_verbose}" = --verbose ]; then
     echo "Running configure in multilib subdirs ${multidirs}"
-    echo "pwd: `pwd`"
+    echo "pwd: `${PWDCMD-pwd}`"
   fi
 
-  ml_origdir=`pwd`
+  ml_origdir=`${PWDCMD-pwd}`
   ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'`
   # cd to top-level-build-dir/${with_target_subdir}
   cd ..
@@ -671,7 +674,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
 
     if [ "${ml_verbose}" = --verbose ]; then
       echo "Running configure in multilib subdir ${ml_dir}"
-      echo "pwd: `pwd`"
+      echo "pwd: `${PWDCMD-pwd}`"
     fi
 
     if [ -d ${ml_dir} ]; then true; else
@@ -699,7 +702,7 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
 
     case ${srcdir} in
     ".")
-      echo Building symlink tree in `pwd`/${ml_dir}/${ml_libdir}
+      echo Building symlink tree in `${PWDCMD-pwd}`/${ml_dir}/${ml_libdir}
       if [ "${with_target_subdir}" != "." ]; then
        ml_unsubdir="../"
       else
@@ -753,11 +756,11 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
         break
       fi
     done
-    ml_config_env='CC="${CC_} $flags" CXX="${CXX_} $flags"'
+    ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags"'
 
     if [ "${with_target_subdir}" = "." ]; then
-       CC_=$CC
-       CXX_=$CXX
+       CC_=$CC' '
+       CXX_=$CXX' '
     else
        # Create a regular expression that matches any string as long
        # as ML_POPDIR.
@@ -786,6 +789,39 @@ if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
          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} \
This page took 0.033572 seconds and 4 git commands to generate.