home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / libg++-2.7.1-src.tgz / tar.out / fsf / libg++ / configure.in < prev    next >
Text File  |  1996-09-28  |  23KB  |  659 lines

  1. ##############################################################################
  2.  
  3. ## This file is a shell script fragment that supplies the information
  4. ## necessary to tailor a template configure script into the configure
  5. ## script appropriate for this directory.  For more information, check
  6. ## any existing configure script.  
  7.  
  8. ## Be warned, there are two types of configure.in files.  There are those
  9. ## used by Autoconf, which are macros which are expanded into a configure
  10. ## script by autoconf.  The other sort, of which this is one, is executed
  11. ## by Cygnus configure.  
  12.  
  13. ## For more information on these two systems, check out the documentation
  14. ## for 'Autoconf' (autoconf.texi) and 'Configure' (configure.texi).  
  15.  
  16. ##############################################################################
  17.  
  18. ### To add a new directory to the tree, first choose whether it is a target
  19. ### or a host dependent tool.  Then put it into the appropriate list
  20. ### (library or tools, host or target), doing a dependency sort.  For
  21. ### example, gdb requires that byacc (or bison) be built first, so it is in
  22. ### the ${host_tools} list after byacc and bison.  
  23.  
  24.  
  25. # these libraries are used by various programs built for the host environment
  26. #
  27. host_libs="mmalloc libiberty opcodes bfd readline gash tcl tk tclX"
  28.  
  29. if [ "${enable_gdbgui}" = "yes" ] ; then
  30.     host_libs="${host_libs} libgui"
  31. fi
  32.  
  33. # these tools are built for the host environment
  34. # Amiga hack - remove cvs since it causes configure to try to
  35. # configure the CVS subdirectory because of the case independence
  36. # of the Amiga filesystem.
  37. #
  38. host_tools="byacc flex bison binutils ld gas gcc gdb make patch
  39.         prms send-pr gprof gdbtest tgas etc expect dejagnu sim
  40.             m4 autoconf ispell grep diff rcs fileutils shellutils
  41.         textutils wdiff find emacs emacs19 uudecode hello tar gzip indent
  42.         recode release sed utils"
  43.  
  44.  
  45. # these libraries are built for the target environment, and are built after
  46. # the host libraries and the host tools (which may be a cross compiler)
  47. #
  48. target_libs="target-libiberty target-libgloss target-newlib target-libio target-librx target-libstdc++ target-libg++"
  49.  
  50.  
  51. # these tools are built using the target libs, and are intended to run only
  52. # in the target environment
  53. #
  54. # note: any program that *uses* libraries that are in the "target_libs"
  55. # list belongs in this list.  those programs are also very likely
  56. # candidates for the "native_only" list which follows
  57. #
  58. target_tools="target-examples target-groff"
  59.  
  60. ################################################################################
  61.  
  62. ## These two lists are of directories that are to be removed from the
  63. ## ${configdirs} list for either cross-compilations or for native-
  64. ## compilations.  For example, it doesn't make that much sense to
  65. ## cross-compile Emacs, nor is it terribly useful to compile target-libiberty in
  66. ## a native environment.  
  67.  
  68. # directories to be built in the native environment only
  69. #
  70. native_only="autoconf cvs emacs emacs19 fileutils find grep gzip hello
  71.          indent ispell m4 rcs recode sed shellutils tar textutils gash
  72.          uudecode wdiff gprof target-groff"
  73.  
  74. # directories to be built in a cross environment only
  75. #
  76. cross_only="target-libiberty target-libgloss target-newlib"
  77.  
  78. ## All tools belong in one of the four categories, and are assigned above
  79. ## We assign ${configdirs} this way to remove all embedded newlines.  This
  80. ## is important because configure will choke if they ever get through.
  81. ## ${configdirs} is directories we build using the host tools.
  82. ## ${target_configdirs} is directories we build using the target tools.
  83. #
  84. configdirs=`/bin/echo ${host_libs} ${host_tools}`
  85. target_configdirs=`/bin/echo ${target_libs} ${target_tools}`
  86.  
  87. ################################################################################
  88.  
  89. srctrigger=move-if-change
  90. srcname="gnu development package"
  91.  
  92. # This gets set non-empty for some net releases of packages.
  93. appdirs=""
  94.  
  95. # per-host:
  96.  
  97. # Work in distributions that contain no compiler tools, like Autoconf.
  98. if [ -d ${srcdir}/config ]; then
  99. case "${host}" in
  100.   m68k-hp-hpux*)      host_makefile_frag=config/mh-hp300 ;;
  101.   m68k-apollo-sysv*)      host_makefile_frag=config/mh-apollo68 ;;
  102.   m68k-apollo-bsd*)       host_makefile_frag=config/mh-a68bsd ;;
  103.   m88k-dg-dgux*)      host_makefile_frag=config/mh-dgux ;;
  104.   m88k-harris-cxux*)      host_makefile_frag=config/mh-cxux ;;
  105.   m88k-motorola-sysv*)    host_makefile_frag=config/mh-delta88;;
  106.   mips*-dec-ultrix*)      host_makefile_frag=config/mh-decstation ;;
  107.   mips*-sgi-irix[56]*)    host_makefile_frag=config/mh-irix5 ;;
  108.   mips*-sgi-irix4*)       host_makefile_frag=config/mh-irix4 ;;
  109.   mips*-sgi-irix3*)       host_makefile_frag=config/mh-sysv ;;
  110.   mips*-*-sysv4*)      host_makefile_frag=config/mh-sysv4 ;;
  111.   mips*-*-sysv*)      host_makefile_frag=config/mh-riscos ;;
  112.   i[345]86-ncr-sysv4.3)   host_makefile_frag=config/mh-ncrsvr43 ;;
  113.   i[345]86-ncr-sysv4*)    host_makefile_frag=config/mh-ncr3000 ;;
  114.   i[345]86-*-sco*)        host_makefile_frag=config/mh-sco ;;
  115.   i[345]86-*-isc*)      host_makefile_frag=config/mh-sysv ;;
  116.   i[345]86-*-linux*)      host_makefile_frag=config/mh-linux ;;
  117.   i[345]86-*-solaris2*)   host_makefile_frag=config/mh-sysv4 ;;
  118.   i[345]86-*-aix*)      host_makefile_frag=config/mh-aix386 ;;
  119.   i[345]86-*-go32*)      host_makefile_frag=config/mh-go32 ;;
  120.   i[345]86-*-win32)      host_makefile_frag=config/mh-i386win32 ;;
  121.   vax-*-ultrix2*)         host_makefile_frag=config/mh-vaxult2 ;;
  122.   *-*-solaris2*)          host_makefile_frag=config/mh-solaris ;;
  123.   m68k-sun-sunos*)      host_makefile_frag=config/mh-sun3 ;;
  124.   *-hp-hpux[78]*)         host_makefile_frag=config/mh-hpux8 ;;
  125.   *-hp-hpux*)             host_makefile_frag=config/mh-hpux ;;
  126.   *-*-hiux*)              host_makefile_frag=config/mh-hpux ;;
  127.   rs6000-*-lynxos*)      host_makefile_frag=config/mh-lynxrs6k ;;
  128.   *-*-lynxos*)            host_makefile_frag=config/mh-lynxos ;;
  129.   *-*-sysv4*)             host_makefile_frag=config/mh-sysv4 ;;
  130.   *-*-sysv*)              host_makefile_frag=config/mh-sysv ;;
  131. esac
  132. fi
  133.  
  134. # See if we can extract a definition of CC from the fragment.
  135. if [ -z "${CC}" ]; then
  136.   if [ -n "${host_makefile_frag}" -a -f "${srcdir}/${host_makefile_frag}" ]; then
  137.     xx=`sed -n -e 's/^[     ]*CC[     ]*=[     ]*\(.*\)$/\1/p' < ${srcdir}/${host_makefile_frag}`
  138.     if [ -n "${xx}" ] ; then
  139.       CC=$xx
  140.     fi
  141.   fi
  142. fi
  143.  
  144. # The Solaris /usr/ucb/cc compiler does not appear to work.
  145. case "${host}" in
  146.   sparc-sun-solaris2*)
  147.       if [ "`/usr/bin/which ${CC-cc}`" = "/usr/ucb/cc" ] ; then
  148.           could_use=
  149.           [ -d /opt/SUNWspro/bin ] && could_use="/opt/SUNWspro/bin"
  150.           if [ -d /opt/cygnus/bin ] ; then
  151.               if [ "$could_use" = "" ] ; then
  152.                   could_use="/opt/cygnus/bin"
  153.               else
  154.                   could_use="$could_use or /opt/cygnus/bin"
  155.               fi
  156.           fi
  157.         if [ "$could_use" = "" ] ; then
  158.             echo "Warning: compilation may fail because you're using"
  159.             echo "/usr/ucb/cc.  You should change your PATH or CC "
  160.             echo "variable and rerun configure."
  161.         else
  162.             echo "Warning: compilation may fail because you're using"
  163.             echo "/usr/ucb/cc, when you should use the C compiler from"
  164.             echo "$could_use.  You should change your"
  165.             echo "PATH or CC variable and rerun configure."
  166.         fi
  167.       fi
  168.   ;;
  169. esac
  170.  
  171. # We default to --with-shared on platforms where -fpic is meaningless.
  172. # Well, we don't yet, but we will.
  173. if false && [ "${host}" = "${target}" ] && [ x${enable_shared} = x ]; then
  174.   case "${target}" in
  175.     alpha-dec-osf*)    enable_shared=yes ;;
  176.     mips-sgi-irix5*)    enable_shared=yes ;;
  177.     *)            enable_shared=no ;;
  178.   esac
  179. fi
  180.  
  181. if [ x${enable_shared} = xyes ]; then
  182.   waugh=
  183.   case "${host}" in
  184.     hppa*)        waugh=config/mh-papic ;;
  185.     i[345]86-*)        waugh=config/mh-x86pic ;;
  186.     *)            waugh=config/mh-${host_cpu}pic ;;
  187.   esac
  188.   if [ -f ${srcdir}/${waugh} ]; then
  189.     if [ -n "${host_makefile_frag}" ] ; then
  190.       cat ${srcdir}/${host_makefile_frag} > mh-frag
  191.       cat ${srcdir}/${waugh} >> mh-frag
  192.       host_makefile_frag=mh-frag
  193.     else
  194.       host_makefile_frag=${waugh}
  195.     fi
  196.   fi
  197. fi
  198.  
  199. # per-target:
  200.  
  201. case "${target}" in
  202.   v810*)        target_makefile_frag=config/mt-v810 ;;
  203.   i[345]86-*-netware*)  target_makefile_frag=config/mt-netware ;;
  204.   powerpc-*-netware*)   target_makefile_frag=config/mt-netware ;;
  205. esac
  206.  
  207. skipdirs=
  208. gasdir=gas
  209. use_gnu_ld=
  210. use_gnu_as=
  211.  
  212. # some tools are so dependent upon X11 that if we're not building with X, 
  213. # it's not even worth trying to configure, much less build, that tool.
  214.  
  215. case ${with_x} in
  216.   yes | "")  # the default value for this tree is that X11 is available
  217.     ;;
  218.   no)
  219.     skipdirs="${skipdirs} tk gash"
  220.     ;;
  221.   *)
  222.         echo "*** bad value \"${with_x}\" for -with-x flag; ignored" 1>&2
  223.         ;;
  224. esac
  225.  
  226. # Some tools are only suitable for building in a "native" situation.
  227. # Those are added when we have a host==target configuration.  For cross
  228. # toolchains, we add some directories that should only be useful in a
  229. # cross-compiler.
  230.  
  231. is_cross_compiler=
  232.  
  233. if [ x"${host}" = x"${target}" ] ; then
  234.     # when doing a native toolchain, don't build the targets
  235.     # that are in the 'cross only' list
  236.     skipdirs="${skipdirs} ${cross_only}"
  237.     is_cross_compiler=no
  238.     target_subdir=.
  239. else
  240.     # similarly, don't build the targets in the 'native only' 
  241.     # list when building a cross compiler
  242.     skipdirs="${skipdirs} ${native_only}"
  243.     is_cross_compiler=yes
  244.     target_subdir=${target_alias}
  245.     if [ ! -d ${target_subdir} ] ; then
  246.         if mkdir ${target_subdir} ; then true
  247.         else
  248.         echo "'*** could not make ${PWD=`pwd`}/${target_subdir}" 1>&2
  249.                 exit 1
  250.         fi
  251.     fi
  252. fi    
  253.  
  254. copy_dirs=
  255.  
  256. # Handle --with-headers=XXX.  The contents of the named directory are
  257. # copied to $(tooldir)/sys-include.
  258. if [ x"${with_headers}" != x ]; then
  259.   if [ x${is_cross_compiler} = xno ]; then
  260.     echo 1>&2 '***' --with-headers is only supported when cross compiling
  261.     exit 1
  262.   fi
  263.   case "${exec_prefixoption}" in
  264.   "") x=${prefix} ;;
  265.   *) x=${exec_prefix} ;;
  266.   esac
  267.   copy_dirs="${copy_dirs} ${with_headers} $x/${target_alias}/sys-include"
  268. fi
  269.  
  270. # Handle --with-libs=XXX.  Multiple directories are permitted.  The
  271. # contents are copied to $(tooldir)/lib.
  272. if [ x"${with_libs}" != x ]; then
  273.   if [ x${is_cross_compiler} = xno ]; then
  274.     echo 1>&2 '***' --with-libs is only supported when cross compiling
  275.     exit 1
  276.   fi
  277.   # Copy the libraries in reverse order, so that files in the first named
  278.   # library override files in subsequent libraries.
  279.   case "${exec_prefixoption}" in
  280.   "") x=${prefix} ;;
  281.   *) x=${exec_prefix} ;;
  282.   esac
  283.   for l in ${with_libs}; do
  284.     copy_dirs="$l $x/${target_alias}/lib ${copy_dirs}"
  285.   done
  286. fi
  287.  
  288. # If both --with-headers and --with-libs are specified, default to
  289. # --without-newlib.
  290. if [ x"${with_headers}" != x ] && [ x"${with_libs}" != x ]; then
  291.   if [ x"${with_newlib}" = x ]; then
  292.     with_newlib=no
  293.   fi
  294. fi
  295.  
  296. # Recognize --with-newlib/--without-newlib.
  297. if [ x${with_newlib} = xno ]; then
  298.   skipdirs="${skipdirs} target-newlib"
  299. elif [ x${with_newlib} = xyes ]; then
  300.   skipdirs=`/bin/echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
  301. fi
  302.  
  303. # Handle ${copy_dirs}
  304. set fnord ${copy_dirs}
  305. shift
  306. while [ $# != 0 ]; do
  307.   if [ -f $2/COPIED ] && [ x"`cat $2/COPIED`" = x"$1" ]; then
  308.     :
  309.   else
  310.     echo Copying $1 to $2
  311.  
  312.     # Use the install script to create the directory and all required
  313.     # parent directories.
  314.     if [ -d $2 ]; then
  315.       :
  316.     else
  317.       echo >config.temp
  318.       ${srcdir}/install.sh -c -m 644 config.temp $2/COPIED
  319.     fi
  320.  
  321.     # Copy the directory, assuming we have tar.
  322.     # FIXME: Should we use B in the second tar?  Not all systems support it.
  323.     (cd $1; tar -cf - .) | (cd $2; tar -xpf -)
  324.  
  325.     # It is the responsibility of the user to correctly adjust all
  326.     # symlinks.  If somebody can figure out how to handle them correctly
  327.     # here, feel free to add the code.
  328.  
  329.     /bin/echo $1 > $2/COPIED
  330.   fi
  331.   shift; shift
  332. done
  333.  
  334. # Configure extra directories which are host specific
  335.  
  336. case "${host}" in
  337.   i[345]86-*-win32* | i[345]86-*-go32*)
  338.       configdirs="$configdirs dosrel" ;;
  339. esac
  340.  
  341. # Remove more programs from consideration, based on the host or 
  342. # target this usually means that a port of the program doesn't
  343. # exist yet.
  344.  
  345. noconfigdirs=""
  346.  
  347. case "${host}" in
  348.   i[345]86-*-vsta)
  349.     noconfigdirs="tcl expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
  350.     ;;
  351.   i[345]86-*-go32)
  352.     noconfigdirs="tcl tk expect dejagnu make texinfo bison patch flex byacc send-pr gprof uudecode dejagnu diff"
  353.     ;;
  354.   i[345]86-*-win32)
  355.      noconfigdirs="tk tcl expect dejagnu cvs autoconf texinfo bison send-pr gprof rcs"
  356.     ;;
  357. esac
  358.  
  359.  
  360. case "${target}" in
  361.   *-*-netware)
  362.     noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-librx target-newlib target-libiberty"
  363.     ;;
  364.   *-*-vxworks5.1)
  365.     noconfigdirs="$noconfigdirs target-newlib"
  366.     ;;
  367.   alpha-dec-osf*)
  368.     # ld works, but does not support shared libraries.  emacs doesn't
  369.     # work.  newlib is not 64 bit ready.  I'm not sure about fileutils or grep.
  370.     noconfigdirs="$noconfigdirs ld emacs fileutils grep target-newlib"
  371.     ;;
  372.   alpha*-*-*)
  373.     # newlib is not 64 bit ready
  374.     noconfigdirs="$noconfigdirs target-newlib"
  375.     ;;
  376.   arm-*-riscix*)
  377.     noconfigdirs="$noconfigdirs ld"
  378.     ;;
  379.   h8300*-*-* | \
  380.   h8500-*-*)
  381.     noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
  382.     ;;
  383.   hppa*-*-*elf* | \
  384.   hppa*-*-lites*)
  385.     # Do configure ld/binutils/gas for this case.
  386.     ;;
  387.   hppa*-*-*)
  388.     # HP's C compiler doesn't handle Emacs correctly (but on BSD and Mach
  389.     # cc is gcc, and on any system a user should be able to link cc to
  390.     # whatever they want.  FIXME, emacs emacs19).
  391.     case "${CC}" in
  392.     "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
  393.         *) ;;
  394.     esac
  395.     noconfigdirs="$noconfigdirs ld shellutils"
  396.     ;;
  397.   i[345]86-*-go32)
  398.     # but don't build gdb
  399.     noconfigdirs="$noconfigdirs gdb target-libg++ target-libstdc++ target-libio target-librx"
  400.     ;;
  401.  
  402.   i[345]86-*-win32)
  403.     noconfigdirs="$noconfigdirs tk"
  404.     # Can't build gdb for win32 if not native.
  405.     if [ x${is_cross_compiler} = xyes ]; then
  406.         noconfigdirs="$noconfigdirs gdb"
  407.     fi
  408.     # always build newlib.
  409.     skipdirs=`/bin/echo " ${skipdirs} " | sed -e 's/ target-newlib / /'`
  410.     # and winsup
  411.     configdirs="$configdirs target-winsup" 
  412.     ;;    
  413.   i[345]86-*-pe)
  414.     noconfigdirs="$noconfigdirs target-libg++ target-libstdc++ target-libio target-librx"
  415.     ;;
  416.   i[345]86-*-sco*)
  417.     noconfigdirs="$noconfigdirs gprof"
  418.     ;;
  419.   i[345]86-*-solaris2*)
  420.     # The linker does static linking correctly, but the Solaris C library
  421.     # has bugs such that some important functions won't work when statically
  422.     # linked.  (See man pages for getpwuid, for example.)
  423.     noconfigdirs="$noconfigdirs ld"
  424.     ;;
  425.   i[345]86-*-sysv4*)
  426.     # The SYSV4 C compiler doesn't handle Emacs correctly
  427.     case "${CC}" in
  428.     "" | cc*) noconfigdirs="$noconfigdirs emacs emacs19" ;;
  429.         *) ;;
  430.     esac
  431.     # but that's okay since emacs doesn't work anyway
  432.     noconfigdirs="$noconfigdirs emacs emacs19"
  433.     ;;
  434.   powerpc-*-aix*)
  435.     # copied from rs6000-*-* entry
  436.     noconfigdirs="$noconfigdirs gprof cvs"
  437.     ;;
  438.   powerpc*-*-winnt* | powerpc*-*-pe*)
  439.     noconfigdirs="$noconfigdirs ld gdb"
  440.     ;;
  441.   rs6000-*-lynxos*)
  442.     # The CVS server code doesn't work on the RS/6000
  443.     # Newlib makes problems for libg++ in crosses.
  444.     noconfigdirs="$noconfigdirs target-newlib gprof cvs"
  445.     ;;
  446.   rs6000-*-*)
  447.     noconfigdirs="$noconfigdirs gprof"
  448.     ;;
  449.   m68k-*-netbsd*)
  450.     noconfigdirs="$noconfigdirs gdb"
  451.     ;;
  452.   m68k-apollo-*)
  453.     noconfigdirs="$noconfigdirs ld binutils gprof"
  454.     ;;
  455.   mips*-*-irix5*)
  456.     # The GNU linker does not support shared libraries.
  457.     # emacs is emacs 18, which does not work on Irix 5 (emacs19 does work)
  458.     noconfigdirs="$noconfigdirs ld gprof emacs"
  459.     ;;
  460.   mips*-dec-bsd*)
  461.     noconfigdirs="$noconfigdirs gprof"
  462.     ;;
  463.   mips*-*-bsd*)
  464.     noconfigdirs="$noconfigdirs gprof"
  465.     ;;
  466.   mips*-*-*)
  467.     noconfigdirs="$noconfigdirs gprof"
  468.     ;;
  469.   romp-*-*)
  470.     noconfigdirs="$noconfigdirs bfd binutils ld gas opcodes"
  471.     ;;
  472.   sh-*-*)
  473.     case "${host}" in
  474.       i[345]86-*-vsta) ;; # don't add gprof back in
  475.       i[345]86-*-go32) ;; # don't add gprof back in
  476.       *) skipdirs=`/bin/echo " ${skipdirs} " | sed -e 's/ gprof / /'` ;;
  477.     esac
  478.     ;;
  479.   sparc-*-sunos4*)
  480.     if [ x${is_cross_compiler} != xno ] ; then
  481.            noconfigdirs="$noconfigdirs gdb gdbtest target-newlib"
  482.     else
  483.            use_gnu_ld=no
  484.     fi
  485.     ;;
  486.   v810-*-*)
  487.     noconfigdirs="$noconfigdirs bfd binutils gas gcc gdb ld target-libg++ target-libstdc++ opcodes"
  488.     ;;
  489.   vax-*-vms)
  490.     noconfigdirs="$noconfigdirs bfd binutils gdb ld target-newlib opcodes"
  491.     ;;
  492.   vax-*-*)
  493.     noconfigdirs="$noconfigdirs target-newlib"
  494.     ;;
  495.   *-*-lynxos*)
  496.      # Newlib makes problems for libg++ in crosses.
  497.      noconfigdirs="$noconfigdirs target-newlib"
  498.      ;;    
  499. esac
  500.  
  501. # If we are building a Canadian Cross, discard tools that can not be built
  502. # using a cross compiler.  FIXME: These tools should be fixed.
  503. if [ "${build}" != "${host}" ]; then
  504.   noconfigdirs="$noconfigdirs expect dejagnu make texinfo diff"
  505. fi
  506.  
  507. # Remove the entries in $skipdirs and $noconfigdirs from $configdirs and
  508. # $target_configdirs.
  509. # If we have the source for $noconfigdirs entries, add them to $notsupp.
  510.  
  511. notsupp=""
  512. for dir in . $skipdirs $noconfigdirs ; do
  513.   dirname=`/bin/echo $dir | sed -e s/target-//g`
  514.   if [ $dir != . ]  && /bin/echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  515.     configdirs=`/bin/echo " ${configdirs} " | sed -e "s/ ${dir} / /"`
  516.     if [ -r $srcdir/$dirname/configure ] \
  517.     || [ -r $srcdir/$dirname/configure.in ]; then
  518.       if /bin/echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  519.     true
  520.       else
  521.     notsupp="$notsupp $dir"
  522.       fi
  523.     fi
  524.   fi
  525.   if [ $dir != . ]  && /bin/echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  526.     target_configdirs=`/bin/echo " ${target_configdirs} " | sed -e "s/ ${dir} / /"`
  527.     if [ -r $srcdir/$dirname/configure ] \
  528.     || [ -r $srcdir/$dirname/configure.in ]; then
  529.       if /bin/echo " ${skipdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  530.     true
  531.       else
  532.     notsupp="$notsupp $dir"
  533.       fi
  534.     fi
  535.   fi
  536. done
  537.  
  538. # Sometimes the tools are distributed with libiberty but with no other
  539. # libraries.  In that case, we don't want to build target-libiberty.
  540. if [ -n "${target_configdirs}" ]; then
  541.   others=
  542.   for i in `/bin/echo ${target_configdirs} | sed -e s/target-//g` ; do
  543.     if [ "$i" != "libiberty" ]; then
  544.       if [ -r $srcdir/$i/configure ] || [ -r $srcdir/$i/configure.in ]; then
  545.     others=yes;
  546.     break;
  547.       fi
  548.     fi
  549.   done
  550.   if [ -z "${others}" ]; then
  551.     target_configdirs=
  552.   fi
  553. fi
  554.  
  555. # Deconfigure all subdirectories, in case we are changing the
  556. # configuration from one where a subdirectory is supported to one where it
  557. # is not.
  558. if [ -z "${norecursion}" -a -n "${configdirs}" ]; then
  559.   for i in `/bin/echo ${configdirs} | sed -e s/target-//g` ; do
  560.     rm -f $i/Makefile
  561.   done
  562. fi
  563. if [ -z "${norecursion}" -a -n "${target_configdirs}" ]; then
  564.   for i in `/bin/echo ${target_configdirs} | sed -e s/target-//` ; do
  565.     rm -f ${target_subdir}/$i/Makefile
  566.   done
  567. fi
  568.  
  569. # Produce a warning message for the subdirs we can't configure.
  570. # This isn't especially interesting in the Cygnus tree, but in the individual
  571. # FSF releases, it's important to let people know when their machine isn't
  572. # supported by the one or two programs in a package.
  573.  
  574. if [ -n "${notsupp}" ] && [ -z "${norecursion}" ]; then
  575.   # If $appdirs is non-empty, at least one of those directories must still
  576.   # be configured, or we error out.  (E.g., if the gas release supports a
  577.   # specified target in some subdirs but not the gas subdir, we shouldn't
  578.   # pretend that all is well.)
  579.   if [ -n "$appdirs" ]; then
  580.     for dir in $appdirs ; do
  581.       if [ -r $dir/Makefile.in ]; then
  582.     if /bin/echo " ${configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  583.       appdirs=""
  584.       break
  585.     fi
  586.     if /bin/echo " ${target_configdirs} " | grep " ${dir} " >/dev/null 2>&1; then
  587.       appdirs=""
  588.       break
  589.     fi
  590.       fi
  591.     done
  592.     if [ -n "$appdirs" ]; then
  593.       echo "*** This configuration is not supported by this package." 1>&2
  594.       exit 1
  595.     fi
  596.   fi
  597.   # Okay, some application will build, or we don't care to check.  Still
  598.   # notify of subdirs not getting built.
  599.   echo "*** This configuration is not supported in the following subdirectories:" 1>&2
  600.   echo "    ${notsupp}" 1>&2
  601.   echo "    (Any other directories should still work fine.)" 1>&2
  602. fi
  603.  
  604. # Set with_gnu_as and with_gnu_ld as appropriate.
  605. #
  606. # This is done by determining whether or not the appropriate directory
  607. # is available, and by checking whether or not specific configurations
  608. # have requested that this magic not happen.
  609. # The command line options always override the explicit settings in 
  610. # configure.in, and the settings in configure.in override this magic.
  611. #
  612. # If the default for a toolchain is to use GNU as and ld, and you don't 
  613. # want to do that, then you should use the --without-gnu-as and
  614. # --without-gnu-ld options for the configure script.
  615.  
  616. if [ x${use_gnu_as} = x ] ; then
  617.   if [ x${with_gnu_as} != xno ] && /bin/echo " ${configdirs} " | grep " ${gasdir} " > /dev/null 2>&1 && [ -d ${srcdir}/${gasdir} ] ; then
  618.     with_gnu_as=yes
  619.     withoptions="$withoptions --with-gnu-as"
  620.   fi
  621. fi
  622.  
  623. if [ x${use_gnu_ld} = x ] ; then
  624.   if [ x${with_gnu_ld} != xno ] && /bin/echo " ${configdirs} " | grep " ld " > /dev/null 2>&1 && [ -d ${srcdir}/ld ] ; then
  625.     with_gnu_ld=yes
  626.     withoptions="$withoptions --with-gnu-ld"
  627.   fi
  628. fi
  629.  
  630. if [ x${enable_shared} = xyes ]; then
  631.   case "${target}" in
  632.     hppa*)        target_makefile_frag=config/mt-papic ;;
  633.     i[345]86-*)        target_makefile_frag=config/mt-x86pic ;;
  634.     *)            target_makefile_frag=config/mt-${target_cpu}pic ;;
  635.   esac
  636. fi
  637.  
  638. # post-target:
  639.  
  640. # Record target_configdirs and the configure arguments in Makefile.
  641. target_configdirs=`/bin/echo "${target_configdirs}" | sed -e 's/target-//g'`
  642. targargs=`/bin/echo "${arguments}" | \
  643.     sed -e 's/--*norecursion//' \
  644.         -e 's/--*cache[a-z-]*=[^     ]*//' \
  645.         -e 's/--*cache[a-z-]*[     ][     ]*[^     ]*//'`
  646. sed -e "s:^TARGET_CONFIGDIRS[     ]*=.*$:TARGET_CONFIGDIRS = ${target_configdirs}:" \
  647.     -e "s%^CONFIG_ARGUMENTS[     ]*=.*$%CONFIG_ARGUMENTS = ${targargs}%" \
  648.     -e "s%^TARGET_SUBDIR[     ]*=.*$%TARGET_SUBDIR = ${target_subdir}%" \
  649.        Makefile > Makefile.tem
  650. rm -f Makefile
  651. mv -f Makefile.tem Makefile
  652.  
  653. #
  654. # Local Variables:
  655. # fill-column: 131
  656. # End:
  657. #
  658.