Commit | Line | Data |
---|---|---|
02757e59 SC |
1 | # This file is a shell script fragment that supplies the information |
2 | # necessary to tailor a template configure script into the configure | |
3 | # script appropriate for this directory. For more information, check | |
4 | # any existing configure script. | |
5 | ||
6 | srctrigger=ldmain.c | |
7 | srcname="linker" | |
818a192a | 8 | target_dependent=true |
02757e59 SC |
9 | |
10 | # per-host: | |
11 | ||
8ddef552 DM |
12 | . ${srcdir}/../bfd/configure.host |
13 | ||
8a60817c | 14 | host_makefile_frag= |
ab57b174 | 15 | |
9d1fe8a4 SC |
16 | if [ -f ${srcdir}/config/${my_host}.mh ] ; then |
17 | host_makefile_frag=config/${my_host}.mh | |
8a60817c | 18 | fi |
02757e59 SC |
19 | |
20 | # per-target: | |
21 | ||
1c4b3cda | 22 | # Canonicalize the secondary target names. |
cdf71377 KR |
23 | if [ -n "$enable_targets" ]; then |
24 | for targ in `echo $enable_targets | sed 's/,/ /g'` | |
1c4b3cda ILT |
25 | do |
26 | result=`$configsub $targ 2>/dev/null` | |
27 | if [ -n "$result" ]; then | |
28 | canon_targets="$canon_targets $result" | |
29 | else | |
30 | # Allow targets that config.sub doesn't recognize, like "all". | |
31 | canon_targets="$canon_targets $targ" | |
32 | fi | |
33 | done | |
34 | fi | |
35 | ||
36 | all_targets=false | |
37 | ||
38 | for targ in $target $canon_targets | |
39 | do | |
40 | ||
41 | case "${targ}" in | |
42 | ||
43 | sparc-sun-sunos4*) ld_target=sun4 ;; | |
028f8872 | 44 | sparclite*-*-coff) ld_target=coff-sparc ;; |
1c4b3cda | 45 | sparclite*-fujitsu-*) ld_target=sun4 ;; |
1c4b3cda | 46 | sparc*-*-aout) ld_target=sun4 ;; |
d05ac46b | 47 | sparc*-*-coff) ld_target=coff-sparc ;; |
5cad5873 ILT |
48 | sparc64-*-elf*) ld_target=sparc64-elf ;; |
49 | sparc64*) ld_target=sun4 ;; | |
1c4b3cda | 50 | sparc*-*-elf) ld_target=sun4sol2 ;; |
7b95fe96 | 51 | sparc*-*-lynxos*) ld_target=sparc-lynx ;; |
1c4b3cda | 52 | sparc*-*-solaris2*) ld_target=sun4sol2 ;; |
d05ac46b | 53 | sparc*-wrs-vxworks*) ld_target=sun4 ;; |
b4a79a16 | 54 | sparc*-*-netware) ld_target=sun4sol2 ;; |
97dc4cf8 KR |
55 | i960-wrs-vxworks5.0*) ld_target=i960 ;; |
56 | i960-wrs-vxworks5*) ld_target=i960coff ;; | |
1c4b3cda | 57 | i960-wrs-vxworks*) ld_target=i960 ;; |
6d445436 | 58 | i960-*-coff) ld_target=i960coff ;; |
1c4b3cda | 59 | i960-intel-nindy) ld_target=i960 ;; |
d05ac46b KR |
60 | m68*-sun-sunos[34]*) ld_target=sun3 ;; |
61 | m68*-wrs-vxworks*) ld_target=vxworks68 ;; | |
62 | m68*-ericsson-ose) ld_target=ose68 ;; | |
1c4b3cda | 63 | *-tandem-none) ld_target=st2000 ;; # FIXME needs better name |
6d445436 ILT |
64 | i[345]86-*-vsta) ld_target=vsta ;; |
65 | i[345]86-*-go32) ld_target=i386-go32 ;; | |
66 | i[345]86-*-aix*) ld_target=i386-coff ;; | |
67 | i[345]86-*-sco*) ld_target=i386-coff ;; | |
68 | i[345]86-*-lynxos*) ld_target=i386-lynx ;; | |
69 | i[345]86-*-coff) ld_target=i386-coff ;; | |
70 | i[345]86-*-bsd) ld_target=i386-bsd ;; | |
71 | i[345]86-*-bsd386) ld_target=i386-bsd ;; | |
72 | i[345]86-*-aout) ld_target=i386-aout ;; | |
73 | i[345]86-*-linux) ld_target=i386-linux ;; | |
74 | i[345]86-*-sysv4*) ld_target=i386-elf ;; | |
75 | i[345]86-*-unixware) ld_target=i386-elf ;; | |
76 | i[345]86-*-netware) ld_target=i386-elf ;; | |
77 | i[345]86-*-elf*) ld_target=i386-elf ;; | |
78 | i[345]86-*-sysv*) ld_target=i386-coff ;; | |
79 | i[345]86-*-mach*) ld_target=i386-mach ;; | |
80 | i[345]86-*-gnu*) ld_target=i386-mach ;; | |
1c4b3cda ILT |
81 | m8*-*-*) ld_target=m88k-bcs ;; |
82 | a29k-*-udi) ld_target=sa29200 ;; | |
83 | a29k-*-ebmon) ld_target=ebmon29k ;; | |
84 | a29k-*-*) ld_target=coff-a29k ;; | |
85 | h8300-*-hms) ld_target=coff-h8300 ;; | |
97dc4cf8 | 86 | h8300h-*-hms) ld_target=cf-h8300h ;; |
1c4b3cda ILT |
87 | h8500-*-hms) ld_target=coff-h8500 ;; |
88 | sh-*-*) ld_target=coff-sh ;; | |
89 | m68k-sony-*) ld_target=news ;; | |
90 | m68k-hp-bsd*) ld_target=hp300bsd ;; | |
91 | m68*-*-aout) ld_target=m68k ;; | |
92 | m68*-*-coff) ld_target=m68k-coff ;; | |
93 | m68*-*-hpux) ld_target=hp300hpux ;; | |
94 | m68*-*-lynxos*) ld_target=m68k-lynx ;; | |
95 | m68*-*-*) | |
96 | echo '***' "Unknown m68k target vendor for ld:" ${target_vendor} 1>&2 | |
97 | exit 1 ;; | |
f39a73b1 | 98 | hppa*-*-*elf*) ld_target=hppaelf ;; |
1c4b3cda | 99 | vax-dec-ultrix* | vax-dec-bsd*) ld_target=vax ;; |
7b95fe96 | 100 | mips*-dec-ultrix*) ld_target=mips-lit ;; |
d05ac46b | 101 | mips*-sgi-irix5*) ld_target=mipsb-elf32 ;; |
7b95fe96 | 102 | mips*-sgi-irix*) ld_target=mips-big ;; |
97dc4cf8 | 103 | mips*el-idt-ecoff*) ld_target=mipsl-idt ;; |
7b95fe96 SS |
104 | mips*-idt-ecoff*) ld_target=mips-idt ;; |
105 | mips*-dec-bsd*) ld_target=mipsbsd ;; | |
106 | mips*-*-elf*) ld_target=mipsb-elf32 ;; | |
1c4b3cda | 107 | alpha-*-osf*) ld_target=alpha ;; |
8a432746 | 108 | alpha-*-netware*) ld_target=alpha ;; |
1c4b3cda | 109 | z8k-*-sim | z8k-*-coff) ld_target=z8ksim ;; |
cdf71377 KR |
110 | ns32k-pc532-mach) ld_target=pc532mach ;; |
111 | ns32k-pc532-netbsd*) ld_target=netbsd532 ;; | |
f39a73b1 | 112 | powerpc-*-elf*) ld_target=ppc-elf32 ;; |
f39a73b1 | 113 | powerpc-*-netware*) ld_target=ppc-elf32 ;; |
1c4b3cda ILT |
114 | *-*-aout) ld_target=${target_cpu}-${target_vendor} ;; |
115 | *-*-coff) ld_target=${target_cpu}-${target_vendor} ;; | |
b4a79a16 | 116 | *-*-netware) ld_target=${target_cpu}-elf ;; |
1c4b3cda ILT |
117 | |
118 | all) ld_target=all ;; | |
02757e59 SC |
119 | esac |
120 | ||
1c4b3cda ILT |
121 | if [ "x$ld_target" = "xall" ]; then |
122 | all_targets=true | |
123 | else | |
124 | if [ ! -f ${srcdir}/config/${ld_target}.mt ] ; then | |
125 | echo '***' No file ${srcdir}/config/${ld_target}.mt 1>&2 | |
126 | echo '***' GNU LD does not support target ${ld_target} 1>&2 | |
127 | echo '***' Look in ld/configure.in for supported targets 1>&2 | |
128 | exit 1 | |
129 | fi | |
7f2649bb | 130 | |
1c4b3cda ILT |
131 | if [ "x$targ" = "x$target" ]; then |
132 | target_makefile_frag=${srcdir}/config/${ld_target}.mt | |
133 | else | |
134 | target_extra_frags="$target_extra_frags ${srcdir}/config/${ld_target}.mt" | |
135 | fi | |
136 | fi | |
137 | done | |
138 | ||
139 | # We don't do any links based on the target system, just makefile config. | |
140 | ||
141 | # post-target: | |
142 | ||
143 | rm -f Makefile.tmp Makefile.2 | |
144 | mv Makefile Makefile.tmp | |
145 | ||
146 | if [ x${all_targets} = xfalse ]; then | |
147 | ||
148 | allfrags="$target_makefile_frag $target_extra_frags" | |
149 | ||
150 | # The emulations in all the configured targets. | |
151 | tb=`sed -n ' | |
eb8f714f | 152 | s/EMUL[ ]*=[ ]*\([^ ]*\)/e\1.o/p |
cdf71377 | 153 | s/EMUL_EXTRA.*=[ ]*\([^ ]*\)/e\1.o/p |
1c4b3cda ILT |
154 | ' $allfrags` |
155 | # uniq the list. | |
156 | f="" | |
157 | for i in $tb ; do | |
158 | case " $f " in | |
159 | *" $i "*) ;; | |
160 | *) f="$f $i" ;; | |
161 | esac | |
162 | done | |
163 | tb="$f" | |
164 | ||
165 | echo "EMULATION_OFILES = $tb" >> Makefile.2 | |
166 | ||
167 | else # all_targets is true | |
168 | echo 'EMULATION_OFILES = $(ALL_EMULATIONS)' >> Makefile.2 | |
169 | fi # all_targets is true | |
170 | ||
171 | cat Makefile.tmp >> Makefile.2 | |
172 | rm -f Makefile.tmp | |
173 | mv Makefile.2 Makefile | |
8ddef552 | 174 | |
173a0c3d | 175 | mkdir ldscripts 2>/dev/null |