* gas/mips/4010.s: Add 4010 tests.
[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
e2b4bd2a
ILT
7dnl v2.5 needed for --bindir et al
8AC_PREREQ(2.5)
9AC_INIT(as.h)
10
11AC_CANONICAL_SYSTEM
12
13AM_INIT_AUTOMAKE(gas, 2.8.2)
14
15AM_PROG_LIBTOOL
16
318b02b6 17user_bfd_gas=
b11fb939 18AC_ARG_ENABLE(bfd-assembler,
d7b2038f 19[ --enable-bfd-assembler use BFD back end for writing object files],
b11fb939 20[case "${enableval}" in
318b02b6
KR
21 yes) need_bfd=yes user_bfd_gas=yes ;;
22 no) user_bfd_gas=no ;;
b11fb939
KR
23 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
24esac])dnl
e7757ad0
KR
25AC_ARG_ENABLE(targets,
26[ targets alternative target configurations besides the primary],
27[case "${enableval}" in
28 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
29 ;;
30 no) enable_targets= ;;
31 *) enable_targets=$enableval ;;
32esac])dnl
2e013bb7
ILT
33AC_ARG_ENABLE(commonbfdlib,
34[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
35[case "${enableval}" in
36 yes) commonbfdlib=true ;;
37 no) commonbfdlib=false ;;
38 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
39esac])dnl
b11fb939 40
e2b4bd2a
ILT
41# Generate a header file
42AM_CONFIG_HEADER(config.h:config.in)
7cf4d7ff 43
e7757ad0 44te_file=generic
b678740d 45
e7757ad0
KR
46canon_targets=""
47if test -n "$enable_targets" ; then
48 for t in `echo $enable_targets | sed 's/,/ /g'`; do
ec2f730d 49 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $t 2>/dev/null`
e7757ad0
KR
50 if test -n "$result" ; then
51 canon_targets="$canon_targets $result"
52# else
53# # Permit "all", etc. We don't support it yet though.
54# canon_targets="$canon_targets $t"
55 fi
56 done
57 GAS_UNIQ(canon_targets)
58fi
59
60emulations=""
61
62for this_target in $target $canon_targets ; do
63
64556643
FF
64changequote(,)dnl
65 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
66changequote([,])dnl
8cac6ca6 67
e7757ad0 68 # check for architecture variants
2b09622a 69 arch=
6ff87ead 70 endian=
e7757ad0 71 case ${cpu} in
0170f1c3 72 alpha*) cpu_type=alpha ;;
ae09d880
ILT
73 armeb) cpu_type=arm endian=big ;;
74 arm*) cpu_type=arm endian=little ;;
76fb6d2f 75 thumb*) cpu_type=arm endian=little ;;
e7757ad0
KR
76 hppa*) cpu_type=hppa ;;
77changequote(,)dnl
7c2fadd1 78 i[456]86) cpu_type=i386 ;;
e7757ad0
KR
79 m680[012346]0) cpu_type=m68k ;;
80 m68008) cpu_type=m68k ;;
81 m683??) cpu_type=m68k ;;
82changequote([,])dnl
83 m8*) cpu_type=m88k ;;
e16b9537 84 mips*el) cpu_type=mips endian=little ;;
01c655cc 85# start-sanitize-r5900
9587640a 86 mips*5900*) cpu_type=mips endian=little ;;
01c655cc 87# end-sanitize-r5900
e7757ad0
KR
88 mips*) cpu_type=mips endian=big ;;
89 powerpcle*) cpu_type=ppc endian=little ;;
90 powerpc*) cpu_type=ppc endian=big ;;
91 rs6000*) cpu_type=ppc ;;
2b09622a
DE
92 sparclite*) cpu_type=sparc arch=sparclite ;;
93 sparclet*) cpu_type=sparc arch=sparclet ;;
70ee7782 94 sparc64*) cpu_type=sparc arch=v9-64 ;;
2b09622a 95 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
756adc97 96 v850*) cpu_type=v850 ;;
a1c7c0f3 97 *) cpu_type=${cpu} ;;
e7757ad0
KR
98 esac
99
100 if test ${this_target} = $target ; then
101 target_cpu_type=${cpu_type}
6ff87ead
NC
102 if test x${endian} = xbig; then
103 AC_DEFINE(TARGET_BYTES_BIG_ENDIAN, 1)
104 elif test x${endian} = xlittle; then
105 AC_DEFINE(TARGET_BYTES_BIG_ENDIAN, 0)
106 fi
e7757ad0
KR
107 elif test ${target_cpu_type} != ${cpu_type} ; then
108 continue
109 fi
110
e7757ad0
KR
111 generic_target=${cpu_type}-$vendor-$os
112 dev=no
113 bfd_gas=no
114 em=generic
7cf4d7ff 115
e7757ad0
KR
116 # assign object format
117 case ${generic_target} in
6ff87ead
NC
118 a29k-*-coff) fmt=coff ;;
119 a29k-amd-udi) fmt=coff ;;
120 a29k-amd-ebmon) fmt=coff ;;
121 a29k-nyu-sym1) fmt=coff ;;
e7757ad0
KR
122 a29k-*-vxworks*) fmt=coff ;;
123
0170f1c3
RH
124 alpha*-*-*vms*) fmt=evax ;;
125 alpha*-*-netware*) fmt=ecoff ;;
126 alpha*-*-openbsd*) fmt=ecoff ;;
127 alpha*-*-osf*) fmt=ecoff ;;
128 alpha*-*-linuxecoff*) fmt=ecoff ;;
129 alpha*-*-linux*) fmt=elf em=linux ;;
816153a3 130
e7757ad0 131 arc-*-elf*) fmt=elf bfd_gas=yes ;;
4181c985 132
6ff87ead
NC
133 arm-*-riscix*) fmt=aout em=riscix ;;
134 arm-*-aout) fmt=aout ;;
76fb6d2f 135 arm-*-coff | thumb-*-coff) fmt=coff ;;
e7757ad0 136 arm-*-riscix*) fmt=aout ;;
6ff87ead 137 arm-*-pe) fmt=coff em=pe ;;
e7757ad0 138
05a8bf33 139 d10v-*-*) fmt=elf bfd_gas=yes ;;
7d0f8249
MH
140# start-sanitize-d30v
141 d30v-*-*) fmt=elf bfd_gas=yes ;;
142# end-sanitize-d30v
7be9a312 143
e7757ad0
KR
144 hppa-*-*elf*) fmt=elf em=hppa ;;
145 hppa-*-lites*) fmt=elf em=hppa ;;
146 hppa-*-osf*) fmt=som em=hppa ;;
332d5c49 147 hppa-*-rtems*) fmt=elf em=hppa ;;
e7757ad0
KR
148 hppa-*-hpux*) fmt=som em=hppa ;;
149 hppa-*-bsd*) fmt=som em=hppa ;;
150 hppa-*-hiux*) fmt=som em=hppa ;;
151
152 h8300-*-coff) fmt=coff ;;
153
6ff87ead 154 i386-ibm-aix*) fmt=coff em=i386aix ;;
7d0f8249 155 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
e7757ad0
KR
156 i386-*-bsd*) fmt=aout em=386bsd ;;
157 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
158 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
76fb6d2f 159 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
a1c7c0f3 160 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
6ff87ead 161 i386-*-linux*coff*) fmt=coff em=linux ;;
e7757ad0 162 i386-*-linux*) fmt=elf em=linux ;;
6ff87ead 163 i386-*-lynxos*) fmt=coff em=lynx ;;
15ddb4c9 164 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
e7757ad0 165 fmt=elf ;;
15ddb4c9
AC
166 i386-*-freebsdelf*) fmt=elf ;;
167 i386-*-freebsd*) fmt=aout em=386bsd ;;
6cc7a938
ILT
168 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
169 fmt=coff ;;
170 i386-*-sco3.2v5*) fmt=elf
6ff87ead
NC
171 if test ${this_target} = $target; then
172 AC_DEFINE(SCO_ELF)
173 fi
174 ;;
6cc7a938 175 i386-*-sco3.2*) fmt=coff ;;
e7757ad0 176 i386-*-vsta) fmt=aout ;;
60dc9fb2 177 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
6ff87ead
NC
178 fmt=coff em=go32;;
179 i386-*-rtems*) fmt=coff ;;
6c186c48
SC
180 i386-*-gnu*) fmt=elf ;;
181 i386-*-mach*)
e7757ad0
KR
182 fmt=aout em=mach bfd_gas=yes ;;
183 i386-*-msdos*) fmt=aout ;;
6c186c48 184 i386-*-moss*) fmt=elf ;;
6ff87ead
NC
185 i386-*-pe) fmt=coff em=pe ;;
186 i386-*-cygwin32) fmt=coff em=pe bfd_gas=yes ;;
187 i386-*-*nt) fmt=coff em=pe ;;
e7757ad0 188 i960-*-bout) fmt=bout ;;
6ff87ead
NC
189 i960-*-coff) fmt=coff em=ic960 ;;
190 i960-*-rtems*) fmt=coff em=ic960 ;;
e7757ad0
KR
191 i960-*-nindy*) fmt=bout ;;
192 i960-*-vxworks4*) fmt=bout ;;
193 i960-*-vxworks5.0) fmt=bout ;;
6ff87ead 194 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
e7757ad0
KR
195 i960-*-vxworks*) fmt=bout ;;
196
374bdac7
DE
197 m32r-*-*) fmt=elf bfd_gas=yes ;;
198
e7757ad0
KR
199 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
200 fmt=aout em=sun3 ;;
6ff87ead
NC
201 m68k-motorola-sysv*) fmt=coff em=delta ;;
202 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
203 m68k-apollo-*) fmt=coff em=apollo ;;
fee3e248
ILT
204 m68k-*-sysv4*) # must be before -sysv*
205 fmt=elf em=svr4 ;;
206 m68k-*-elf*) fmt=elf ;;
1c94de4d 207 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
6ff87ead 208 fmt=coff ;;
e7757ad0 209 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
535cfd0f
ILT
210 m68k-*-linux*aout*) fmt=aout em=linux ;;
211 m68k-*-linux*) fmt=elf em=linux ;;
6ff87ead 212 m68k-*-lynxos*) fmt=coff em=lynx ;;
e7757ad0 213 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
76fb6d2f 214 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
6ff87ead 215 m68k-apple-aux*) fmt=coff em=aux ;;
8a6f53e9 216 m68k-*-psos*) fmt=elf em=psos;;
e7757ad0 217
6ff87ead
NC
218 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
219 m88k-*-coff*) fmt=coff ;;
e7757ad0
KR
220
221 # don't change em like *-*-bsd does
6ff87ead
NC
222 mips-dec-netbsd*) fmt=elf endian=little ;;
223 mips-dec-openbsd*) fmt=elf endian=little ;;
224 mips-dec-bsd*) fmt=aout ;;
225 mips-sony-bsd*) fmt=ecoff ;;
e7757ad0 226 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
6ff87ead
NC
227 mips-*-ultrix*) fmt=ecoff endian=little ;;
228 mips-*-osf*) fmt=ecoff endian=little ;;
229 mips-*-ecoff*) fmt=ecoff ;;
230 mips-*-ecoff*) fmt=ecoff ;;
231 mips-*-irix6*) fmt=elf ;;
232 mips-*-irix5*) fmt=elf ;;
233 mips-*-irix*) fmt=ecoff ;;
234 mips-*-lnews*) fmt=ecoff em=lnews ;;
235 mips-*-riscos*) fmt=ecoff ;;
236 mips-*-sysv*) fmt=ecoff ;;
fc984eb0 237 mips-*-elf* | mips-*-rtems* | mips-*-linux* | mips-*-gnu* | mips-*-openbsd*)
6ff87ead 238 fmt=elf ;;
ae1b99e4
JL
239 mn10200-*-*) fmt=elf bfd_gas=yes ;;
240 mn10300-*-*) fmt=elf bfd_gas=yes ;;
0ff513d9 241 ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
6ff87ead 242 fmt=coff em=pe ;;
e7757ad0 243 ppc-*-aix*) fmt=coff ;;
515c7142 244 ppc-*-beos*) fmt=coff ;;
76fb6d2f 245 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
6ff87ead 246 fmt=elf ;;
159e6ef8
MM
247 ppc-*-linux*) fmt=elf
248 case "$endian" in
6ff87ead 249 big) ;;
159e6ef8
MM
250 *) AC_MSG_ERROR(Linux must be configured big endian) ;;
251 esac
252 ;;
253 ppc-*-solaris*) fmt=elf
6ff87ead
NC
254 if test ${this_target} = $target; then
255 AC_DEFINE(TARGET_SOLARIS_COMMENT)
256 fi
257 if test x${endian} = xbig; then
258 AC_MSG_ERROR(Solaris must be configured little endian)
259 fi
1c94de4d 260 ;;
6ff87ead 261 ppc-*-rtems*) fmt=elf ;;
880b7429
KR
262 ppc-*-macos* | ppc-*-mpw*)
263 fmt=coff em=macos ;;
e7757ad0
KR
264 ppc-*-netware*) fmt=elf em=ppcnw ;;
265
fed13a5e
ILT
266 sh-*-elf*) fmt=elf ;;
267 sh-*-coff*) fmt=coff ;;
5e4e4739 268 sh-*-rtems*) fmt=elf ;;
816153a3 269
5f757edc
ILT
270 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
271 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
76fb6d2f 272 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
e7757ad0 273
1c94de4d 274 sparc-*-rtems*) fmt=aout ;;
e7757ad0 275 sparc-*-sunos4*) fmt=aout em=sun3 ;;
df586de2 276 sparc-*-aout | sparc*-*-vxworks*)
fed13a5e 277 fmt=aout em=sparcaout ;;
e7757ad0 278 sparc-*-coff) fmt=coff ;;
2e013bb7
ILT
279 sparc-*-linux*aout*) fmt=aout em=linux ;;
280 sparc-*-linux*) fmt=elf em=linux ;;
e7757ad0
KR
281 sparc-*-lynxos*) fmt=coff em=lynx ;;
282 sparc-fujitsu-none) fmt=aout ;;
0b27ea39 283 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
e7757ad0
KR
284 fmt=elf ;;
285 sparc-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
76fb6d2f 286 sparc-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
c6aa56bc 287
64556643 288# start-sanitize-tic80
6ff87ead 289 tic80-*-*) fmt=coff ;;
64556643 290# end-sanitize-tic80
103dd764
DE
291
292# start-sanitize-sky
293 txvu-*-*) fmt=elf bfd_gas=yes ;;
294# end-sanitize-sky
295
c6aa56bc 296 v850-*-*) fmt=elf bfd_gas=yes ;;
e7757ad0 297
6ff87ead
NC
298# start-sanitize-v850e
299 v850e-*-*) fmt=elf bfd_gas=yes ;;
60dc9fb2 300 v850ea-*-*) fmt=elf bfd_gas=yes ;;
5e4e4739 301# end-sanitize-v850e
e7757ad0
KR
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
0170f1c3 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
5f757edc 357 case ${cpu_type} in
374bdac7
DE
358 m32r)
359 case ${extra_objects} in
360 *cgen.o*) ;;
361 *) extra_objects="$extra_objects cgen.o"
374bdac7
DE
362 AC_DEFINE(USING_CGEN)
363 ;;
364 esac
365 ;;
366
1c9dbb83
ILT
367 m68k)
368 case ${extra_objects} in
369 *m68k-parse.o*) ;;
370 *) extra_objects="$extra_objects m68k-parse.o" ;;
371 esac
372 ;;
efec4a28
DP
373
374 mips)
515c7142 375 echo ${extra_objects} | grep -s "itbl-parse.o"
efec4a28 376 if test $? -ne 0 ; then
515c7142 377 extra_objects="$extra_objects itbl-parse.o"
efec4a28
DP
378 fi
379
515c7142 380 echo ${extra_objects} | grep -s "itbl-lex.o"
efec4a28 381 if test $? -ne 0 ; then
515c7142 382 extra_objects="$extra_objects itbl-lex.o"
efec4a28
DP
383 fi
384
515c7142 385 echo ${extra_objects} | grep -s "itbl-ops.o"
efec4a28 386 if test $? -ne 0 ; then
515c7142 387 extra_objects="$extra_objects itbl-ops.o"
efec4a28
DP
388 fi
389 ;;
390
2b09622a 391 sparc)
e01e18a8
DE
392 if test $this_target = $target ; then
393 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}")
394 fi
2b09622a
DE
395 ;;
396
efec4a28
DP
397 *)
398 ;;
5f757edc
ILT
399 esac
400
e7757ad0
KR
401# See if we really can support this configuration with the emulation code.
402
403 if test $this_target = $target ; then
404 primary_bfd_gas=$bfd_gas
405 obj_format=$fmt
e7757ad0
KR
406 te_file=$em
407
408 if test $bfd_gas = no ; then
409 # Can't support other configurations this way.
410 break
411 fi
412 elif test $bfd_gas = no ; then
413 # Can't support this configuration.
414 break
415 fi
416
417# From target name and format, produce a list of supported emulations.
418
419 case ${generic_target}-${fmt} in
1cb0d00d 420 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
515c7142
ILT
421 mips-*-linux*-*) case "$endian" in
422 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
423 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
424 esac ;;
425 mips-*-lnews*-ecoff) ;;
e7757ad0 426 mips-*-*-ecoff) case "$endian" in
1cb0d00d
KR
427 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
428 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
e7757ad0
KR
429 esac ;;
430 mips-*-*-elf) case "$endian" in
1cb0d00d
KR
431 big) emulation="mipsbelf mipslelf mipself" ;;
432 *) emulation="mipslelf mipsbelf mipself" ;;
515c7142
ILT
433 # Uncommenting the next line will turn on support for i386 COFF
434 # in any i386 ELF configuration. This probably doesn't work
435 # correctly.
436 # i386-*-*-elf) emulation="i386coff i386elf" ;;
e7757ad0
KR
437 esac ;;
438 esac
439
440 emulations="$emulations $emulation"
441
e7757ad0 442done
fecd2382 443
8cac6ca6
KR
444# Assign floating point type. Most processors with FP support
445# IEEE FP. On those that don't support FP at all, usually IEEE
446# is emulated.
b678740d 447case ${target_cpu} in
904b6037 448 vax | tahoe ) atof=${target_cpu} ;;
e7757ad0 449 *) atof=ieee ;;
fecd2382
RP
450esac
451
8cac6ca6 452case "${obj_format}" in
b11fb939 453 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
8cac6ca6 454esac
7cf4d7ff 455
b11fb939
KR
456dnl
457dnl Make sure the desired support files exist.
458dnl
459
bf4bd1fc
ILT
460if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
461 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
b11fb939
KR
462fi
463
fb589130 464if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
b11fb939 465 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
7cf4d7ff
KR
466fi
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 589yes)
e2b4bd2a 590 OPCODES_LIB=../opcodes/libopcodes.la
1c94de4d 591 ;;
ae09d880 592esac
ae09d880 593
b11fb939 594case "${need_bfd}" in
1c94de4d 595yes)
e2b4bd2a 596 BFDLIB=../bfd/libbfd.la
1c94de4d 597 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
1c94de4d 598 ;;
4f6f4aa8 599esac
2e013bb7 600
b11fb939 601AC_SUBST(BFDLIB)
2e013bb7
ILT
602AC_SUBST(OPCODES_LIB)
603
b11fb939 604AC_SUBST(ALL_OBJ_DEPS)
4f6f4aa8 605
b11fb939
KR
606AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
607AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
608AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
609AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
610AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
611
b11fb939 612AC_PROG_CC
b11fb939 613
e2b4bd2a
ILT
614AC_PROG_YACC
615AC_PROG_LEX
616AC_DECL_YYTEXT
617
618AM_MAINTAINER_MODE
619AM_CYGWIN32
620AM_EXEEXT
621
b11fb939
KR
622AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
623
bf111c9f
KR
624# Put this here so that autoconf's "cross-compiling" message doesn't confuse
625# people who are not cross-compiling but are compiling cross-assemblers.
626AC_MSG_CHECKING(whether compiling a cross-assembler)
627if test "${host}" = "${target}"; then
f2889110
KR
628 cross_gas=no
629else
bf111c9f
KR
630 cross_gas=yes
631 AC_DEFINE(CROSS_COMPILE)
bf111c9f
KR
632fi
633AC_MSG_RESULT($cross_gas)
634
b11fb939
KR
635dnl ansidecl.h will deal with const
636dnl AC_CONST
637AC_FUNC_ALLOCA
638AC_C_INLINE
639
f2889110
KR
640# VMS doesn't have unlink.
641AC_CHECK_FUNCS(unlink remove, break)
28d3e4a3 642
e63c594d
FF
643# Some systems don't have sbrk().
644AC_CHECK_FUNCS(sbrk)
645
b11fb939
KR
646# Some non-ANSI preprocessors botch requoting inside strings. That's bad
647# enough, but on some of those systems, the assert macro relies on requoting
648# working properly!
bf111c9f 649GAS_WORKING_ASSERT
b11fb939
KR
650
651# On some systems, the system header files may not declare malloc, realloc,
652# and free. There are places where gas needs these functions to have been
653# declared -- such as when taking their addresses.
bf111c9f 654gas_test_headers="
b11fb939
KR
655#ifdef HAVE_MEMORY_H
656#include <memory.h>
657#endif
658#ifdef HAVE_STRING_H
659#include <string.h>
5cece526
ILT
660#else
661#ifdef HAVE_STRINGS_H
662#include <strings.h>
663#endif
b11fb939
KR
664#endif
665#ifdef HAVE_STDLIB_H
666#include <stdlib.h>
667#endif
668#ifdef HAVE_UNISTD_H
669#include <unistd.h>
670#endif
bf111c9f 671"
5cece526 672GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
bf111c9f 673GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
5f757edc 674GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
5cece526 675GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
b11fb939
KR
676
677# Does errno.h declare errno, or do we have to add a separate declaration
678# for it?
bf111c9f 679GAS_CHECK_DECL_NEEDED(errno, f, int f, [
b11fb939
KR
680#ifdef HAVE_ERRNO_H
681#include <errno.h>
682#endif
bf111c9f 683])
b11fb939 684
b11fb939 685dnl This must come last.
515c7142
ILT
686
687dnl We used to make symlinks to files in the source directory, but now
688dnl we just use the right name for .c files, and create .h files in
689dnl the build directory which include the right .h file. Make sure
690dnl the old symlinks don't exist, so that a reconfigure in an existing
691dnl directory behaves reasonably.
692
693AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in,
694[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
695 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
696 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
697 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
39ffbb4d
DE
698 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
699 case ${target_cpu_type} in
700 m32r) echo '#include "opcodes/'"${target_cpu_type}"'-opc.h"' > cgen-opc.h ;;
701 esac],
515c7142
ILT
702[target_cpu_type=${target_cpu_type}
703 obj_format=${obj_format}
704 te_file=${te_file}])
This page took 0.272894 seconds and 4 git commands to generate.