* config/tic80/tm-tic80.h (NAMES_HAVE_UNDERSCORE): Define.
[deliverable/binutils-gdb.git] / gas / configure.in
CommitLineData
b11fb939
KR
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it! If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
b11fb939 6dnl
1c94de4d 7AC_PREREQ(2.5)dnl v2.5 needed for --bindir et al
28d3e4a3 8AC_INIT(as.h)dnl
b11fb939 9dnl
318b02b6 10user_bfd_gas=
b11fb939 11AC_ARG_ENABLE(bfd-assembler,
d7b2038f 12[ --enable-bfd-assembler use BFD back end for writing object files],
b11fb939 13[case "${enableval}" in
318b02b6
KR
14 yes) need_bfd=yes user_bfd_gas=yes ;;
15 no) user_bfd_gas=no ;;
b11fb939
KR
16 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
17esac])dnl
e7757ad0
KR
18AC_ARG_ENABLE(targets,
19[ targets alternative target configurations besides the primary],
20[case "${enableval}" in
21 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
22 ;;
23 no) enable_targets= ;;
24 *) enable_targets=$enableval ;;
25esac])dnl
1c9dbb83
ILT
26AC_ARG_ENABLE(shared,
27[ --enable-shared build shared BFD library],
28[case "${enableval}" in
159e6ef8 29 yes) shared=true shared_bfd=true shared_opcodes=true ;;
1c9dbb83 30 no) shared=false ;;
159e6ef8
MM
31 *bfd*opcodes*) shared=true shared_bfd=true shared_opcodes=true ;;
32 *opcodes*bfd*) shared=true shared_bfd=true shared_opcodes=true ;;
33 *bfd*) shared=true shared_bfd=true ;;
34 *opcodes*) shared=true shared_opcodes=true ;;
35 *) shared=false ;;
1c9dbb83 36esac])dnl
b11fb939
KR
37
38# Generate a header file -- gets more post-processing by Makefile later.
39AC_CONFIG_HEADER(conf)
40
41dnl For recursion to work right, this must be an absolute pathname.
42AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
43AC_CANONICAL_SYSTEM
bf111c9f 44AC_ARG_PROGRAM
7cf4d7ff 45
e7757ad0 46te_file=generic
b678740d 47
e7757ad0
KR
48canon_targets=""
49if test -n "$enable_targets" ; then
50 for t in `echo $enable_targets | sed 's/,/ /g'`; do
51 result=`$ac_config_sub $t 2>/dev/null`
52 if test -n "$result" ; then
53 canon_targets="$canon_targets $result"
54# else
55# # Permit "all", etc. We don't support it yet though.
56# canon_targets="$canon_targets $t"
57 fi
58 done
59 GAS_UNIQ(canon_targets)
60fi
61
62emulations=""
63
64for this_target in $target $canon_targets ; do
65
64556643
FF
66changequote(,)dnl
67 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
68changequote([,])dnl
8cac6ca6 69
e7757ad0
KR
70 # check for architecture variants
71 case ${cpu} in
ae09d880
ILT
72 armeb) cpu_type=arm endian=big ;;
73 arm*) cpu_type=arm endian=little ;;
e7757ad0
KR
74 hppa*) cpu_type=hppa ;;
75changequote(,)dnl
7c2fadd1 76 i[456]86) cpu_type=i386 ;;
e7757ad0
KR
77 m680[012346]0) cpu_type=m68k ;;
78 m68008) cpu_type=m68k ;;
79 m683??) cpu_type=m68k ;;
80changequote([,])dnl
81 m8*) cpu_type=m88k ;;
e16b9537 82 mips*el) cpu_type=mips endian=little ;;
e7757ad0
KR
83 mips*) cpu_type=mips endian=big ;;
84 powerpcle*) cpu_type=ppc endian=little ;;
85 powerpc*) cpu_type=ppc endian=big ;;
86 rs6000*) cpu_type=ppc ;;
6df07e7f 87 sparc64) cpu_type=sparc want_sparc_v9=true ;;
63e4edb5 88 sparc*) cpu_type=sparc ;;
a1c7c0f3 89 *) cpu_type=${cpu} ;;
e7757ad0
KR
90 esac
91
92 if test ${this_target} = $target ; then
93 target_cpu_type=${cpu_type}
94 elif test ${target_cpu_type} != ${cpu_type} ; then
95 continue
96 fi
97
98 targ=${cpu_type}
99 generic_target=${cpu_type}-$vendor-$os
100 dev=no
101 bfd_gas=no
102 em=generic
7cf4d7ff 103
e7757ad0
KR
104 # assign object format
105 case ${generic_target} in
805e36ab 106 a29k-*-coff) fmt=coff targ=ebmon29k ;;
e7757ad0
KR
107 a29k-amd-udi) fmt=coff targ=ebmon29k ;;
108 a29k-amd-ebmon) fmt=coff targ=ebmon29k ;;
880b7429 109 a29k-nyu-sym1) fmt=coff targ=ebmon29k ;;
e7757ad0
KR
110 a29k-*-vxworks*) fmt=coff ;;
111
c6aa56bc 112 alpha-*-*vms*) fmt=evax ;;
e7757ad0
KR
113 alpha-*-netware*) fmt=ecoff ;;
114 alpha-*-osf*) fmt=ecoff ;;
df586de2
ILT
115 alpha-*-linuxecoff*) fmt=ecoff ;;
116 alpha-*-linux*) fmt=elf em=linux ;;
816153a3 117
4181c985 118# start-sanitize-arc
e7757ad0 119 arc-*-elf*) fmt=elf bfd_gas=yes ;;
4181c985
KR
120# end-sanitize-arc
121
7be9a312 122 arm-*-riscix*) fmt=aout targ=arm-lit em=riscix ;;
1cb0d00d
KR
123 arm-*-aout) fmt=aout
124 case "$endian" in
125 big) targ=arm-big ;;
126 *) targ=arm-lit ;;
127 esac
128 ;;
d7b2038f 129 arm-*-coff) fmt=coff ;;
e7757ad0 130 arm-*-riscix*) fmt=aout ;;
1cb0d00d 131 arm-*-pe) fmt=coff targ=armcoff em=pe ;;
e7757ad0 132
05a8bf33 133 d10v-*-*) fmt=elf bfd_gas=yes ;;
7d0f8249
MH
134# start-sanitize-d30v
135 d30v-*-*) fmt=elf bfd_gas=yes ;;
136# end-sanitize-d30v
7be9a312 137
e7757ad0
KR
138 hppa-*-*elf*) fmt=elf em=hppa ;;
139 hppa-*-lites*) fmt=elf em=hppa ;;
140 hppa-*-osf*) fmt=som em=hppa ;;
141 hppa-*-hpux*) fmt=som em=hppa ;;
142 hppa-*-bsd*) fmt=som em=hppa ;;
143 hppa-*-hiux*) fmt=som em=hppa ;;
144
145 h8300-*-coff) fmt=coff ;;
146
147 i386-ibm-aix*) fmt=coff targ=i386coff
148 em=i386aix ;;
7d0f8249 149 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
e7757ad0
KR
150 i386-*-bsd*) fmt=aout em=386bsd ;;
151 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
152 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
a1c7c0f3 153 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
e7757ad0
KR
154 i386-*-linux*coff*) fmt=coff em=linux
155 targ=i386coff ;;
156 i386-*-linux*) fmt=elf em=linux ;;
157 i386-*-lynxos*) fmt=coff targ=i386coff
158 em=lynx ;;
2ae5f50b 159 i386-*-sysv4* | i386-*-solaris* | i386-*-elf | i386-*-freebsdelf*)
e7757ad0 160 fmt=elf ;;
66b935da 161 i386-*-sco*elf*) fmt=elf targ=sco5 ;;
e7757ad0
KR
162 i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
163 fmt=coff targ=i386coff ;;
164 i386-*-vsta) fmt=aout ;;
165 i386-*-go32) fmt=coff targ=i386coff ;;
1c94de4d 166 i386-*-rtems*) fmt=coff targ=i386coff ;;
6c186c48
SC
167 i386-*-gnu*) fmt=elf ;;
168 i386-*-mach*)
e7757ad0
KR
169 fmt=aout em=mach bfd_gas=yes ;;
170 i386-*-msdos*) fmt=aout ;;
6c186c48 171 i386-*-moss*) fmt=elf ;;
d0352cbb
DE
172 i386-*-pe) fmt=coff targ=i386coff em=pe ;;
173 i386-*-cygwin32) fmt=coff targ=i386coff em=pe ;;
174 i386-*-*nt) fmt=coff targ=i386coff em=pe ;;
e7757ad0
KR
175 i960-*-bout) fmt=bout ;;
176 i960-*-coff) fmt=coff em=ic960 targ=ic960coff ;;
1c94de4d 177 i960-*-rtems*) fmt=coff em=ic960 targ=ic960coff ;;
e7757ad0
KR
178 i960-*-nindy*) fmt=bout ;;
179 i960-*-vxworks4*) fmt=bout ;;
180 i960-*-vxworks5.0) fmt=bout ;;
181 i960-*-vxworks5.*) fmt=coff em=ic960 targ=ic960coff ;;
182 i960-*-vxworks*) fmt=bout ;;
183
184 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
185 fmt=aout em=sun3 ;;
880b7429 186 m68k-motorola-sysv*) fmt=coff targ=m68kcoff em=delta ;;
e7757ad0
KR
187 m68k-bull-sysv3*) fmt=coff targ=m68kcoff em=dpx2 ;;
188 m68k-apollo-*) fmt=coff targ=apollo em=apollo ;;
fee3e248
ILT
189 m68k-*-sysv4*) # must be before -sysv*
190 fmt=elf em=svr4 ;;
191 m68k-*-elf*) fmt=elf ;;
1c94de4d 192 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
e7757ad0 193 fmt=coff targ=m68kcoff ;;
e7757ad0 194 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
535cfd0f
ILT
195 m68k-*-linux*aout*) fmt=aout em=linux ;;
196 m68k-*-linux*) fmt=elf em=linux ;;
e7757ad0
KR
197 m68k-*-lynxos*) fmt=coff targ=m68kcoff
198 em=lynx ;;
199 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
8a6f53e9
ILT
200 m68k-apple-aux*) fmt=coff targ=m68kcoff em=aux ;;
201 m68k-*-psos*) fmt=elf em=psos;;
e7757ad0 202
880b7429 203 m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delt88 ;;
e7757ad0
KR
204 m88k-*-coff*) fmt=coff targ=m88kcoff ;;
205
206 # don't change em like *-*-bsd does
057a4d41 207 mips-dec-netbsd*) fmt=elf targ=mips-lit endian=little ;;
e7757ad0
KR
208 mips-dec-bsd*) fmt=aout targ=mips-lit ;;
209 mips-sony-bsd*) fmt=ecoff targ=mips-big ;;
210 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
70f4dbce 211 mips-*-ultrix*) fmt=ecoff targ=mips-lit endian=little ;;
7be9a312 212 mips-*-osf*) fmt=ecoff targ=mips-lit endian=little ;;
e7757ad0
KR
213 mips-*-ecoff*) fmt=ecoff
214 case "$endian" in
215 big) targ=mips-big ;;
216 *) targ=mips-lit ;;
217 esac
218 ;;
219 mips-*-ecoff*) fmt=ecoff targ=mips-big ;;
220 mips-*-gnu*) fmt=aout
221 case "$endian" in
222 big) targ=mips-big ;;
223 *) targ=mips-lit ;;
224 esac
225 ;;
cbe7dccb 226 mips-*-irix6*) fmt=elf targ=mips-big ;;
e7757ad0
KR
227 mips-*-irix5*) fmt=elf targ=mips-big ;;
228 mips-*-irix*) fmt=ecoff targ=mips-big ;;
515c7142 229 mips-*-lnews*) fmt=ecoff targ=mips-lit em=lnews ;;
e7757ad0
KR
230 mips-*-riscos*) fmt=ecoff targ=mips-big ;;
231 mips-*-sysv*) fmt=ecoff targ=mips-big ;;
e16b9537 232 mips-*-elf* | mips-*-rtems* | mips-*-linux*)
fed13a5e 233 fmt=elf
e7757ad0
KR
234 case "$endian" in
235 big) targ=mips-big ;;
236 *) targ=mips-lit ;;
237 esac
238 ;;
ae1b99e4
JL
239 mn10200-*-*) fmt=elf bfd_gas=yes ;;
240 mn10300-*-*) fmt=elf bfd_gas=yes ;;
0ff513d9
SC
241 ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
242 fmt=coff em=pe
85cc2190
KK
243 case "$endian" in
244 big) targ=ppc-big ;;
245 *) targ=ppc-lit ;;
246 esac
247 ;;
e7757ad0 248 ppc-*-aix*) fmt=coff ;;
515c7142 249 ppc-*-beos*) fmt=coff ;;
e7757ad0
KR
250 ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
251 fmt=elf
252 case "$endian" in
253 big) targ=ppc-big ;;
254 *) targ=ppc-lit ;;
255 esac
256 ;;
159e6ef8
MM
257 ppc-*-linux*) fmt=elf
258 case "$endian" in
259 big) targ=ppc-big ;;
260 *) AC_MSG_ERROR(Linux must be configured big endian) ;;
261 esac
262 ;;
263 ppc-*-solaris*) fmt=elf
264 case "$endian" in
265 big) AC_MSG_ERROR(Solaris must be configured little endian) ;;
266 *) targ=ppc-sol ;;
267 esac
268 ;;
1c94de4d
JM
269 ppc-*-rtems*)
270 fmt=elf
271 case "$endian" in
272 big) targ=ppc-big ;;
273 *) targ=ppc-lit ;;
274 esac
275 ;;
880b7429
KR
276 ppc-*-macos* | ppc-*-mpw*)
277 fmt=coff em=macos ;;
e7757ad0
KR
278 ppc-*-netware*) fmt=elf em=ppcnw ;;
279
fed13a5e
ILT
280 sh-*-elf*) fmt=elf ;;
281 sh-*-coff*) fmt=coff ;;
816153a3 282
5f757edc
ILT
283 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
284 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
e7757ad0 285
1c94de4d 286 sparc-*-rtems*) fmt=aout ;;
e7757ad0 287 sparc-*-sunos4*) fmt=aout em=sun3 ;;
df586de2 288 sparc-*-aout | sparc*-*-vxworks*)
fed13a5e 289 fmt=aout em=sparcaout ;;
e7757ad0
KR
290 sparc-*-coff) fmt=coff ;;
291 sparc-*-lynxos*) fmt=coff em=lynx ;;
292 sparc-fujitsu-none) fmt=aout ;;
0b27ea39 293 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
e7757ad0
KR
294 fmt=elf ;;
295 sparc-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
c6aa56bc 296
64556643 297# start-sanitize-tic80
7d0f8249 298 tic80-*-*) fmt=coff targ=tic80coff;;
64556643 299# end-sanitize-tic80
c6aa56bc 300 v850-*-*) fmt=elf bfd_gas=yes ;;
e7757ad0
KR
301
302 vax-*-bsd* | vax-*-ultrix*)
303 fmt=aout ;;
304 vax-*-vms) fmt=vms ;;
305
306 z8k-*-coff | z8k-*-sim)
307 fmt=coff ;;
308
309 w65-*-*) fmt=coff ;;
310
311 *-*-aout | *-*-scout)
312 fmt=aout ;;
313 *-*-nindy*)
314 fmt=bout ;;
315 *-*-bsd*)
316 fmt=aout em=sun3 ;;
317 *-*-generic) fmt=generic ;;
318 *-*-xray | *-*-hms) fmt=coff ;;
319 *-*-sim) fmt=coff ;;
320 *-*-elf | *-*-sysv4* | *-*-solaris*)
6df07e7f 321 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
e7757ad0
KR
322 fmt=elf dev=yes ;;
323 *-*-vxworks) fmt=aout ;;
324 *-*-netware) fmt=elf ;;
325 esac
326
327 case ${cpu_type}-${fmt} in
df586de2 328 alpha-*) bfd_gas=yes ;;
e7757ad0
KR
329 arm-*) bfd_gas=yes ;;
330 # not yet
331 # i386-aout) bfd_gas=preferred ;;
332 mips-*) bfd_gas=yes ;;
333 ns32k-*) bfd_gas=yes ;;
334 ppc-*) bfd_gas=yes ;;
335 sparc-*) bfd_gas=yes ;;
336 *-elf) bfd_gas=yes ;;
337 *-ecoff) bfd_gas=yes ;;
338 *-som) bfd_gas=yes ;;
339 *) ;;
340 esac
341
5f757edc
ILT
342# Other random stuff.
343
ae09d880
ILT
344 # do we need the opcodes library?
345 case ${cpu_type} in
df586de2 346 vax | i386)
7c2fadd1
ILT
347 ;;
348 *)
349 need_opcodes=yes
159e6ef8 350 if test "${shared_opcodes}" = "true"; then
7c2fadd1
ILT
351 # A shared libopcodes must be linked against libbfd.
352 need_bfd=yes
353 fi
354 ;;
ae09d880
ILT
355 esac
356
6df07e7f
DE
357 test -n "$want_sparc_v9" && AC_DEFINE(SPARC_V9)
358
359 case ${cpu}-${vendor}-${os} in
360 sparc64-*-elf*) AC_DEFINE(SPARC_ARCH64) ;;
361 esac
5f757edc
ILT
362
363 case ${cpu_type} in
1c9dbb83
ILT
364 m68k)
365 case ${extra_objects} in
366 *m68k-parse.o*) ;;
367 *) extra_objects="$extra_objects m68k-parse.o" ;;
368 esac
369 ;;
efec4a28
DP
370
371 mips)
515c7142 372 echo ${extra_objects} | grep -s "itbl-parse.o"
efec4a28 373 if test $? -ne 0 ; then
515c7142 374 extra_objects="$extra_objects itbl-parse.o"
efec4a28
DP
375 fi
376
515c7142 377 echo ${extra_objects} | grep -s "itbl-lex.o"
efec4a28 378 if test $? -ne 0 ; then
515c7142 379 extra_objects="$extra_objects itbl-lex.o"
efec4a28
DP
380 fi
381
515c7142 382 echo ${extra_objects} | grep -s "itbl-ops.o"
efec4a28 383 if test $? -ne 0 ; then
515c7142 384 extra_objects="$extra_objects itbl-ops.o"
efec4a28
DP
385 fi
386 ;;
387
388 *)
389 ;;
5f757edc
ILT
390 esac
391
e7757ad0
KR
392# See if we really can support this configuration with the emulation code.
393
394 if test $this_target = $target ; then
395 primary_bfd_gas=$bfd_gas
396 obj_format=$fmt
397 gas_target=$targ
398 te_file=$em
399
400 if test $bfd_gas = no ; then
401 # Can't support other configurations this way.
402 break
403 fi
404 elif test $bfd_gas = no ; then
405 # Can't support this configuration.
406 break
407 fi
408
409# From target name and format, produce a list of supported emulations.
410
411 case ${generic_target}-${fmt} in
1cb0d00d 412 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
515c7142
ILT
413 mips-*-linux*-*) case "$endian" in
414 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
415 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
416 esac ;;
417 mips-*-lnews*-ecoff) ;;
e7757ad0 418 mips-*-*-ecoff) case "$endian" in
1cb0d00d
KR
419 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
420 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
e7757ad0
KR
421 esac ;;
422 mips-*-*-elf) case "$endian" in
1cb0d00d
KR
423 big) emulation="mipsbelf mipslelf mipself" ;;
424 *) emulation="mipslelf mipsbelf mipself" ;;
515c7142
ILT
425 # Uncommenting the next line will turn on support for i386 COFF
426 # in any i386 ELF configuration. This probably doesn't work
427 # correctly.
428 # i386-*-*-elf) emulation="i386coff i386elf" ;;
e7757ad0
KR
429 esac ;;
430 esac
431
432 emulations="$emulations $emulation"
433
e7757ad0 434done
fecd2382 435
8cac6ca6
KR
436# Assign floating point type. Most processors with FP support
437# IEEE FP. On those that don't support FP at all, usually IEEE
438# is emulated.
b678740d 439case ${target_cpu} in
904b6037 440 vax | tahoe ) atof=${target_cpu} ;;
e7757ad0 441 *) atof=ieee ;;
fecd2382
RP
442esac
443
8cac6ca6 444case "${obj_format}" in
b11fb939 445 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
8cac6ca6 446esac
7cf4d7ff 447
b11fb939
KR
448dnl
449dnl Make sure the desired support files exist.
450dnl
451
bf4bd1fc
ILT
452if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
453 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
b11fb939
KR
454fi
455
fb589130 456if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
b11fb939 457 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
7cf4d7ff
KR
458fi
459
8a24a37c
SC
460# and target makefile frag
461
b11fb939 462target_frag=${srcdir}/config/${gas_target}.mt
f2889110
KR
463if test ! -r ${target_frag}; then
464 target_frag=/dev/null # ick! but subst_file can't be conditionalized
465fi
b11fb939 466AC_SUBST_FILE(target_frag)
8a24a37c 467
e7757ad0 468case ${user_bfd_gas}-${primary_bfd_gas} in
a8285504 469 yes-yes | no-no)
7cf4d7ff
KR
470 # We didn't override user's choice.
471 ;;
a8285504 472 no-yes)
b11fb939 473 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
7cf4d7ff 474 ;;
a8285504 475 no-preferred)
e7757ad0 476 primary_bfd_gas=no
a8285504
DZ
477 ;;
478 *-preferred)
e7757ad0 479 primary_bfd_gas=yes
a8285504 480 ;;
f2889110 481 yes-*)
e7757ad0 482 primary_bfd_gas=yes
f2889110 483 ;;
a8285504
DZ
484 -*)
485 # User specified nothing.
486 ;;
7cf4d7ff
KR
487esac
488
e7757ad0
KR
489# Some COFF configurations want these random other flags set.
490case ${obj_format} in
491 coff)
492 case ${target_cpu_type} in
493 i386) AC_DEFINE(I386COFF) ;;
494 m68k) AC_DEFINE(M68KCOFF) ;;
495 m88k) AC_DEFINE(M88KCOFF) ;;
496 esac
497 ;;
498esac
499
500# Getting this done right is going to be a bitch. Each configuration specified
501# with --enable-targets=... should be checked for environment, format, cpu, and
502# bfd_gas setting.
503#
504# For each configuration, the necessary object file support code must be linked
505# in. This might be only one, it might be up to four. The necessary emulation
506# code needs to be provided, too.
507#
508# And then there's "--enable-targets=all"....
509#
510# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
511
512formats="${obj_format}"
513emfiles=""
514EMULATIONS=""
515GAS_UNIQ(emulations)
516for em in . $emulations ; do
517 case $em in
518 .) continue ;;
519 mipsbelf | mipslelf)
520 fmt=elf file=mipself ;;
521 mipsbecoff | mipslecoff)
522 fmt=ecoff file=mipsecoff ;;
515c7142
ILT
523 i386coff)
524 fmt=coff file=i386coff ;;
525 i386elf)
526 fmt=elf file=i386elf ;;
e7757ad0
KR
527 esac
528 formats="$formats $fmt"
529 emfiles="$emfiles e-$file.o"
530 EMULATIONS="$EMULATIONS &$em,"
531done
532GAS_UNIQ(formats)
533GAS_UNIQ(emfiles)
534if test `set . $formats ; shift ; echo $#` -gt 1 ; then
535 for fmt in $formats ; do
536 case $fmt in
537 aout) AC_DEFINE(OBJ_MAYBE_AOUT) ;;
538 bout) AC_DEFINE(OBJ_MAYBE_BOUT) ;;
539 coff) AC_DEFINE(OBJ_MAYBE_COFF) ;;
540 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF) ;;
541 elf) AC_DEFINE(OBJ_MAYBE_ELF) ;;
542 generic) AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
543 hp300) AC_DEFINE(OBJ_MAYBE_HP300) ;;
544 ieee) AC_DEFINE(OBJ_MAYBE_IEEE) ;;
545 som) AC_DEFINE(OBJ_MAYBE_SOM) ;;
546 vms) AC_DEFINE(OBJ_MAYBE_VMS) ;;
547 esac
548 extra_objects="$extra_objects obj-$fmt.o"
549 done
550 obj_format=multi
551fi
552if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
553 te_file=multi
554 extra_objects="$extra_objects $emfiles"
555 DEFAULT_EMULATION=`set . $emulations ; echo $2`
556 AC_DEFINE(USE_EMULATIONS)
557fi
558AC_SUBST(extra_objects)
559AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
560AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
561
bf4bd1fc 562case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
318b02b6
KR
563 yes-*-coff) need_bfd=yes ;;
564 no-*-coff) need_bfd=yes
565 AC_DEFINE(MANY_SEGMENTS) ;;
566esac
567
69ecc03f 568reject_dev_configs=yes
8cac6ca6
KR
569
570case ${reject_dev_configs}-${dev} in
571 yes-yes) # Oops.
b11fb939 572 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
8cac6ca6
KR
573 ;;
574esac
575
bf4bd1fc 576AC_SUBST(target_cpu_type)
833c46e1 577AC_SUBST(obj_format)
515c7142 578AC_SUBST(te_file)
833c46e1 579AC_SUBST(atof)
e7757ad0 580dnl AC_SUBST(emulation)
833c46e1 581
e7757ad0 582case "${primary_bfd_gas}" in
b11fb939
KR
583 yes) AC_DEFINE(BFD_ASSEMBLER)
584 need_bfd=yes ;;
4f6f4aa8
KR
585esac
586
ae09d880
ILT
587# do we need the opcodes library?
588case "${need_opcodes}" in
1c94de4d
JM
589yes)
590 OPCODES_DEP=../opcodes/libopcodes.a
591 OPCODES_LIB='-L../opcodes -lopcodes'
592
593 # We need to handle some special cases for shared libraries.
594 case "${host}" in
595 *-*-sunos*)
596 # On SunOS, we must link against the name we are going to install,
597 # not -lbfd, since SunOS does not support SONAME.
159e6ef8 598 if test "${shared_opcodes}" = "true"; then
ae09d880 599 OPCODES_LIB='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
ae09d880
ILT
600 fi
601 ;;
1c94de4d
JM
602 alpha*-*-osf*)
603 # On Alpha OSF/1, the native linker searches all the -L
604 # directories for any LIB.so files, and only then searches for any
605 # LIB.a files. That means that if there is an installed
606 # libbfd.so, but this build is not done with --enable-shared, the
607 # link will wind up being against the install libbfd.so rather
608 # than the newly built libbfd. To avoid this, we must explicitly
609 # link against libbfd.a when --enable-shared is not used.
610 if test "${shared_opcodes}" != "true"; then
611 OPCODES_LIB='../opcodes/libopcodes.a'
612 fi
613 ;;
614 esac
615 ;;
ae09d880
ILT
616esac
617AC_SUBST(OPCODES_DEP)
618AC_SUBST(OPCODES_LIB)
619
b11fb939 620case "${need_bfd}" in
1c94de4d
JM
621yes)
622 BFDDEP=../bfd/libbfd.a
623 BFDLIB='-L../bfd -lbfd'
624 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
625
626 # We need to handle some special cases for shared libraries
627 case "${host}" in
628 *-*-sunos*)
629 # On SunOS, we must link against the name we are going to install,
630 # not -lbfd, since SunOS does not support SONAME.
159e6ef8 631 if test "${shared_bfd}" = "true"; then
1c94de4d 632 BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
ae09d880
ILT
633 fi
634 ;;
1c94de4d
JM
635 alpha*-*-osf*)
636 # On Alpha OSF/1, the native linker searches all the -L
637 # directories for any LIB.so files, and only then searches for any
638 # LIB.a files. That means that if there is an installed
639 # libbfd.so, but this build is not done with --enable-shared, the
640 # link will wind up being against the install libbfd.so rather
641 # than the newly built libbfd. To avoid this, we must explicitly
642 # link against libbfd.a when --enable-shared is not used.
643 if test "${shared_bfd}" != "true"; then
644 BFDLIB='../bfd/libbfd.a'
645 fi
646 ;;
647 esac
648 ;;
4f6f4aa8 649esac
1c9dbb83 650AC_SUBST(BFDDEP)
b11fb939
KR
651AC_SUBST(BFDLIB)
652AC_SUBST(ALL_OBJ_DEPS)
4f6f4aa8 653
b11fb939
KR
654AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
655AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
656AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
657AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
658AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
659
b11fb939
KR
660AC_PROG_CC
661AC_PROG_INSTALL
662
b11fb939
KR
663AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
664
bf111c9f
KR
665# Put this here so that autoconf's "cross-compiling" message doesn't confuse
666# people who are not cross-compiling but are compiling cross-assemblers.
667AC_MSG_CHECKING(whether compiling a cross-assembler)
668if test "${host}" = "${target}"; then
f2889110
KR
669 cross_gas=no
670else
bf111c9f
KR
671 cross_gas=yes
672 AC_DEFINE(CROSS_COMPILE)
bf111c9f
KR
673fi
674AC_MSG_RESULT($cross_gas)
675
b11fb939
KR
676dnl ansidecl.h will deal with const
677dnl AC_CONST
678AC_FUNC_ALLOCA
679AC_C_INLINE
680
f2889110
KR
681# VMS doesn't have unlink.
682AC_CHECK_FUNCS(unlink remove, break)
28d3e4a3 683
e63c594d
FF
684# Some systems don't have sbrk().
685AC_CHECK_FUNCS(sbrk)
686
b11fb939
KR
687# Some non-ANSI preprocessors botch requoting inside strings. That's bad
688# enough, but on some of those systems, the assert macro relies on requoting
689# working properly!
bf111c9f 690GAS_WORKING_ASSERT
b11fb939
KR
691
692# On some systems, the system header files may not declare malloc, realloc,
693# and free. There are places where gas needs these functions to have been
694# declared -- such as when taking their addresses.
bf111c9f 695gas_test_headers="
b11fb939
KR
696#ifdef HAVE_MEMORY_H
697#include <memory.h>
698#endif
699#ifdef HAVE_STRING_H
700#include <string.h>
5cece526
ILT
701#else
702#ifdef HAVE_STRINGS_H
703#include <strings.h>
704#endif
b11fb939
KR
705#endif
706#ifdef HAVE_STDLIB_H
707#include <stdlib.h>
708#endif
709#ifdef HAVE_UNISTD_H
710#include <unistd.h>
711#endif
bf111c9f 712"
5cece526 713GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
bf111c9f 714GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
5f757edc 715GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
5cece526 716GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
b11fb939
KR
717
718# Does errno.h declare errno, or do we have to add a separate declaration
719# for it?
bf111c9f 720GAS_CHECK_DECL_NEEDED(errno, f, int f, [
b11fb939
KR
721#ifdef HAVE_ERRNO_H
722#include <errno.h>
723#endif
bf111c9f 724])
b11fb939 725
1c9dbb83 726HLDFLAGS=
fed13a5e 727HLDENV=
1a2f3c3f 728RPATH_ENVVAR=LD_LIBRARY_PATH
1c9dbb83
ILT
729# If we have shared libraries, try to set rpath reasonably.
730if test "${shared}" = "true"; then
731 case "${host}" in
56f9773f
ILT
732 *-*-hpux*)
733 HLDFLAGS='-Wl,+s,+b,$(libdir)'
1a2f3c3f 734 RPATH_ENVVAR=SHLIB_PATH
56f9773f 735 ;;
cbe7dccb 736 *-*-irix5* | *-*-irix6*)
1c9dbb83
ILT
737 HLDFLAGS='-Wl,-rpath,$(libdir)'
738 ;;
739 *-*-linux*aout*)
740 ;;
741 *-*-linux*)
742 HLDFLAGS='-Wl,-rpath,$(libdir)'
743 ;;
fed13a5e 744 *-*-solaris*)
1c9dbb83
ILT
745 HLDFLAGS='-R $(libdir)'
746 ;;
fed13a5e
ILT
747 *-*-sysv4*)
748 HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
749 ;;
1c9dbb83
ILT
750 esac
751fi
752
753# On SunOS, if the linker supports the -rpath option, use it to
754# prevent ../bfd and ../opcodes from being included in the run time
755# search path.
756case "${host}" in
757 *-*-sunos*)
758 echo 'main () { }' > conftest.c
759 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
760 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
761 :
762 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
763 :
7925f4d4
ILT
764 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
765 :
1c9dbb83
ILT
766 elif test "${shared}" = "true"; then
767 HLDFLAGS='-Wl,-rpath=$(libdir)'
768 else
769 HLDFLAGS='-Wl,-rpath='
770 fi
771 rm -f conftest.t conftest.c conftest
772 ;;
773esac
774AC_SUBST(HLDFLAGS)
fed13a5e 775AC_SUBST(HLDENV)
1a2f3c3f 776AC_SUBST(RPATH_ENVVAR)
1c9dbb83 777
b11fb939 778dnl This must come last.
515c7142
ILT
779
780dnl We used to make symlinks to files in the source directory, but now
781dnl we just use the right name for .c files, and create .h files in
782dnl the build directory which include the right .h file. Make sure
783dnl the old symlinks don't exist, so that a reconfigure in an existing
784dnl directory behaves reasonably.
785
786AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in,
787[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
788 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
789 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
790 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
791 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h],
792[target_cpu_type=${target_cpu_type}
793 obj_format=${obj_format}
794 te_file=${te_file}])
This page took 0.231032 seconds and 4 git commands to generate.