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

  1. # config.bfd
  2. # Convert a canonical host type into a BFD host type.
  3. # Set shell variable targ to canonical target name, and run
  4. # using ``. config.bfd''.
  5. # Sets the following shell variables:
  6. #  targ_defvec        Default vector for this target
  7. #  targ_selvecs        Vectors to build for this target
  8. #  targ_archs        Architectures for this target
  9. #  targ_cflags        $(CFLAGS) for this target (FIXME: pretty bogus)
  10. #  targ_undercore    Whether underscores are used: yes or no
  11.  
  12. # The binutils c++filt program wants to know whether underscores are
  13. # stripped or not.  That is why we set targ_underscore.  c++filt uses
  14. # this information to choose a default.  This information is
  15. # duplicated in the symbol_leading_char field of the BFD target
  16. # vector, but c++filt does not deal with object files and is not
  17. # linked against libbfd.a.  It is not terribly important that c++filt
  18. # get this right; it is just convenient.
  19.  
  20. targ_defvec=
  21. targ_selvecs=
  22. targ_cflags=
  23. targ_underscore=no
  24.  
  25. targ_cpu=`echo $targ | sed 's/^\(.*\)-\(.*\)-\(.*\)$/\1/'`
  26. case "${targ_cpu}" in
  27. arm*)    targ_archs=bfd_arm_arch ;;
  28. hppa*)    targ_archs=bfd_hppa_arch ;;
  29. i[345]86) targ_archs=bfd_i386_arch ;;
  30. m68*)    targ_archs=bfd_m68k_arch ;;
  31. m88*)    targ_archs=bfd_m88k_arch ;;
  32. mips*)    targ_archs=bfd_mips_arch ;;
  33. powerpc*) targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
  34. rs6000)    targ_archs="bfd_rs6000_arch bfd_powerpc_arch" ;;
  35. sparc*)    targ_archs=bfd_sparc_arch ;;
  36. z8k*)    targ_archs=bfd_z8k_arch ;;
  37. *)    targ_archs=bfd_${targ_cpu}_arch ;;
  38. esac
  39.  
  40. # WHEN ADDING ENTRIES TO THIS MATRIX:
  41. #  Make sure that the left side always has two dashes.  Otherwise you
  42. #  can get spurious matches.  Even for unambiguous cases, do this as a
  43. #  convention, else the table becomes a real mess to understand and maintain.
  44.  
  45. case "${targ}" in
  46.   alpha-*-netware*)
  47.     targ_defvec=ecoffalpha_little_vec
  48.     targ_selvecs=nlm32_alpha_vec
  49.     ;;
  50.   alpha-*-linuxecoff*)
  51.     targ_defvec=ecoffalpha_little_vec
  52.     targ_selvecs=bfd_elf64_alpha_vec
  53.     ;;
  54.   alpha-*-linux* | alpha-*-elf*)
  55.     targ_defvec=bfd_elf64_alpha_vec
  56.     targ_selvecs=ecoffalpha_little_vec
  57.     ;;
  58.   alpha-*-*vms*)
  59.     targ_defvec=evax_alpha_vec
  60.     ;;
  61.   alpha-*-*)
  62.     targ_defvec=ecoffalpha_little_vec
  63.     ;;
  64.  
  65.   arm-*-riscix*)
  66.     targ_defvec=riscix_vec
  67.     ;;
  68.   arm-*-pe*)
  69.     targ_defvec=armpe_little_vec
  70.     targ_selvecs="armpe_little_vec armpe_big_vec armpei_little_vec armpei_big_vec"
  71.     targ_underscore=yes
  72.     ;;
  73.   arm-*-aout | armel-*-aout)    
  74.     targ_defvec=aout_arm_little_vec
  75.     targ_selvecs=aout_arm_big_vec
  76.     ;;
  77.   armeb-*-aout)
  78.     targ_defvec=aout_arm_big_vec
  79.     targ_selvecs=aout_arm_little_vec
  80.     ;;
  81.   arm-*-coff)
  82.     targ_defvec=armcoff_little_vec
  83.     targ_selvecs=armcoff_big_vec
  84.     targ_underscore=yes
  85.     ;;
  86.  
  87.   a29k-*-ebmon* | a29k-*-udi* | a29k-*-coff* | a29k-*-sym1* | \
  88.   a29k-*-vxworks* | a29k-*-sysv*)
  89.     targ_defvec=a29kcoff_big_vec
  90.     targ_selvecs=sunos_big_vec
  91.     targ_underscore=yes
  92.     ;;
  93.   a29k-*-aout* | a29k-*-bsd* | a29k-*-vsta*)
  94.     targ_defvec=sunos_big_vec
  95.     targ_underscore=yes
  96.     ;;
  97.  
  98.   h8300*-*-*)
  99.     targ_defvec=h8300coff_vec
  100.     targ_underscore=yes
  101.     ;;
  102.  
  103.   h8500-*-*)
  104.     targ_defvec=h8500coff_vec
  105.     targ_underscore=yes
  106.     ;;
  107.  
  108.   sh-*-*)
  109.     targ_defvec=shcoff_vec
  110.     targ_selvecs="shcoff_vec shlcoff_vec"
  111.     targ_underscore=yes
  112.     ;;
  113.  
  114.   hppa*-*-*elf* | hppa*-*-lites* | hppa*-*-sysv4*)
  115.     targ_defvec=bfd_elf32_hppa_vec
  116.     ;;
  117.   hppa*-*-bsd*)
  118.     targ_defvec=som_vec
  119.     targ_selvecs=bfd_elf32_hppa_vec
  120.     ;;
  121.   hppa*-*-hpux* | hppa*-*-hiux*)
  122.     targ_defvec=som_vec
  123.     ;;
  124.   hppa*-*-osf*)
  125.     targ_defvec=som_vec
  126.     targ_selvecs=bfd_elf32_hppa_vec
  127.     ;;
  128.  
  129.   i[345]86-*-sysv4* | i[345]86-*-unixware | i[345]86-*-solaris2* | \
  130.   i[345]86-*-elf | i[345]86-*-sco*elf* | i[345]86-*-freebsdelf*)
  131.     targ_defvec=bfd_elf32_i386_vec
  132.     targ_selvecs=i386coff_vec
  133.     ;;
  134.   i[345]86-*-sysv* | i[345]86-*-isc* | i[345]86-*-sco* | i[345]86-*-coff | \
  135.   i[345]86-*-aix* | i[345]86-*-go32* | i[345]86*-*-rtems*)
  136.     targ_defvec=i386coff_vec
  137.     ;;
  138.   i[345]86-sequent-bsd*)
  139.     targ_defvec=i386dynix_vec
  140.     targ_underscore=yes
  141.     ;;
  142.   i[345]86-*-bsd*)
  143.     targ_defvec=i386bsd_vec
  144.     targ_underscore=yes
  145.     ;;
  146.   i[345]86-*-freebsd*)
  147.     targ_defvec=i386freebsd_vec
  148.     targ_selvecs=i386bsd_vec
  149.     targ_underscore=yes
  150.     ;;
  151.   i[345]86-*-netbsd*)
  152.     targ_defvec=i386netbsd_vec
  153.     targ_selvecs=i386bsd_vec
  154.     targ_underscore=yes
  155.     ;;
  156.   i[345]86-*-netware*)
  157.     targ_defvec=bfd_elf32_i386_vec
  158.     targ_selvecs="nlm32_i386_vec i386coff_vec i386aout_vec"
  159.     ;;
  160.   i[345]86-*-linuxaout*)
  161.     targ_defvec=i386linux_vec
  162.     targ_selvecs=bfd_elf32_i386_vec
  163.     targ_underscore=yes
  164.     ;;
  165.   i[345]86-*-linux*)
  166.     targ_defvec=bfd_elf32_i386_vec
  167.     targ_selvecs=i386linux_vec
  168.     targ_underscore=yes
  169.     ;;
  170.   i[345]86-*-lynxos*)
  171.     targ_defvec=i386lynx_coff_vec
  172.     targ_selvecs=i386lynx_aout_vec
  173.     ;;
  174.   i[345]86-*-gnu*)
  175.     targ_defvec=bfd_elf32_i386_vec
  176.     targ_selvecs=i386mach3_vec
  177.     targ_cflags=-DSTAT_FOR_EXEC
  178.     targ_underscore=yes
  179.     ;;
  180.   i[345]86-*-mach* | i[345]86-*-osf1mk*)
  181.     targ_defvec=i386mach3_vec
  182.     targ_cflags=-DSTAT_FOR_EXEC
  183.     targ_underscore=yes
  184.     ;;
  185.   i[345]86-*-os9k)
  186.     targ_defvec=i386os9k_vec
  187.     ;;
  188.   i[345]86-*-msdos*)
  189.     targ_defvec=i386aout_vec
  190.     targ_selvecs=i386msdos_vec
  191.     ;;
  192.   i[345]86-*-moss*)
  193.     targ_defvec=bfd_elf32_i386_vec
  194.     targ_selvecs="i386msdos_vec i386aout_vec"
  195.     ;;
  196.   i[345]86-*-cygwin32 | i[345]86-*-winnt | i[345]86-*-pe)
  197.     targ_defvec=i386pe_vec
  198.     targ_selvecs="i386pe_vec i386pei_vec"
  199.     ;;
  200.   i[345]86-none-*)
  201.     targ_defvec=i386coff_vec
  202.     ;;
  203.   i[345]86-*-aout* | i[345]86*-*-vsta*)
  204.     targ_defvec=i386aout_vec
  205.     ;;
  206.  
  207.   i860-*-mach3* | i860-*-osf1* | i860-*-coff*)
  208.     targ_defvec=i860coff_vec
  209.     ;;
  210.   i860-*-sysv4* | i860-*-elf*)
  211.     targ_defvec=bfd_elf32_i860_vec
  212.     ;;
  213.  
  214.   i960-*-vxworks4* | i960-*-vxworks5.0)
  215.     targ_defvec=b_out_vec_little_host
  216.     targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
  217.     targ_underscore=yes
  218.     ;;
  219.   i960-*-vxworks5.* | i960-*-coff* | i960-*-sysv* | i960-*-rtems*)
  220.     targ_defvec=icoff_little_vec
  221.     targ_selvecs="icoff_big_vec b_out_vec_little_host b_out_vec_big_host ieee_vec"
  222.     targ_underscore=yes
  223.     ;;
  224.   i960-*-vxworks* | i960-*-aout* | i960-*-bout* | i960-*-nindy*)
  225.     targ_defvec=b_out_vec_little_host
  226.     targ_selvecs="b_out_vec_big_host icoff_little_vec icoff_big_vec ieee_vec"
  227.     targ_underscore=yes
  228.     ;;
  229.  
  230.   m68*-apollo-*)
  231.     targ_defvec=apollocoff_vec
  232.     ;;
  233.   m68*-bull-sysv*)
  234.     targ_defvec=m68kcoffun_vec
  235.     targ_underscore=yes
  236.     ;;
  237.   m68*-*-amigaos*)
  238.     targ_defvec=amiga_vec
  239.     targ_selvecs=aout_amiga_vec
  240.     ;;
  241.   m68*-hp-bsd*)
  242.     targ_defvec=hp300bsd_vec
  243.     targ_underscore=yes
  244.     ;;
  245.   m68*-*-aout*)
  246.     targ_defvec=aout0_big_vec
  247.     # We include cisco_core_vec here, rather than making a separate cisco
  248.     # configuration, so that cisco-core.c gets routinely tested at
  249.     # least for compilation.
  250.     targ_selvecs="cisco_core_vec ieee_vec"
  251.     targ_underscore=yes
  252.     ;;
  253.   m68*-*-elf* | m68*-*-sysv4*)
  254.     targ_defvec=bfd_elf32_m68k_vec
  255.     targ_selvecs="m68kcoff_vec ieee_vec"
  256.     ;;
  257.   m68*-*-coff* | m68*-*-sysv* | m68*-*-rtems*)
  258.     targ_defvec=m68kcoff_vec
  259.     targ_selvecs="m68kcoff_vec versados_vec ieee_vec"
  260.     ;;
  261.   m68*-*-hpux*)
  262.     targ_defvec=hp300hpux_vec
  263.     targ_underscore=yes
  264.     ;;
  265.   m68*-*-linuxaout*)
  266.     targ_defvec=m68klinux_vec
  267.     targ_selvecs=bfd_elf32_m68k_vec
  268.     targ_underscore=yes
  269.     ;;
  270.   m68*-*-linux*)
  271.     targ_defvec=bfd_elf32_m68k_vec
  272.     targ_selvecs=m68klinux_vec
  273.     ;;
  274.   m68*-*-lynxos*)
  275.     targ_defvec=m68klynx_coff_vec
  276.     targ_selvecs=m68klynx_aout_vec
  277.     ;;
  278.   m68*-hp*-netbsd*)
  279.     targ_defvec=m68k4knetbsd_vec
  280.     targ_selvecs="m68knetbsd_vec hp300bsd_vec sunos_big_vec"
  281.     targ_underscore=yes
  282.     ;;
  283.   m68*-*-netbsd*)
  284.     targ_defvec=m68knetbsd_vec
  285.     targ_selvecs="m68k4knetbsd_vec hp300bsd_vec sunos_big_vec"
  286.     targ_underscore=yes
  287.     ;;
  288.   m68*-*-sunos* | m68*-*-os68k* | m68*-*-vxworks* | m68*-netx-* | \
  289.   m68*-*-bsd* | m68*-*-vsta*)
  290.     targ_defvec=sunos_big_vec
  291.     targ_underscore=yes
  292.     ;;
  293.   m68*-ericsson-*)
  294.     targ_defvec=sunos_big_vec
  295.     targ_selvecs="m68kcoff_vec tekhex_vec"
  296.     targ_underscore=yes
  297.     ;;
  298.   m68*-cbm-amix)
  299.     targ_defvec=bfd_elf32_m68k_vec
  300.     targ_selvecs=m68kcoff_vec
  301.     ;;
  302.   m68*-apple-aux*)
  303.     targ_defvec=m68kaux_coff_vec
  304.     ;;
  305.   m68*-*-psos*)
  306.     targ_defvec=bfd_elf32_m68k_vec
  307.     targ_selvecs=ieee_vec
  308.     targ_underscore=yes
  309.     ;;
  310.  
  311.   m88*-harris-cxux* | m88*-*-dgux* | m88*-*-sysv4*)
  312.     targ_defvec=bfd_elf32_m88k_vec
  313.     targ_selvecs=m88kbcs_vec
  314.     ;;
  315.   m88*-*-mach3*)
  316.     targ_defvec=m88kmach3_vec
  317.     targ_cflags=-DSTAT_FOR_EXEC
  318.     ;;
  319.   m88*-*-*)
  320.     targ_defvec=m88kbcs_vec
  321.     targ_underscore=yes
  322.     ;;
  323.  
  324.   mips*-big-*)
  325.     targ_defvec=ecoff_big_vec
  326.     targ_selvecs=ecoff_little_vec
  327.     ;;
  328.   mips-dec-netbsd*)
  329.     targ_defvec=bfd_elf32_littlemips_vec
  330.     targ_selvecs=bfd_elf32_bigmips_vec
  331.     ;;
  332.   mips*-dec-bsd*)
  333.     targ_defvec=aout_mips_little_vec
  334.     targ_underscore=yes
  335.     ;;
  336.   mips*-dec-mach3*)
  337.     targ_defvec=aout_mips_little_vec
  338.     targ_cflags=-DSTAT_FOR_EXEC
  339.     ;;
  340.   mips*-dec-* | mips*el-*-ecoff*)
  341.     targ_defvec=ecoff_little_vec
  342.     targ_selvecs=ecoff_big_vec
  343.     ;;
  344.   mips*-*-ecoff*)
  345.     targ_defvec=ecoff_big_vec
  346.     targ_selvecs=ecoff_little_vec
  347.     ;;
  348.   mips*-*-irix5*)
  349.     targ_defvec=bfd_elf32_bigmips_vec
  350.     targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
  351.     ;;
  352.   mips*-sgi-* | mips*-*-bsd*)
  353.     targ_defvec=ecoff_big_vec
  354.     targ_selvecs=ecoff_little_vec
  355.     ;;
  356.   mips*-*-mach3*)
  357.     targ_defvec=aout_mips_little_vec
  358.     targ_cflags=-DSTAT_FOR_EXEC
  359.     ;;
  360.   mips*-*-sysv4*)
  361.     targ_defvec=bfd_elf32_bigmips_vec
  362.     targ_selvecs="bfd_elf32_littlemips_vec ecoff_big_vec ecoff_little_vec"
  363.     ;;
  364.   mips*-*-sysv* | mips*-*-riscos*)
  365.     targ_defvec=ecoff_big_vec
  366.     targ_selvecs=ecoff_little_vec
  367.     ;;
  368.   mips*el-*-elf*)
  369.     targ_defvec=bfd_elf32_littlemips_vec
  370.     targ_selvecs="bfd_elf32_bigmips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
  371.     ;;
  372.   mips*-*-elf*)
  373.     targ_defvec=bfd_elf32_bigmips_vec
  374.     targ_selvecs="bfd_elf32_littlemips_vec bfd_elf64_bigmips_vec bfd_elf64_littlemips_vec"
  375.     ;;
  376.  
  377.   ns32k-pc532-mach* | ns32k-pc532-ux*)
  378.     targ_defvec=pc532machaout_vec
  379.     targ_underscore=yes
  380.     ;;
  381.   ns32k-*-netbsd* | ns32k-*-lites*)
  382.     targ_defvec=pc532netbsd_vec
  383.     targ_underscore=yes
  384.     ;;
  385.  
  386.   powerpc-*-aix*)
  387.     targ_defvec=rs6000coff_vec
  388.     ;;
  389.   powerpc-*-amigaoshunk*)
  390.     targ_defvec=amiga_vec
  391.     targ_selvecs="bfd_elf32_powerpc_vec bfd_elf32_powerpcle_vec aout_amiga_vec"
  392.     ;;
  393.   powerpc-*-amigaos*)
  394.     targ_defvec=bfd_elf32_powerpc_vec
  395.     targ_selvecs="bfd_elf32_powerpcle_vec"
  396.     ;;
  397.   powerpc-*-elf* | powerpc-*-sysv4* | powerpc-*-eabi* | \
  398.   powerpc-*-solaris2* | powerpc-*-linux* | powerpc-*-rtems*)
  399.     targ_defvec=bfd_elf32_powerpc_vec
  400.     targ_selvecs="rs6000coff_vec bfd_elf32_powerpcle_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
  401.     ;;
  402.   powerpc-*-macos* | powerpc-*-mpw*)
  403.     targ_defvec=pmac_xcoff_vec
  404.     ;;
  405.   powerpc-*-netware*)
  406.     targ_defvec=bfd_elf32_powerpc_vec
  407.     targ_selvecs="nlm32_powerpc_vec rs6000coff_vec"
  408.     ;;
  409.   powerpcle-*-elf* | powerpcle-*-sysv4* | powerpcle-*-eabi* | \
  410.   powerpcle-*-solaris2* | powerpcle-*-linux*)
  411.     targ_defvec=bfd_elf32_powerpcle_vec
  412.     targ_selvecs="rs6000coff_vec bfd_elf32_powerpc_vec bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec ppcboot_vec"
  413.     ;;
  414.  
  415.   powerpcle-*-pe | powerpcle-*-winnt* | powerpcle-*-cygwin32)
  416.     targ_defvec=bfd_powerpcle_pe_vec
  417.     targ_selvecs="bfd_powerpcle_pei_vec bfd_powerpc_pei_vec bfd_powerpcle_pe_vec bfd_powerpc_pe_vec"
  418.     ;;
  419.  
  420.   rs6000-*-*)
  421.     targ_defvec=rs6000coff_vec
  422.     ;;
  423.  
  424.   sparc-*-lynxos*)
  425.     targ_defvec=sparclynx_coff_vec
  426.     targ_selvecs=sparclynx_aout_vec
  427.     ;;
  428.   sparc-*-netbsd*)
  429.     targ_defvec=sparcnetbsd_vec
  430.     targ_underscore=yes
  431.     ;;
  432.   sparc-*-elf* | sparc-*-sysv4* | sparc-*-solaris2*)
  433.     targ_defvec=bfd_elf32_sparc_vec
  434.     targ_selvecs=sunos_big_vec
  435.     ;;
  436.   sparc64-*-aout*)
  437.     targ_defvec=sunos_big_vec
  438.     targ_underscore=yes
  439.     ;;
  440.   sparc64-*-elf*)
  441.     targ_defvec=bfd_elf64_sparc_vec
  442.     targ_selvecs=bfd_elf32_sparc_vec
  443.     ;;    
  444.   sparc-*-netware*)
  445.     targ_defvec=bfd_elf32_sparc_vec
  446.     targ_selvecs="nlm32_sparc_vec sunos_big_vec"
  447.     ;;
  448.   sparc*-*-coff*)
  449.     targ_defvec=sparccoff_vec
  450.     ;;
  451.   sparc*-*-* | sparc*-*-rtems*)
  452.     targ_defvec=sunos_big_vec
  453.     targ_underscore=yes
  454.     ;;
  455.  
  456.   tahoe-*-*)
  457.     targ_defvec=host_aout_vec
  458.     targ_underscore=yes
  459.     ;;
  460.  
  461.   vax-*-vms*)
  462.     echo 1>&2 "*** BFD does not support target ${targ}."
  463.     echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
  464.     exit 1
  465.     ;;
  466.   vax-*-*)
  467.     targ_defvec=host_aout_vec
  468.     targ_underscore=yes
  469.     ;;
  470.  
  471.   we32k-*-*)
  472.     targ_defvec=we32kcoff_vec
  473.     ;;
  474.  
  475.   w65-*-*)
  476.     targ_defvec=w65_vec
  477.     ;;
  478.  
  479.   z8k*-*-*)
  480.     targ_defvec=z8kcoff_vec
  481.     targ_underscore=yes
  482.     ;;
  483.  
  484.   *-*-ieee*)
  485.     targ_defvec=ieee_vec
  486.     ;;
  487.  
  488.   *-adobe-*)
  489.     targ_defvec=a_aout_adobe_vec
  490.     targ_underscore=yes
  491.     ;;
  492.  
  493.   *-sony-*)
  494.     targ_defvec=newsos3_vec
  495.     targ_underscore=yes
  496.     ;;
  497.  
  498.   *-tandem-*)
  499.     targ_defvec=m68kcoff_vec
  500.     targ_selvecs=ieee_vec
  501.     ;;
  502.  
  503.   *)
  504.     echo 1>&2 "*** BFD does not support target ${targ}."
  505.     echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
  506.     exit 1
  507.     ;;
  508. esac
  509.