home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / gdb-4.16-base.tgz / gdb-4.16-base.tar / fsf / gdb / config-ml.in next >
Text File  |  1996-04-23  |  17KB  |  633 lines

  1. # Configure fragment invoked in the post-target section for subdirs
  2. # wanting multilib support.
  3. #
  4. # It is advisable to support a few --enable/--disable options to let the
  5. # user select which libraries s/he really wants.
  6. #
  7. # Subdirectories wishing to use multilib should put the following lines
  8. # in the "post-target" section of configure.in.
  9. #
  10. # if [ "${srcdir}" = "." ] ; then
  11. #   if [ "${with_target_subdir}" != "." ] ; then
  12. #     . ${with_multisrctop}../../config-ml.in
  13. #   else
  14. #     . ${with_multisrctop}../config-ml.in
  15. #   fi
  16. # else
  17. #   . ${srcdir}/../config-ml.in
  18. # fi
  19. #
  20. # See librx/configure.in in the libg++ distribution for an example of how
  21. # to handle autoconf'd libraries.
  22. #
  23. # Things are complicated because 6 separate cases must be handled:
  24. # 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6.
  25. #
  26. # srcdir=. is special.  It must handle make programs that don't handle VPATH.
  27. # To implement this, a symlink tree is built for each library and for each
  28. # multilib subdir.
  29. #
  30. # The build tree is layed out as
  31. #
  32. # ./
  33. #   libg++
  34. #   newlib
  35. #   m68020/
  36. #          libg++
  37. #          newlib
  38. #          m68881/
  39. #                 libg++
  40. #                 newlib
  41. #
  42. # The nice feature about this arrangement is that inter-library references
  43. # in the build tree work without having to care where you are.  Note that
  44. # inter-library references also work in the source tree because symlink trees
  45. # are built when srcdir=.
  46. #
  47. # Unfortunately, trying to access the libraries in the build tree requires
  48. # the user to manually choose which library to use as GCC won't be able to
  49. # find the right one.  This is viewed as the lesser of two evils.
  50. #
  51. # Configure variables:
  52. # ${with_target_subdir} = "." for native, or ${target_alias} for cross.
  53. # Set by top level Makefile.
  54. # ${with_multisrctop} = how many levels of multilibs there are in the source
  55. # tree.  It exists to handle the case of configuring in the source tree:
  56. # ${srcdir} is not constant.
  57. # ${with_multisubdir} = name of multilib subdirectory (eg: m68020/m68881).
  58. #
  59. # Makefile variables:
  60. # MULTISRCTOP = number of multilib levels in source tree (+1 if cross)
  61. # (FIXME: note that this is different than ${with_multisrctop}.  Check out.).
  62. # MULTIBUILDTOP = number of multilib levels in build tree
  63. # MULTIDIRS = list of multilib subdirs (eg: m68000 m68020 ...)
  64. # (only defined in each library's main Makefile).
  65. # MULTISUBDIR = installed subdirectory name with leading '/' (eg: /m68000)
  66. # (only defined in each multilib subdir).
  67.  
  68. # FIXME: Multilib is currently disabled by default for everything other than
  69. # newlib.  It is up to each target to turn on multilib support for the other
  70. # libraries as desired.
  71.  
  72. # We have to handle being invoked by both Cygnus configure and Autoconf.
  73. #
  74. # Cygnus configure incoming variables:
  75. # srcdir, subdir, target, arguments
  76. #
  77. # Autoconf incoming variables:
  78. # srcdir, target, ac_configure_args
  79. #
  80. # We *could* figure srcdir and target out, but we'd have to do work that
  81. # our caller has already done to figure them out and requiring these two
  82. # seems reasonable.
  83.  
  84. if [ -n "${ac_configure_args}" ]; then
  85.   Makefile=${ac_file-Makefile}
  86.   ml_config_shell=${CONFIG_SHELL-/bin/sh}
  87.   ml_arguments="${ac_configure_args}"
  88.   ml_realsrcdir=${srcdir}
  89. else
  90.   Makefile=${Makefile-Makefile}
  91.   ml_config_shell=${config_shell-/bin/sh}
  92.   ml_arguments="${arguments}"
  93.   if [ -n "${subdir}" -a "${subdir}" != "." ] ; then
  94.     ml_realsrcdir=${srcdir}/${subdir}
  95.   else
  96.     ml_realsrcdir=${srcdir}
  97.   fi
  98. fi
  99.  
  100. # Scan all the arguments and set all the ones we need.
  101.  
  102. for option in ${ml_arguments}
  103. do
  104.   case $option in
  105.   --*) ;;
  106.   -*) option=-$option ;;
  107.   esac
  108.  
  109.   case $option in
  110.   --*=*)
  111.     optarg=`echo $option | sed -e 's/^[^=]*=//'`
  112.     ;;
  113.   esac
  114.  
  115.   case $option in
  116.   --disable-*)
  117.     enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'`
  118.     eval $enableopt=no
  119.     ;;
  120.   --enable-*)
  121.     case "$option" in
  122.     *=*)    ;;
  123.     *)    optarg=yes ;;
  124.     esac
  125.     enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
  126.     eval $enableopt="$optarg"
  127.     ;;
  128.   --norecursion | --no*)
  129.     ml_norecursion=yes
  130.     ;;
  131.   --verbose | --v | --verb*)
  132.     ml_verbose=--verbose
  133.     ;;
  134.   --with-*)
  135.     case "$option" in
  136.     *=*)    ;;
  137.     *)    optarg=yes ;;
  138.     esac
  139.     withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'`
  140.     eval $withopt="$optarg"
  141.     ;;
  142.   --without-*)
  143.     withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'`
  144.     eval $withopt=no
  145.     ;;
  146.   esac
  147. done
  148.  
  149. # Only do this if --enable-multilib.
  150. if [ "${enable_multilib}" = yes ]; then
  151.  
  152. # Compute whether this is the library's top level directory
  153. # (ie: not a multilib subdirectory, and not a subdirectory like libg++/src).
  154. # ${with_multisubdir} tells us we're in the right branch, but we could be
  155. # in a subdir of that.
  156. # ??? The previous version could void this test by separating the process into
  157. # two files: one that only the library's toplevel configure.in ran (to
  158. # configure the multilib subdirs), and another that all configure.in's ran to
  159. # update the Makefile.  It seemed reasonable to collapse all multilib support
  160. # into one file, but it does leave us with having to perform this test.
  161. ml_toplevel_p=no
  162. if [ -z "${with_multisubdir}" ]; then
  163.   if [ "${srcdir}" = "." ]; then
  164.     # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
  165.     # ${with_target_subdir} = "." for native, otherwise target alias.
  166.     if [ "${with_target_subdir}" = "." ]; then
  167.       if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
  168.     ml_toplevel_p=yes
  169.       fi
  170.     else
  171.       if [ -f ${ml_realsrcdir}/../../config-ml.in ]; then
  172.     ml_toplevel_p=yes
  173.       fi
  174.     fi
  175.   else
  176.     # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}.
  177.     if [ -f ${ml_realsrcdir}/../config-ml.in ]; then
  178.       ml_toplevel_p=yes
  179.     fi
  180.   fi
  181. fi
  182.  
  183. # If this is the library's top level directory, set multidirs to the
  184. # multilib subdirs to support.  This lives at the top because we need
  185. # `multidirs' set right away.
  186.  
  187. if [ "${ml_toplevel_p}" = yes ]; then
  188.  
  189. multidirs=
  190. for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do
  191.   dir=`echo $i | sed -e 's/;.*$//'`
  192.   if [ "${dir}" = "." ]; then
  193.     true
  194.   else
  195.     if [ -z "${multidirs}" ]; then
  196.       multidirs="${dir}"
  197.     else
  198.       multidirs="${multidirs} ${dir}"
  199.     fi
  200.   fi
  201. done
  202.  
  203. case "${target}" in
  204. m68*-*-*)
  205.     if [ x$enable_softfloat = xno ]
  206.     then
  207.       old_multidirs="${multidirs}"
  208.       multidirs=""
  209.       for x in ${old_multidirs}; do
  210.         case "$x" in
  211.           *soft-float* ) : ;;
  212.           *) multidirs="${multidirs} ${x}" ;;
  213.         esac
  214.       done
  215.     fi
  216.     if [ x$enable_m68881 = xno ]
  217.     then
  218.       old_multidirs="${multidirs}"
  219.       multidirs=""
  220.       for x in ${old_multidirs}; do
  221.         case "$x" in
  222.           *m68881* ) : ;;
  223.           *) multidirs="${multidirs} ${x}" ;;
  224.         esac
  225.       done
  226.     fi
  227.     if [ x$enable_m68000 = xno ]
  228.     then
  229.       old_multidirs="${multidirs}"
  230.       multidirs=""
  231.       for x in ${old_multidirs}; do
  232.         case "$x" in
  233.           *m68000* ) : ;;
  234.           *) multidirs="${multidirs} ${x}" ;;
  235.         esac
  236.       done
  237.     fi
  238.     if [ x$enable_m68020 = xno ]
  239.     then
  240.       old_multidirs="${multidirs}"
  241.       multidirs=""
  242.       for x in ${old_multidirs}; do
  243.         case "$x" in
  244.           *m68020* ) : ;;
  245.           *) multidirs="${multidirs} ${x}" ;;
  246.         esac
  247.       done
  248.     fi
  249.     ;;
  250. mips*-*-*)
  251.     if [ x$enable_single_float = xno ]
  252.     then
  253.       old_multidirs="${multidirs}"
  254.       multidirs=""
  255.       for x in ${old_multidirs}; do
  256.         case "$x" in
  257.           *single* ) : ;;
  258.           *) multidirs="${multidirs} ${x}" ;;
  259.         esac
  260.       done
  261.     fi
  262.     if [ x$enable_biendian = xno ]
  263.     then
  264.       old_multidirs="${multidirs}"
  265.       multidirs=""
  266.       for x in ${old_multidirs}; do
  267.         case "$x" in
  268.           *el* ) : ;;
  269.           *eb* ) : ;;
  270.           *) multidirs="${multidirs} ${x}" ;;
  271.         esac
  272.       done
  273.     fi
  274.     if [ x$enable_softfloat = xno ]
  275.     then
  276.       old_multidirs="${multidirs}"
  277.       multidirs=""
  278.       for x in ${old_multidirs}; do
  279.         case "$x" in
  280.           *soft-float* ) : ;;
  281.           *) multidirs="${multidirs} ${x}" ;;
  282.         esac
  283.       done
  284.     fi
  285.     ;;
  286. powerpc*-*-* | rs6000*-*-*)
  287.     if [ x$enable_softfloat = xno ]
  288.     then
  289.       old_multidirs="${multidirs}"
  290.       multidirs=""
  291.       for x in ${old_multidirs}; do
  292.         case "$x" in
  293.           *soft-float* ) : ;;
  294.           *) multidirs="${multidirs} ${x}" ;;
  295.         esac
  296.       done
  297.     fi
  298.     if [ x$enable_commoncpu = xno ]
  299.     then
  300.       old_multidirs="${multidirs}"
  301.       multidirs=""
  302.       for x in ${old_multidirs}; do
  303.         case "$x" in
  304.           *common* ) : ;;
  305.           *) multidirs="${multidirs} ${x}" ;;
  306.         esac
  307.       done
  308.     fi
  309.     if [ x$enable_powercpu = xno ]
  310.     then
  311.       old_multidirs="${multidirs}"
  312.       multidirs=""
  313.       for x in ${old_multidirs}; do
  314.         case "$x" in
  315.           power | */power | */power/* ) : ;;
  316.           *) multidirs="${multidirs} ${x}" ;;
  317.         esac
  318.       done
  319.     fi
  320.     if [ x$enable_power2cpu = xno ]
  321.     then
  322.       old_multidirs="${multidirs}"
  323.       multidirs=""
  324.       for x in ${old_multidirs}; do
  325.         case "$x" in
  326.           *power2* ) : ;;
  327.           *) multidirs="${multidirs} ${x}" ;;
  328.         esac
  329.       done
  330.     fi
  331.     if [ x$enable_powerpccpu = xno ]
  332.     then
  333.       old_multidirs="${multidirs}"
  334.       multidirs=""
  335.       for x in ${old_multidirs}; do
  336.         case "$x" in
  337.           *powerpc* ) : ;;
  338.           *) multidirs="${multidirs} ${x}" ;;
  339.         esac
  340.       done
  341.     fi
  342.     if [ x$enable_601cpu = xno ]
  343.     then
  344.       old_multidirs="${multidirs}"
  345.       multidirs=""
  346.       for x in ${old_multidirs}; do
  347.         case "$x" in
  348.           *601* ) : ;;
  349.           *) multidirs="${multidirs} ${x}" ;;
  350.         esac
  351.       done
  352.     fi
  353.     if [ x$enable_biendian = xno ]
  354.     then
  355.       old_multidirs="${multidirs}"
  356.       multidirs=""
  357.       for x in ${old_multidirs}; do
  358.         case "$x" in
  359.           *endian* ) : ;;
  360.           *) multidirs="${multidirs} ${x}" ;;
  361.         esac
  362.       done
  363.     fi
  364.     if [ x$enable_relocatable = xno ]
  365.     then
  366.       old_multidirs="${multidirs}"
  367.       multidirs=""
  368.       for x in ${old_multidirs}; do
  369.         case "$x" in
  370.           *relocatable* ) : ;;
  371.           *) multidirs="${multidirs} ${x}" ;;
  372.         esac
  373.       done
  374.     fi
  375.     if [ x$enable_sysv = xno ]
  376.     then
  377.       old_multidirs="${multidirs}"
  378.       multidirs=""
  379.       for x in ${old_multidirs}; do
  380.         case "$x" in
  381.           *sysv* ) : ;;
  382.           *) multidirs="${multidirs} ${x}" ;;
  383.         esac
  384.       done
  385.     fi
  386.     if [ x$enable_aix = xno ]
  387.     then
  388.       old_multidirs="${multidirs}"
  389.       multidirs=""
  390.       for x in ${old_multidirs}; do
  391.         case "$x" in
  392.           *aix* ) : ;;
  393.           *) multidirs="${multidirs} ${x}" ;;
  394.         esac
  395.       done
  396.     fi
  397.     ;;
  398. esac
  399.  
  400. # Remove extraneous blanks from multidirs.
  401. # Tests like `if [ -n "$multidirs" ]' require it.
  402. multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'`
  403.  
  404. # Add code to library's top level makefile to handle building the multilib
  405. # subdirs.
  406.  
  407. cat > Multi.tem <<\EOF
  408.  
  409. # FIXME: There should be an @-sign in front of the `if'.
  410. # Leave out until this is tested a bit more.
  411. multi-do:
  412.     if [ -z "$(MULTIDIRS)" ]; then \
  413.       true; \
  414.     else \
  415.       rootpre=`pwd`/; export rootpre; \
  416.       srcrootpre=`cd $(srcdir); pwd`/; export srcrootpre; \
  417.       lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \
  418.       compiler="$(CC)"; \
  419.       for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \
  420.         dir=`echo $$i | sed -e 's/;.*$$//'`; \
  421.         if [ "$${dir}" = "." ]; then \
  422.           true; \
  423.         else \
  424.           if [ -d ../$${dir}/$${lib} ]; then \
  425.         flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \
  426.         if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \
  427.                 CFLAGS="$(CFLAGS) $${flags}" \
  428.                 CXXFLAGS="$(CXXFLAGS) $${flags}" \
  429.                 LIBCFLAGS="$(LIBCFLAGS) $${flags}" \
  430.                 LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \
  431.                 $(DO)); then \
  432.           true; \
  433.         else \
  434.           exit 1; \
  435.         fi; \
  436.           else true; \
  437.           fi; \
  438.         fi; \
  439.       done; \
  440.     fi
  441.  
  442. # FIXME: There should be an @-sign in front of the `if'.
  443. # Leave out until this is tested a bit more.
  444. multi-clean:
  445.     if [ -z "$(MULTIDIRS)" ]; then \
  446.       true; \
  447.     else \
  448.       lib=`pwd | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \
  449.       for dir in Makefile $(MULTIDIRS); do \
  450.         if [ -f ../$${dir}/$${lib}/Makefile ]; then \
  451.           if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \
  452.           then true; \
  453.           else exit 1; \
  454.           fi; \
  455.         else true; \
  456.         fi; \
  457.       done; \
  458.     fi
  459. EOF
  460.  
  461. cat ${Makefile} Multi.tem > Makefile.tem
  462. rm -f ${Makefile} Multi.tem
  463. mv Makefile.tem ${Makefile}
  464.  
  465. fi # ${ml_toplevel_p} = yes
  466.  
  467. if [ "${ml_verbose}" = --verbose ]; then
  468.   echo "Adding multilib support to Makefile in ${ml_realsrcdir}"
  469.   if [ "${ml_toplevel_p}" = yes ]; then
  470.     echo "multidirs=${multidirs}"
  471.   fi
  472.   echo "with_multisubdir=${with_multisubdir}"
  473. fi
  474.  
  475. if [ "${srcdir}" = "." ]; then
  476.   if [ "${with_target_subdir}" != "." ]; then
  477.     ml_srcdotdot="../"
  478.   else
  479.     ml_srcdotdot=""
  480.   fi
  481. else
  482.   ml_srcdotdot=""
  483. fi
  484.  
  485. if [ -z "${with_multisubdir}" ]; then
  486.   ml_subdir=
  487.   ml_builddotdot=
  488.   : # ml_srcdotdot= # already set
  489. else
  490.   ml_subdir="/${with_multisubdir}"
  491.   # The '[^/][^/]*' appears that way to work around a SunOS sed bug.
  492.   ml_builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`/
  493.   if [ "$srcdir" = "." ]; then
  494.     ml_srcdotdot=${ml_srcdotdot}${ml_builddotdot}
  495.   else
  496.     : # ml_srcdotdot= # already set
  497.   fi
  498. fi
  499.  
  500. if [ "${ml_toplevel_p}" = yes ]; then
  501.   ml_do='$(MAKE)'
  502.   ml_clean='$(MAKE)'
  503. else
  504.   ml_do=true
  505.   ml_clean=true
  506. fi
  507.  
  508. # TOP is used by newlib and should not be used elsewhere for this purpose.
  509. # MULTI{SRC,BUILD}TOP are the proper ones to use.  MULTISRCTOP is empty
  510. # when srcdir != builddir.  MULTIBUILDTOP is always some number of ../'s.
  511. # FIXME: newlib needs to be updated to use MULTI{SRC,BUILD}TOP so we can
  512. # delete TOP.  Newlib may wish to continue to use TOP for its own purposes
  513. # of course.
  514. # MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile)
  515. # and lists the subdirectories to recurse into.
  516. # MULTISUBDIR is non-empty in each cpu subdirectory's Makefile
  517. # (eg: newlib/h8300h/Makefile) and is the installed subdirectory name with
  518. # a leading '/'.
  519. # MULTIDO is used for targets like all, install, and check where
  520. # $(FLAGS_TO_PASS) augmented with the subdir's compiler option is needed.
  521. # MULTICLEAN is used for the *clean targets.
  522. #
  523. # ??? It is possible to merge MULTIDO and MULTICLEAN into one.  They are
  524. # currently kept separate because we don't want the *clean targets to require
  525. # the existence of the compiler (which MULTIDO currently requires) and
  526. # therefore we'd have to record the directory options as well as names
  527. # (currently we just record the names and use --print-multi-lib to get the
  528. # options).
  529.  
  530. sed -e "s:^TOP[     ]*=[     ]*\([./]*\)[     ]*$:TOP = ${ml_builddotdot}\1:" \
  531.     -e "s:^MULTISRCTOP[     ]*=.*$:MULTISRCTOP = ${ml_srcdotdot}:" \
  532.     -e "s:^MULTIBUILDTOP[     ]*=.*$:MULTIBUILDTOP = ${ml_builddotdot}:" \
  533.     -e "s:^MULTIDIRS[     ]*=.*$:MULTIDIRS = ${multidirs}:" \
  534.     -e "s:^MULTISUBDIR[     ]*=.*$:MULTISUBDIR = ${ml_subdir}:" \
  535.     -e "s:^MULTIDO[     ]*=.*$:MULTIDO = $ml_do:" \
  536.     -e "s:^MULTICLEAN[     ]*=.*$:MULTICLEAN = $ml_clean:" \
  537.     ${Makefile} > Makefile.tem
  538. rm -f ${Makefile}
  539. mv Makefile.tem ${Makefile}
  540.  
  541. # If this is the library's top level, configure each multilib subdir.
  542. # This is done at the end because this is the loop that runs configure
  543. # in each multilib subdir and it seemed reasonable to finish updating the
  544. # Makefile before going on to configure the subdirs.
  545.  
  546. if [ "${ml_toplevel_p}" = yes ]; then
  547.  
  548. # We must freshly configure each subdirectory.  This bit of code is
  549. # actually partially stolen from the main configure script.  FIXME.
  550.  
  551. if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then
  552.  
  553.   if [ "${ml_verbose}" = --verbose ]; then
  554.     echo "Running configure in multilib subdirs ${multidirs}"
  555.     echo "pwd: `pwd`"
  556.   fi
  557.  
  558.   ml_origdir=`pwd`
  559.   ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'`
  560.   # cd to top-level-build-dir/${with_target_subdir}
  561.   cd ..
  562.  
  563.   for ml_dir in ${multidirs}; do
  564.  
  565.     if [ "${ml_verbose}" = --verbose ]; then
  566.       echo "Running configure in multilib subdir ${ml_dir}"
  567.       echo "pwd: `pwd`"
  568.     fi
  569.  
  570.     if [ -d ${ml_dir} ]; then true; else mkdir ${ml_dir}; fi
  571.     if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi
  572.  
  573.     # Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../
  574.     dotdot=../`echo ${ml_dir} | sed -e 's|[^/]||g' -e 's|/|../|g'`
  575.  
  576.     case ${srcdir} in
  577.     ".")
  578.       echo Building symlink tree in `pwd`/${ml_dir}/${ml_libdir}
  579.       if [ "${with_target_subdir}" != "." ]; then
  580.     ml_unsubdir="../"
  581.       else
  582.     ml_unsubdir=""
  583.       fi
  584.       (cd ${ml_dir}/${ml_libdir};
  585.        ../${dotdot}${ml_unsubdir}symlink-tree ../${dotdot}${ml_unsubdir}${ml_libdir} "")
  586.       ml_newsrcdir="."
  587.       ml_srcdiroption=
  588.       multisrctop=${dotdot}
  589.       ;;
  590.     *)
  591.       case "${srcdir}" in
  592.       /*) # absolute path
  593.         ml_newsrcdir=${srcdir}
  594.         ;;
  595.       *) # otherwise relative
  596.         ml_newsrcdir=${dotdot}${srcdir}
  597.         ;;
  598.       esac
  599.       ml_srcdiroption="-srcdir=${ml_newsrcdir}"
  600.       multisrctop=
  601.       ;;
  602.     esac
  603.  
  604.     case "${progname}" in
  605.     /*)     ml_recprog=${progname} ;;
  606.     *)      ml_recprog=${dotdot}${progname} ;;
  607.     esac
  608.  
  609.     # FIXME: POPDIR=${PWD=`pwd`} doesn't work here.
  610.     ML_POPDIR=`pwd`
  611.     cd ${ml_dir}/${ml_libdir}
  612.  
  613.     if [ -f ${ml_newsrcdir}/configure ]; then
  614.       ml_recprog=${ml_newsrcdir}/configure
  615.     fi
  616.     if eval ${ml_config_shell} ${ml_recprog} \
  617.     --with-multisubdir=${ml_dir} --with-multisrctop=${multisrctop} \
  618.     ${ml_arguments} ${ml_srcdiroption} ; then
  619.       true
  620.     else
  621.       exit 1
  622.     fi
  623.  
  624.     cd ${ML_POPDIR}
  625.  
  626.   done
  627.  
  628.   cd ${ml_origdir}
  629. fi
  630.  
  631. fi # ${ml_toplevel_p} = yes
  632. fi # ${enable_multilib} = yes
  633.