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

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