]>
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 ILT |
22 | # Canonicalize the secondary target names. |
23 | if [ -n "$with_targets" ]; then | |
24 | for targ in `echo $with_targets | sed 's/,/ /g'` | |
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 ILT |
57 | i960-wrs-vxworks*) ld_target=i960 ;; |
58 | i960-intel-nindy) ld_target=i960 ;; | |
d05ac46b KR |
59 | m68*-sun-sunos[34]*) ld_target=sun3 ;; |
60 | m68*-wrs-vxworks*) ld_target=vxworks68 ;; | |
61 | m68*-ericsson-ose) ld_target=ose68 ;; | |
1c4b3cda | 62 | *-tandem-none) ld_target=st2000 ;; # FIXME needs better name |
8a432746 | 63 | i[34]86-*-vsta) ld_target=vsta ;; |
97dc4cf8 | 64 | i[34]86-*-go32) ld_target=i386-go32 ;; |
1c4b3cda ILT |
65 | i[34]86-*-aix*) ld_target=i386-coff ;; |
66 | i[34]86-*-sco*) ld_target=i386-coff ;; | |
67 | i[34]86-*-lynxos*) ld_target=i386-lynx ;; | |
68 | i[34]86-*-coff) ld_target=i386-coff ;; | |
69 | i[34]86-*-bsd) ld_target=i386-bsd ;; | |
9ad75873 | 70 | i[34]86-*-bsd386) ld_target=i386-bsd ;; |
1c4b3cda ILT |
71 | i[34]86-*-aout) ld_target=i386-aout ;; |
72 | i[34]86-*-linux) ld_target=i386-linux ;; | |
73 | i[34]86-*-sysv4*) ld_target=i386-elf ;; | |
b4a79a16 SEF |
74 | i[34]86-*-unixware) ld_target=i386-elf ;; |
75 | i[34]86-*-netware) ld_target=i386-elf ;; | |
1c4b3cda ILT |
76 | i[34]86-*-elf*) ld_target=i386-elf ;; |
77 | i[34]86-*-sysv*) ld_target=i386-coff ;; | |
b4a79a16 | 78 | i[34]86-*-mach*) ld_target=i386-mach ;; |
97dc4cf8 | 79 | i[34]86-*-gnu*) ld_target=i386-mach ;; |
1c4b3cda ILT |
80 | m8*-*-*) ld_target=m88k-bcs ;; |
81 | a29k-*-udi) ld_target=sa29200 ;; | |
82 | a29k-*-ebmon) ld_target=ebmon29k ;; | |
83 | a29k-*-*) ld_target=coff-a29k ;; | |
84 | h8300-*-hms) ld_target=coff-h8300 ;; | |
97dc4cf8 | 85 | h8300h-*-hms) ld_target=cf-h8300h ;; |
1c4b3cda ILT |
86 | h8500-*-hms) ld_target=coff-h8500 ;; |
87 | sh-*-*) ld_target=coff-sh ;; | |
88 | m68k-sony-*) ld_target=news ;; | |
89 | m68k-hp-bsd*) ld_target=hp300bsd ;; | |
90 | m68*-*-aout) ld_target=m68k ;; | |
91 | m68*-*-coff) ld_target=m68k-coff ;; | |
92 | m68*-*-hpux) ld_target=hp300hpux ;; | |
93 | m68*-*-lynxos*) ld_target=m68k-lynx ;; | |
94 | m68*-*-*) | |
95 | echo '***' "Unknown m68k target vendor for ld:" ${target_vendor} 1>&2 | |
96 | exit 1 ;; | |
f39a73b1 | 97 | hppa*-*-*elf*) ld_target=hppaelf ;; |
1c4b3cda | 98 | vax-dec-ultrix* | vax-dec-bsd*) ld_target=vax ;; |
7b95fe96 | 99 | mips*-dec-ultrix*) ld_target=mips-lit ;; |
d05ac46b | 100 | mips*-sgi-irix5*) ld_target=mipsb-elf32 ;; |
7b95fe96 | 101 | mips*-sgi-irix*) ld_target=mips-big ;; |
97dc4cf8 | 102 | mips*el-idt-ecoff*) ld_target=mipsl-idt ;; |
7b95fe96 SS |
103 | mips*-idt-ecoff*) ld_target=mips-idt ;; |
104 | mips*-dec-bsd*) ld_target=mipsbsd ;; | |
105 | mips*-*-elf*) ld_target=mipsb-elf32 ;; | |
1c4b3cda | 106 | alpha-*-osf*) ld_target=alpha ;; |
8a432746 | 107 | alpha-*-netware*) ld_target=alpha ;; |
1c4b3cda | 108 | z8k-*-sim | z8k-*-coff) ld_target=z8ksim ;; |
f39a73b1 | 109 | powerpc-*-elf*) ld_target=ppc-elf32 ;; |
f39a73b1 | 110 | powerpc-*-netware*) ld_target=ppc-elf32 ;; |
1c4b3cda ILT |
111 | *-*-aout) ld_target=${target_cpu}-${target_vendor} ;; |
112 | *-*-coff) ld_target=${target_cpu}-${target_vendor} ;; | |
b4a79a16 | 113 | *-*-netware) ld_target=${target_cpu}-elf ;; |
1c4b3cda ILT |
114 | |
115 | all) ld_target=all ;; | |
02757e59 SC |
116 | esac |
117 | ||
1c4b3cda ILT |
118 | if [ "x$ld_target" = "xall" ]; then |
119 | all_targets=true | |
120 | else | |
121 | if [ ! -f ${srcdir}/config/${ld_target}.mt ] ; then | |
122 | echo '***' No file ${srcdir}/config/${ld_target}.mt 1>&2 | |
123 | echo '***' GNU LD does not support target ${ld_target} 1>&2 | |
124 | echo '***' Look in ld/configure.in for supported targets 1>&2 | |
125 | exit 1 | |
126 | fi | |
7f2649bb | 127 | |
1c4b3cda ILT |
128 | if [ "x$targ" = "x$target" ]; then |
129 | target_makefile_frag=${srcdir}/config/${ld_target}.mt | |
130 | else | |
131 | target_extra_frags="$target_extra_frags ${srcdir}/config/${ld_target}.mt" | |
132 | fi | |
133 | fi | |
134 | done | |
135 | ||
136 | # We don't do any links based on the target system, just makefile config. | |
137 | ||
138 | # post-target: | |
139 | ||
140 | rm -f Makefile.tmp Makefile.2 | |
141 | mv Makefile Makefile.tmp | |
142 | ||
143 | if [ x${all_targets} = xfalse ]; then | |
144 | ||
145 | allfrags="$target_makefile_frag $target_extra_frags" | |
146 | ||
147 | # The emulations in all the configured targets. | |
148 | tb=`sed -n ' | |
eb8f714f | 149 | s/EMUL[ ]*=[ ]*\([^ ]*\)/e\1.o/p |
1c4b3cda ILT |
150 | ' $allfrags` |
151 | # uniq the list. | |
152 | f="" | |
153 | for i in $tb ; do | |
154 | case " $f " in | |
155 | *" $i "*) ;; | |
156 | *) f="$f $i" ;; | |
157 | esac | |
158 | done | |
159 | tb="$f" | |
160 | ||
161 | echo "EMULATION_OFILES = $tb" >> Makefile.2 | |
162 | ||
163 | else # all_targets is true | |
164 | echo 'EMULATION_OFILES = $(ALL_EMULATIONS)' >> Makefile.2 | |
165 | fi # all_targets is true | |
166 | ||
167 | cat Makefile.tmp >> Makefile.2 | |
168 | rm -f Makefile.tmp | |
169 | mv Makefile.2 Makefile | |
8ddef552 | 170 | |
173a0c3d | 171 | mkdir ldscripts 2>/dev/null |