
1: # Configure fragment invoked in the post-target section for subdirs 2: # wanting multilib support. 3: # 4: # Copyright (C) 1995, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004 5: # Free Software Foundation, Inc. 6: # 7: # This file is free software; you can redistribute it and/or modify 8: # it under the terms of the GNU General Public License as published by 9: # the Free Software Foundation; either version 2 of the License, or 10: # (at your option) any later version. 11: # 12: # This program is distributed in the hope that it will be useful, 13: # but WITHOUT ANY WARRANTY; without even the implied warranty of 14: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15: # GNU General Public License for more details. 16: # 17: # You should have received a copy of the GNU General Public License 18: # along with this program; if not, write to the Free Software 19: # Foundation, Inc., 51 Franklin Street, Fifth Floor, 20: # Boston, MA 02110-1301, USA. 21: # 22: # As a special exception to the GNU General Public License, if you 23: # distribute this file as part of a program that contains a 24: # configuration script generated by Autoconf, you may include it under 25: # the same distribution terms that you use for the rest of that program. 26: # 27: # Please report bugs to <gcc-bugs@gnu.org> 28: # and send patches to <gcc-patches@gnu.org>. 29: 30: # It is advisable to support a few --enable/--disable options to let the 31: # user select which libraries s/he really wants. 32: # 33: # Subdirectories wishing to use multilib should put the following lines 34: # in the "post-target" section of configure.in. 35: # 36: # if [ "${srcdir}" = "." ] ; then 37: # if [ "${with_target_subdir}" != "." ] ; then 38: # . ${with_multisrctop}../../config-ml.in 39: # else 40: # . ${with_multisrctop}../config-ml.in 41: # fi 42: # else 43: # . ${srcdir}/../config-ml.in 44: # fi 45: # 46: # 47: # Things are complicated because 6 separate cases must be handled: 48: # 2 (native, cross) x 3 (absolute-path, relative-not-dot, dot) = 6. 49: # 50: # srcdir=. is special. It must handle make programs that don't handle VPATH. 51: # To implement this, a symlink tree is built for each library and for each 52: # multilib subdir. 53: # 54: # The build tree is layed out as 55: # 56: # ./ 57: # newlib 58: # m68020/ 59: # newlib 60: # m68881/ 61: # newlib 62: # 63: # The nice feature about this arrangement is that inter-library references 64: # in the build tree work without having to care where you are. Note that 65: # inter-library references also work in the source tree because symlink trees 66: # are built when srcdir=. 67: # 68: # Unfortunately, trying to access the libraries in the build tree requires 69: # the user to manually choose which library to use as GCC won't be able to 70: # find the right one. This is viewed as the lesser of two evils. 71: # 72: # Configure variables: 73: # ${with_target_subdir} = "." for native, or ${target_alias} for cross. 74: # Set by top level Makefile. 75: # ${with_multisrctop} = how many levels of multilibs there are in the source 76: # tree. It exists to handle the case of configuring in the source tree: 77: # ${srcdir} is not constant. 78: # ${with_multisubdir} = name of multilib subdirectory (eg: m68020/m68881). 79: # 80: # Makefile variables: 81: # MULTISRCTOP = number of multilib levels in source tree (+1 if cross) 82: # (FIXME: note that this is different than ${with_multisrctop}. Check out.). 83: # MULTIBUILDTOP = number of multilib levels in build tree 84: # MULTIDIRS = list of multilib subdirs (eg: m68000 m68020 ...) 85: # (only defined in each library's main Makefile). 86: # MULTISUBDIR = installed subdirectory name with leading '/' (eg: /m68000) 87: # (only defined in each multilib subdir). 88: 89: # FIXME: Multilib is currently disabled by default for everything other than 90: # newlib. It is up to each target to turn on multilib support for the other 91: # libraries as desired. 92: 93: # Autoconf incoming variables: 94: # srcdir, host, ac_configure_args 95: # 96: # We *could* figure srcdir and host out, but we'd have to do work that 97: # our caller has already done to figure them out and requiring these two 98: # seems reasonable. 99: # Note that `host' in this case is GCC's `target'. Target libraries are 100: # configured for a particular host. 101: 102: Makefile=${ac_file-Makefile} 103: ml_config_shell=${CONFIG_SHELL-/bin/sh} 104: ml_realsrcdir=${srcdir} 105: 106: # Scan all the arguments and set all the ones we need. 107: 108: ml_verbose=--verbose 109: for option in ${ac_configure_args} 110: do 111: # strip single quotes surrounding individual options 112: case $option in 113: \'*\') eval option=$option ;; 114: esac 115: 116: case $option in 117: --*) ;; 118: -*) option=-$option ;; 119: esac 120: 121: case $option in 122: --*=*) 123: optarg=`echo $option | sed -e 's/^[^=]*=//'` 124: ;; 125: esac 126: 127: case $option in 128: --disable-*) 129: enableopt=`echo ${option} | sed 's:^--disable-:enable_:;s:-:_:g'` 130: eval $enableopt=no 131: ;; 132: --enable-*) 133: case "$option" in 134: *=*) ;; 135: *) optarg=yes ;; 136: esac 137: enableopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 138: eval $enableopt="$optarg" 139: ;; 140: --norecursion | --no-recursion) 141: ml_norecursion=yes 142: ;; 143: --silent | --sil* | --quiet | --q*) 144: ml_verbose=--silent 145: ;; 146: --verbose | --v | --verb*) 147: ml_verbose=--verbose 148: ;; 149: --with-*) 150: case "$option" in 151: *=*) ;; 152: *) optarg=yes ;; 153: esac 154: withopt=`echo ${option} | sed 's:^--::;s:=.*$::;s:-:_:g'` 155: eval $withopt="$optarg" 156: ;; 157: --without-*) 158: withopt=`echo ${option} | sed 's:^--::;s:out::;s:-:_:g'` 159: eval $withopt=no 160: ;; 161: esac 162: done 163: 164: # Only do this if --enable-multilib. 165: if [ "${enable_multilib}" = yes ]; then 166: 167: # Compute whether this is the library's top level directory 168: # (ie: not a multilib subdirectory, and not a subdirectory like newlib/src). 169: # ${with_multisubdir} tells us we're in the right branch, but we could be 170: # in a subdir of that. 171: # ??? The previous version could void this test by separating the process into 172: # two files: one that only the library's toplevel configure.in ran (to 173: # configure the multilib subdirs), and another that all configure.in's ran to 174: # update the Makefile. It seemed reasonable to collapse all multilib support 175: # into one file, but it does leave us with having to perform this test. 176: ml_toplevel_p=no 177: if [ -z "${with_multisubdir}" ]; then 178: if [ "${srcdir}" = "." ]; then 179: # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}. 180: # ${with_target_subdir} = "." for native, otherwise target alias. 181: if [ "${with_target_subdir}" = "." ]; then 182: if [ -f ${ml_realsrcdir}/../config-ml.in ]; then 183: ml_toplevel_p=yes 184: fi 185: else 186: if [ -f ${ml_realsrcdir}/../../config-ml.in ]; then 187: ml_toplevel_p=yes 188: fi 189: fi 190: else 191: # Use ${ml_realsrcdir} instead of ${srcdir} here to account for ${subdir}. 192: if [ -f ${ml_realsrcdir}/../config-ml.in ]; then 193: ml_toplevel_p=yes 194: fi 195: fi 196: fi 197: 198: # If this is the library's top level directory, set multidirs to the 199: # multilib subdirs to support. This lives at the top because we need 200: # `multidirs' set right away. 201: 202: if [ "${ml_toplevel_p}" = yes ]; then 203: 204: multidirs= 205: for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do 206: dir=`echo $i | sed -e 's/;.*$//'` 207: if [ "${dir}" = "." ]; then 208: true 209: else 210: if [ -z "${multidirs}" ]; then 211: multidirs="${dir}" 212: else 213: multidirs="${multidirs} ${dir}" 214: fi 215: fi 216: done 217: 218: # Target libraries are configured for the host they run on, so we check 219: # $host here, not $target. 220: 221: case "${host}" in 222: arc-*-elf*) 223: if [ x$enable_biendian != xyes ] 224: then 225: old_multidirs=${multidirs} 226: multidirs="" 227: for x in ${old_multidirs}; do 228: case "${x}" in 229: *be*) : ;; 230: *) multidirs="${multidirs} ${x}" ;; 231: esac 232: done 233: fi 234: ;; 235: arm-*-*) 236: if [ x"$enable_fpu" = xno ] 237: then 238: old_multidirs=${multidirs} 239: multidirs="" 240: for x in ${old_multidirs}; do 241: case "${x}" in 242: *fpu*) : ;; 243: *) multidirs="${multidirs} ${x}" ;; 244: esac 245: done 246: fi 247: if [ x"$enable_26bit" = xno ] 248: then 249: old_multidirs=${multidirs} 250: multidirs="" 251: for x in ${old_multidirs}; do 252: case "${x}" in 253: *26bit*) : ;; 254: *) multidirs="${multidirs} ${x}" ;; 255: esac 256: done 257: fi 258: if [ x"$enable_underscore" = xno ] 259: then 260: old_multidirs=${multidirs} 261: multidirs="" 262: for x in ${old_multidirs}; do 263: case "${x}" in 264: *under*) : ;; 265: *) multidirs="${multidirs} ${x}" ;; 266: esac 267: done 268: fi 269: if [ x"$enable_interwork" = xno ] 270: then 271: old_multidirs=${multidirs} 272: multidirs="" 273: for x in ${old_multidirs}; do 274: case "${x}" in 275: *interwork*) : ;; 276: *) multidirs="${multidirs} ${x}" ;; 277: esac 278: done 279: fi 280: if [ x$enable_biendian = xno ] 281: then 282: old_multidirs="${multidirs}" 283: multidirs="" 284: for x in ${old_multidirs}; do 285: case "$x" in 286: *le* ) : ;; 287: *be* ) : ;; 288: *) multidirs="${multidirs} ${x}" ;; 289: esac 290: done 291: fi 292: if [ x"$enable_nofmult" = xno ] 293: then 294: old_multidirs="${multidirs}" 295: multidirs="" 296: for x in ${old_multidirs}; do 297: case "$x" in 298: *nofmult* ) : ;; 299: *) multidirs="${multidirs} ${x}" ;; 300: esac 301: done 302: fi 303: ;; 304: m68*-*-*) 305: if [ x$enable_softfloat = xno ] 306: then 307: old_multidirs="${multidirs}" 308: multidirs="" 309: for x in ${old_multidirs}; do 310: case "$x" in 311: *soft-float* ) : ;; 312: *) multidirs="${multidirs} ${x}" ;; 313: esac 314: done 315: fi 316: if [ x$enable_m68881 = xno ] 317: then 318: old_multidirs="${multidirs}" 319: multidirs="" 320: for x in ${old_multidirs}; do 321: case "$x" in 322: *m68881* ) : ;; 323: *) multidirs="${multidirs} ${x}" ;; 324: esac 325: done 326: fi 327: if [ x$enable_m68000 = xno ] 328: then 329: old_multidirs="${multidirs}" 330: multidirs="" 331: for x in ${old_multidirs}; do 332: case "$x" in 333: *m68000* ) : ;; 334: *) multidirs="${multidirs} ${x}" ;; 335: esac 336: done 337: fi 338: if [ x$enable_m68020 = xno ] 339: then 340: old_multidirs="${multidirs}" 341: multidirs="" 342: for x in ${old_multidirs}; do 343: case "$x" in 344: *m68020* ) : ;; 345: *) multidirs="${multidirs} ${x}" ;; 346: esac 347: done 348: fi 349: ;; 350: mips*-*-*) 351: if [ x$enable_single_float = xno ] 352: then 353: old_multidirs="${multidirs}" 354: multidirs="" 355: for x in ${old_multidirs}; do 356: case "$x" in 357: *single* ) : ;; 358: *) multidirs="${multidirs} ${x}" ;; 359: esac 360: done 361: fi 362: if [ x$enable_biendian = xno ] 363: then 364: old_multidirs="${multidirs}" 365: multidirs="" 366: for x in ${old_multidirs}; do 367: case "$x" in 368: *el* ) : ;; 369: *eb* ) : ;; 370: *) multidirs="${multidirs} ${x}" ;; 371: esac 372: done 373: fi 374: if [ x$enable_softfloat = xno ] 375: then 376: old_multidirs="${multidirs}" 377: multidirs="" 378: for x in ${old_multidirs}; do 379: case "$x" in 380: *soft-float* ) : ;; 381: *) multidirs="${multidirs} ${x}" ;; 382: esac 383: done 384: fi 385: case " $multidirs " in 386: *" mabi=64 "*) 387: # We will not be able to create libraries with -mabi=64 if 388: # we cannot even link a trivial program. It usually 389: # indicates the 64bit libraries are missing. 390: if echo 'main() {}' > conftest.c && 391: ${CC-gcc} -mabi=64 conftest.c -o conftest; then 392: : 393: else 394: echo Could not link program with -mabi=64, disabling it. 395: old_multidirs="${multidirs}" 396: multidirs="" 397: for x in ${old_multidirs}; do 398: case "$x" in 399: *mabi=64* ) : ;; 400: *) multidirs="${multidirs} ${x}" ;; 401: esac 402: done 403: fi 404: rm -f conftest.c conftest 405: ;; 406: esac 407: ;; 408: powerpc*-*-* | rs6000*-*-*) 409: if [ x$enable_aix64 = xno ] 410: then 411: old_multidirs="${multidirs}" 412: multidirs="" 413: for x in ${old_multidirs}; do 414: case "$x" in 415: *ppc64* ) : ;; 416: *) multidirs="${multidirs} ${x}" ;; 417: esac 418: done 419: fi 420: if [ x$enable_pthread = xno ] 421: then 422: old_multidirs="${multidirs}" 423: multidirs="" 424: for x in ${old_multidirs}; do 425: case "$x" in 426: *pthread* ) : ;; 427: *) multidirs="${multidirs} ${x}" ;; 428: esac 429: done 430: fi 431: if [ x$enable_softfloat = xno ] 432: then 433: old_multidirs="${multidirs}" 434: multidirs="" 435: for x in ${old_multidirs}; do 436: case "$x" in 437: *soft-float* ) : ;; 438: *) multidirs="${multidirs} ${x}" ;; 439: esac 440: done 441: fi 442: if [ x$enable_powercpu = xno ] 443: then 444: old_multidirs="${multidirs}" 445: multidirs="" 446: for x in ${old_multidirs}; do 447: case "$x" in 448: power | */power | */power/* ) : ;; 449: *) multidirs="${multidirs} ${x}" ;; 450: esac 451: done 452: fi 453: if [ x$enable_powerpccpu = xno ] 454: then 455: old_multidirs="${multidirs}" 456: multidirs="" 457: for x in ${old_multidirs}; do 458: case "$x" in 459: *powerpc* ) : ;; 460: *) multidirs="${multidirs} ${x}" ;; 461: esac 462: done 463: fi 464: if [ x$enable_powerpcos = xno ] 465: then 466: old_multidirs="${multidirs}" 467: multidirs="" 468: for x in ${old_multidirs}; do 469: case "$x" in 470: *mcall-linux* | *mcall-solaris* ) : ;; 471: *) multidirs="${multidirs} ${x}" ;; 472: esac 473: done 474: fi 475: if [ x$enable_biendian = xno ] 476: then 477: old_multidirs="${multidirs}" 478: multidirs="" 479: for x in ${old_multidirs}; do 480: case "$x" in 481: *mlittle* | *mbig* ) : ;; 482: *) multidirs="${multidirs} ${x}" ;; 483: esac 484: done 485: fi 486: if [ x$enable_sysv = xno ] 487: then 488: old_multidirs="${multidirs}" 489: multidirs="" 490: for x in ${old_multidirs}; do 491: case "$x" in 492: *mcall-sysv* ) : ;; 493: *) multidirs="${multidirs} ${x}" ;; 494: esac 495: done 496: fi 497: ;; 498: sparc*-*-*) 499: case " $multidirs " in 500: *" m64 "*) 501: # We will not be able to create libraries with -m64 if 502: # we cannot even link a trivial program. It usually 503: # indicates the 64bit libraries are missing. 504: if echo 'main() {}' > conftest.c && 505: ${CC-gcc} -m64 conftest.c -o conftest; then 506: : 507: else 508: echo Could not link program with -m64, disabling it. 509: old_multidirs="${multidirs}" 510: multidirs="" 511: for x in ${old_multidirs}; do 512: case "$x" in 513: *m64* ) : ;; 514: *) multidirs="${multidirs} ${x}" ;; 515: esac 516: done 517: fi 518: rm -f conftest.c conftest 519: ;; 520: esac 521: ;; 522: esac 523: 524: # Remove extraneous blanks from multidirs. 525: # Tests like `if [ -n "$multidirs" ]' require it. 526: multidirs=`echo "$multidirs" | sed -e 's/^[ ][ ]*//' -e 's/[ ][ ]*$//' -e 's/[ ][ ]*/ /g'` 527: 528: # Add code to library's top level makefile to handle building the multilib 529: # subdirs. 530: 531: cat > Multi.tem <<\EOF 532: 533: PWD_COMMAND=$${PWDCMD-pwd} 534: 535: # FIXME: There should be an @-sign in front of the `if'. 536: # Leave out until this is tested a bit more. 537: multi-do: 538: if [ -z "$(MULTIDIRS)" ]; then \ 539: true; \ 540: else \ 541: rootpre=`${PWD_COMMAND}`/; export rootpre; \ 542: srcrootpre=`cd $(srcdir); ${PWD_COMMAND}`/; export srcrootpre; \ 543: lib=`echo $${rootpre} | sed -e 's,^.*/\([^/][^/]*\)/$$,\1,'`; \ 544: compiler="$(CC)"; \ 545: for i in `$${compiler} --print-multi-lib 2>/dev/null`; do \ 546: dir=`echo $$i | sed -e 's/;.*$$//'`; \ 547: if [ "$${dir}" = "." ]; then \ 548: true; \ 549: else \ 550: if [ -d ../$${dir}/$${lib} ]; then \ 551: flags=`echo $$i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'`; \ 552: if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) \ 553: CFLAGS="$(CFLAGS) $${flags}" \ 554: CCASFLAGS="$(CCASFLAGS) $${flags}" \ 555: FCFLAGS="$(FCFLAGS) $${flags}" \ 556: FFLAGS="$(FFLAGS) $${flags}" \ 557: ADAFLAGS="$(ADAFLAGS) $${flags}" \ 558: prefix="$(prefix)" \ 559: exec_prefix="$(exec_prefix)" \ 560: GCJFLAGS="$(GCJFLAGS) $${flags}" \ 561: CXXFLAGS="$(CXXFLAGS) $${flags}" \ 562: LIBCFLAGS="$(LIBCFLAGS) $${flags}" \ 563: LIBCXXFLAGS="$(LIBCXXFLAGS) $${flags}" \ 564: LDFLAGS="$(LDFLAGS) $${flags}" \ 565: MULTIFLAGS="$${flags}" \ 566: DESTDIR="$(DESTDIR)" \ 567: INSTALL="$(INSTALL)" \ 568: INSTALL_DATA="$(INSTALL_DATA)" \ 569: INSTALL_PROGRAM="$(INSTALL_PROGRAM)" \ 570: INSTALL_SCRIPT="$(INSTALL_SCRIPT)" \ 571: $(DO)); then \ 572: true; \ 573: else \ 574: exit 1; \ 575: fi; \ 576: else true; \ 577: fi; \ 578: fi; \ 579: done; \ 580: fi 581: 582: # FIXME: There should be an @-sign in front of the `if'. 583: # Leave out until this is tested a bit more. 584: multi-clean: 585: if [ -z "$(MULTIDIRS)" ]; then \ 586: true; \ 587: else \ 588: lib=`${PWD_COMMAND} | sed -e 's,^.*/\([^/][^/]*\)$$,\1,'`; \ 589: for dir in Makefile $(MULTIDIRS); do \ 590: if [ -f ../$${dir}/$${lib}/Makefile ]; then \ 591: if (cd ../$${dir}/$${lib}; $(MAKE) $(FLAGS_TO_PASS) $(DO)); \ 592: then true; \ 593: else exit 1; \ 594: fi; \ 595: else true; \ 596: fi; \ 597: done; \ 598: fi 599: EOF 600: 601: cat ${Makefile} Multi.tem > Makefile.tem 602: rm -f ${Makefile} Multi.tem 603: mv Makefile.tem ${Makefile} 604: 605: fi # ${ml_toplevel_p} = yes 606: 607: if [ "${ml_verbose}" = --verbose ]; then 608: echo "Adding multilib support to Makefile in ${ml_realsrcdir}" 609: if [ "${ml_toplevel_p}" = yes ]; then 610: echo "multidirs=${multidirs}" 611: fi 612: echo "with_multisubdir=${with_multisubdir}" 613: fi 614: 615: if [ "${srcdir}" = "." ]; then 616: if [ "${with_target_subdir}" != "." ]; then 617: ml_srcdotdot="../" 618: else 619: ml_srcdotdot="" 620: fi 621: else 622: ml_srcdotdot="" 623: fi 624: 625: if [ -z "${with_multisubdir}" ]; then 626: ml_subdir= 627: ml_builddotdot= 628: : # ml_srcdotdot= # already set 629: else 630: ml_subdir="/${with_multisubdir}" 631: # The '[^/][^/]*' appears that way to work around a SunOS sed bug. 632: ml_builddotdot=`echo ${with_multisubdir} | sed -e 's:[^/][^/]*:..:g'`/ 633: if [ "$srcdir" = "." ]; then 634: ml_srcdotdot=${ml_srcdotdot}${ml_builddotdot} 635: else 636: : # ml_srcdotdot= # already set 637: fi 638: fi 639: 640: if [ "${ml_toplevel_p}" = yes ]; then 641: ml_do='$(MAKE)' 642: ml_clean='$(MAKE)' 643: else 644: ml_do=true 645: ml_clean=true 646: fi 647: 648: # TOP is used by newlib and should not be used elsewhere for this purpose. 649: # MULTI{SRC,BUILD}TOP are the proper ones to use. MULTISRCTOP is empty 650: # when srcdir != builddir. MULTIBUILDTOP is always some number of ../'s. 651: # FIXME: newlib needs to be updated to use MULTI{SRC,BUILD}TOP so we can 652: # delete TOP. Newlib may wish to continue to use TOP for its own purposes 653: # of course. 654: # MULTIDIRS is non-empty for the cpu top level Makefile (eg: newlib/Makefile) 655: # and lists the subdirectories to recurse into. 656: # MULTISUBDIR is non-empty in each cpu subdirectory's Makefile 657: # (eg: newlib/h8300h/Makefile) and is the installed subdirectory name with 658: # a leading '/'. 659: # MULTIDO is used for targets like all, install, and check where 660: # $(FLAGS_TO_PASS) augmented with the subdir's compiler option is needed. 661: # MULTICLEAN is used for the *clean targets. 662: # 663: # ??? It is possible to merge MULTIDO and MULTICLEAN into one. They are 664: # currently kept separate because we don't want the *clean targets to require 665: # the existence of the compiler (which MULTIDO currently requires) and 666: # therefore we'd have to record the directory options as well as names 667: # (currently we just record the names and use --print-multi-lib to get the 668: # options). 669: 670: sed -e "s:^TOP[ ]*=[ ]*\([./]*\)[ ]*$:TOP = ${ml_builddotdot}\1:" \ 671: -e "s:^MULTISRCTOP[ ]*=.*$:MULTISRCTOP = ${ml_srcdotdot}:" \ 672: -e "s:^MULTIBUILDTOP[ ]*=.*$:MULTIBUILDTOP = ${ml_builddotdot}:" \ 673: -e "s:^MULTIDIRS[ ]*=.*$:MULTIDIRS = ${multidirs}:" \ 674: -e "s:^MULTISUBDIR[ ]*=.*$:MULTISUBDIR = ${ml_subdir}:" \ 675: -e "s:^MULTIDO[ ]*=.*$:MULTIDO = $ml_do:" \ 676: -e "s:^MULTICLEAN[ ]*=.*$:MULTICLEAN = $ml_clean:" \ 677: ${Makefile} > Makefile.tem 678: rm -f ${Makefile} 679: mv Makefile.tem ${Makefile} 680: 681: # If this is the library's top level, configure each multilib subdir. 682: # This is done at the end because this is the loop that runs configure 683: # in each multilib subdir and it seemed reasonable to finish updating the 684: # Makefile before going on to configure the subdirs. 685: 686: if [ "${ml_toplevel_p}" = yes ]; then 687: 688: # We must freshly configure each subdirectory. This bit of code is 689: # actually partially stolen from the main configure script. FIXME. 690: 691: if [ -n "${multidirs}" ] && [ -z "${ml_norecursion}" ]; then 692: 693: if [ "${ml_verbose}" = --verbose ]; then 694: echo "Running configure in multilib subdirs ${multidirs}" 695: echo "pwd: `${PWDCMD-pwd}`" 696: fi 697: 698: ml_origdir=`${PWDCMD-pwd}` 699: ml_libdir=`echo $ml_origdir | sed -e 's,^.*/,,'` 700: # cd to top-level-build-dir/${with_target_subdir} 701: cd .. 702: 703: for ml_dir in ${multidirs}; do 704: 705: if [ "${ml_verbose}" = --verbose ]; then 706: echo "Running configure in multilib subdir ${ml_dir}" 707: echo "pwd: `${PWDCMD-pwd}`" 708: fi 709: 710: if [ -d ${ml_dir} ]; then true; else 711: # ``mkdir -p ${ml_dir}'' See also mkinstalldirs. 712: pathcomp="" 713: for d in `echo ":${ml_dir}" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'`; do 714: pathcomp="$pathcomp$d" 715: case "$pathcomp" in 716: -* ) pathcomp=./$pathcomp ;; 717: esac 718: if test ! -d "$pathcomp"; then 719: echo "mkdir $pathcomp" 1>&2 720: mkdir "$pathcomp" > /dev/null 2>&1 || lasterr=$? 721: fi 722: if test ! -d "$pathcomp"; then 723: exit $lasterr 724: fi 725: pathcomp="$pathcomp/" 726: done 727: fi 728: if [ -d ${ml_dir}/${ml_libdir} ]; then true; else mkdir ${ml_dir}/${ml_libdir}; fi 729: 730: # Eg: if ${ml_dir} = m68000/m68881, dotdot = ../../ 731: dotdot=../`echo ${ml_dir} | sed -e 's|[^/]||g' -e 's|/|../|g'` 732: 733: case ${srcdir} in 734: ".") 735: echo Building symlink tree in `${PWDCMD-pwd}`/${ml_dir}/${ml_libdir} 736: if [ "${with_target_subdir}" != "." ]; then 737: ml_unsubdir="../" 738: else 739: ml_unsubdir="" 740: fi 741: (cd ${ml_dir}/${ml_libdir}; 742: ../${dotdot}${ml_unsubdir}symlink-tree ../${dotdot}${ml_unsubdir}${ml_libdir} "") 743: if [ -f ${ml_dir}/${ml_libdir}/Makefile ]; then 744: if [ x"${MAKE}" = x ]; then 745: (cd ${ml_dir}/${ml_libdir}; make distclean) 746: else 747: (cd ${ml_dir}/${ml_libdir}; ${MAKE} distclean) 748: fi 749: fi 750: ml_newsrcdir="." 751: ml_srcdiroption= 752: multisrctop=${dotdot} 753: ;; 754: *) 755: case "${srcdir}" in 756: /* | [A-Za-z]:[\\/]* ) # absolute path 757: ml_newsrcdir=${srcdir} 758: ;; 759: *) # otherwise relative 760: ml_newsrcdir=${dotdot}${srcdir} 761: ;; 762: esac 763: ml_srcdiroption="-srcdir=${ml_newsrcdir}" 764: multisrctop= 765: ;; 766: esac 767: 768: case "${progname}" in 769: /* | [A-Za-z]:[\\/]* ) ml_recprog=${progname} ;; 770: *) ml_recprog=${dotdot}${progname} ;; 771: esac 772: 773: # FIXME: POPDIR=${PWD=`pwd`} doesn't work here. 774: ML_POPDIR=`${PWDCMD-pwd}` 775: cd ${ml_dir}/${ml_libdir} 776: 777: if [ -f ${ml_newsrcdir}/configure ]; then 778: ml_recprog="${ml_newsrcdir}/configure" 779: fi 780: 781: # find compiler flag corresponding to ${ml_dir} 782: for i in `${CC-gcc} --print-multi-lib 2>/dev/null`; do 783: dir=`echo $i | sed -e 's/;.*$//'` 784: if [ "${dir}" = "${ml_dir}" ]; then 785: flags=`echo $i | sed -e 's/^[^;]*;//' -e 's/@/ -/g'` 786: break 787: fi 788: done 789: ml_config_env='CC="${CC_}$flags" CXX="${CXX_}$flags" F77="${F77_}$flags" GCJ="${GCJ_}$flags" GFORTRAN="${GFORTRAN_}$flags"' 790: 791: if [ "${with_target_subdir}" = "." ]; then 792: CC_=$CC' ' 793: CXX_=$CXX' ' 794: F77_=$F77' ' 795: GCJ_=$GCJ' ' 796: GFORTRAN_=$GFORTRAN' ' 797: else 798: