keep outofrange.s
[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
921d7728 13AM_INIT_AUTOMAKE(gas, 2.9.4)
e2b4bd2a
ILT
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
603e9cf1
CM
46# Makefile target for installing gas in $(tooldir)/bin.
47install_tooldir=install-exec-tooldir
48
e7757ad0
KR
49canon_targets=""
50if test -n "$enable_targets" ; then
51 for t in `echo $enable_targets | sed 's/,/ /g'`; do
ec2f730d 52 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $t 2>/dev/null`
e7757ad0
KR
53 if test -n "$result" ; then
54 canon_targets="$canon_targets $result"
55# else
56# # Permit "all", etc. We don't support it yet though.
57# canon_targets="$canon_targets $t"
58 fi
59 done
60 GAS_UNIQ(canon_targets)
61fi
62
63emulations=""
64
a21a12e3
NC
65using_cgen=no
66
e7757ad0
KR
67for this_target in $target $canon_targets ; do
68
64556643
FF
69changequote(,)dnl
70 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
71changequote([,])dnl
8cac6ca6 72
e7757ad0 73 # check for architecture variants
2b09622a 74 arch=
6ff87ead 75 endian=
e7757ad0 76 case ${cpu} in
0170f1c3 77 alpha*) cpu_type=alpha ;;
ae09d880
ILT
78 armeb) cpu_type=arm endian=big ;;
79 arm*) cpu_type=arm endian=little ;;
76fb6d2f 80 thumb*) cpu_type=arm endian=little ;;
e7757ad0
KR
81 hppa*) cpu_type=hppa ;;
82changequote(,)dnl
7c2fadd1 83 i[456]86) cpu_type=i386 ;;
e7757ad0 84 m680[012346]0) cpu_type=m68k ;;
921d7728 85changequote([,])dnl
e7757ad0
KR
86 m68008) cpu_type=m68k ;;
87 m683??) cpu_type=m68k ;;
921d7728 88 m5200) cpu_type=m68k ;;
e7757ad0 89 m8*) cpu_type=m88k ;;
e16b9537 90 mips*el) cpu_type=mips endian=little ;;
01c655cc 91# start-sanitize-r5900
9587640a 92 mips*5900*) cpu_type=mips endian=little ;;
01c655cc 93# end-sanitize-r5900
e7757ad0
KR
94 mips*) cpu_type=mips endian=big ;;
95 powerpcle*) cpu_type=ppc endian=little ;;
96 powerpc*) cpu_type=ppc endian=big ;;
97 rs6000*) cpu_type=ppc ;;
2b09622a
DE
98 sparclite*) cpu_type=sparc arch=sparclite ;;
99 sparclet*) cpu_type=sparc arch=sparclet ;;
70ee7782 100 sparc64*) cpu_type=sparc arch=v9-64 ;;
307edcc0 101 sparc86x*) cpu_type=sparc arch=sparc86x ;;
2b09622a 102 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
756adc97 103 v850*) cpu_type=v850 ;;
a1c7c0f3 104 *) cpu_type=${cpu} ;;
e7757ad0
KR
105 esac
106
107 if test ${this_target} = $target ; then
108 target_cpu_type=${cpu_type}
109 elif test ${target_cpu_type} != ${cpu_type} ; then
110 continue
111 fi
112
e7757ad0
KR
113 generic_target=${cpu_type}-$vendor-$os
114 dev=no
115 bfd_gas=no
116 em=generic
7cf4d7ff 117
e7757ad0
KR
118 # assign object format
119 case ${generic_target} in
6ff87ead
NC
120 a29k-*-coff) fmt=coff ;;
121 a29k-amd-udi) fmt=coff ;;
122 a29k-amd-ebmon) fmt=coff ;;
123 a29k-nyu-sym1) fmt=coff ;;
e7757ad0
KR
124 a29k-*-vxworks*) fmt=coff ;;
125
0170f1c3
RH
126 alpha*-*-*vms*) fmt=evax ;;
127 alpha*-*-netware*) fmt=ecoff ;;
128 alpha*-*-openbsd*) fmt=ecoff ;;
129 alpha*-*-osf*) fmt=ecoff ;;
130 alpha*-*-linuxecoff*) fmt=ecoff ;;
22d3fbd6
NC
131 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
132 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
816153a3 133
e7757ad0 134 arc-*-elf*) fmt=elf bfd_gas=yes ;;
4181c985 135
6ff87ead
NC
136 arm-*-riscix*) fmt=aout em=riscix ;;
137 arm-*-aout) fmt=aout ;;
76fb6d2f 138 arm-*-coff | thumb-*-coff) fmt=coff ;;
603e9cf1 139 arm-*-elf | thumb-*-elf) fmt=elf ;;
9ac8e451 140 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
e7757ad0 141 arm-*-riscix*) fmt=aout ;;
22d3fbd6 142 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
e7757ad0 143
05a8bf33 144 d10v-*-*) fmt=elf bfd_gas=yes ;;
7d0f8249 145 d30v-*-*) fmt=elf bfd_gas=yes ;;
7be9a312 146
603e9cf1
CM
147# start-sanitize-sky
148 dvp-*-*) fmt=elf bfd_gas=yes install_tooldir= ;;
149# end-sanitize-sky
150
352b0f4d
DB
151 fr30-*-*) fmt=elf bfd_gas=yes ;;
152
e7757ad0
KR
153 hppa-*-*elf*) fmt=elf em=hppa ;;
154 hppa-*-lites*) fmt=elf em=hppa ;;
155 hppa-*-osf*) fmt=som em=hppa ;;
332d5c49 156 hppa-*-rtems*) fmt=elf em=hppa ;;
e7757ad0 157 hppa-*-hpux*) fmt=som em=hppa ;;
a21a12e3 158 hppa-*-mpeix*) fmt=som em=hppa ;;
e7757ad0
KR
159 hppa-*-bsd*) fmt=som em=hppa ;;
160 hppa-*-hiux*) fmt=som em=hppa ;;
161
162 h8300-*-coff) fmt=coff ;;
163
6ff87ead 164 i386-ibm-aix*) fmt=coff em=i386aix ;;
7d0f8249 165 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
cc88a106
ILT
166dnl start-sanitize-beos
167 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
a1624e3f 168 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
cc88a106 169dnl end-sanitize-beos
e7757ad0
KR
170 i386-*-bsd*) fmt=aout em=386bsd ;;
171 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
172 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
76fb6d2f 173 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
a1c7c0f3 174 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
6ff87ead 175 i386-*-linux*coff*) fmt=coff em=linux ;;
a1624e3f 176 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
6ff87ead 177 i386-*-lynxos*) fmt=coff em=lynx ;;
15ddb4c9 178 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
a1624e3f
RH
179 fmt=elf bfd_gas=yes ;;
180 i386-*-freebsdelf*) fmt=elf bfd_gas=yes ;;
15ddb4c9 181 i386-*-freebsd*) fmt=aout em=386bsd ;;
6cc7a938
ILT
182 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
183 fmt=coff ;;
184 i386-*-sco3.2v5*) fmt=elf
6ff87ead
NC
185 if test ${this_target} = $target; then
186 AC_DEFINE(SCO_ELF)
187 fi
188 ;;
6cc7a938 189 i386-*-sco3.2*) fmt=coff ;;
e7757ad0 190 i386-*-vsta) fmt=aout ;;
60dc9fb2 191 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
6ff87ead
NC
192 fmt=coff em=go32;;
193 i386-*-rtems*) fmt=coff ;;
6c186c48
SC
194 i386-*-gnu*) fmt=elf ;;
195 i386-*-mach*)
e7757ad0
KR
196 fmt=aout em=mach bfd_gas=yes ;;
197 i386-*-msdos*) fmt=aout ;;
6c186c48 198 i386-*-moss*) fmt=elf ;;
6ff87ead 199 i386-*-pe) fmt=coff em=pe ;;
c296a052 200 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
0040c1e9
ILT
201 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
202 i386-*-*nt*) fmt=coff em=pe ;;
e7757ad0 203 i960-*-bout) fmt=bout ;;
6ff87ead
NC
204 i960-*-coff) fmt=coff em=ic960 ;;
205 i960-*-rtems*) fmt=coff em=ic960 ;;
e7757ad0
KR
206 i960-*-nindy*) fmt=bout ;;
207 i960-*-vxworks4*) fmt=bout ;;
208 i960-*-vxworks5.0) fmt=bout ;;
6ff87ead 209 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
e7757ad0
KR
210 i960-*-vxworks*) fmt=bout ;;
211
374bdac7
DE
212 m32r-*-*) fmt=elf bfd_gas=yes ;;
213
e7757ad0
KR
214 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
215 fmt=aout em=sun3 ;;
6ff87ead
NC
216 m68k-motorola-sysv*) fmt=coff em=delta ;;
217 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
218 m68k-apollo-*) fmt=coff em=apollo ;;
fee3e248
ILT
219 m68k-*-sysv4*) # must be before -sysv*
220 fmt=elf em=svr4 ;;
221 m68k-*-elf*) fmt=elf ;;
1c94de4d 222 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
6ff87ead 223 fmt=coff ;;
e7757ad0 224 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
535cfd0f 225 m68k-*-linux*aout*) fmt=aout em=linux ;;
22d3fbd6 226 m68k-*-linux-gnu*) fmt=elf em=linux ;;
44be4397 227 m68k-*-gnu*) fmt=elf ;;
6ff87ead 228 m68k-*-lynxos*) fmt=coff em=lynx ;;
e7757ad0 229 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
76fb6d2f 230 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
6ff87ead 231 m68k-apple-aux*) fmt=coff em=aux ;;
8a6f53e9 232 m68k-*-psos*) fmt=elf em=psos;;
e7757ad0 233
6ff87ead
NC
234 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
235 m88k-*-coff*) fmt=coff ;;
e7757ad0
KR
236
237 # don't change em like *-*-bsd does
6ff87ead
NC
238 mips-dec-netbsd*) fmt=elf endian=little ;;
239 mips-dec-openbsd*) fmt=elf endian=little ;;
ae6130f1 240 mips-dec-bsd*) fmt=aout endian=little ;;
6ff87ead 241 mips-sony-bsd*) fmt=ecoff ;;
e7757ad0 242 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
6ff87ead
NC
243 mips-*-ultrix*) fmt=ecoff endian=little ;;
244 mips-*-osf*) fmt=ecoff endian=little ;;
245 mips-*-ecoff*) fmt=ecoff ;;
246 mips-*-ecoff*) fmt=ecoff ;;
247 mips-*-irix6*) fmt=elf ;;
248 mips-*-irix5*) fmt=elf ;;
249 mips-*-irix*) fmt=ecoff ;;
250 mips-*-lnews*) fmt=ecoff em=lnews ;;
251 mips-*-riscos*) fmt=ecoff ;;
252 mips-*-sysv*) fmt=ecoff ;;
22d3fbd6 253 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
6ff87ead 254 fmt=elf ;;
ae1b99e4
JL
255 mn10200-*-*) fmt=elf bfd_gas=yes ;;
256 mn10300-*-*) fmt=elf bfd_gas=yes ;;
c296a052 257 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
6ff87ead 258 fmt=coff em=pe ;;
e7757ad0 259 ppc-*-aix*) fmt=coff ;;
515c7142 260 ppc-*-beos*) fmt=coff ;;
76fb6d2f 261 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
6ff87ead 262 fmt=elf ;;
22d3fbd6 263 ppc-*-linux-gnu*) fmt=elf
159e6ef8 264 case "$endian" in
6ff87ead 265 big) ;;
22d3fbd6 266 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
159e6ef8
MM
267 esac
268 ;;
269 ppc-*-solaris*) fmt=elf
6ff87ead
NC
270 if test ${this_target} = $target; then
271 AC_DEFINE(TARGET_SOLARIS_COMMENT)
272 fi
273 if test x${endian} = xbig; then
274 AC_MSG_ERROR(Solaris must be configured little endian)
275 fi
1c94de4d 276 ;;
6ff87ead 277 ppc-*-rtems*) fmt=elf ;;
880b7429
KR
278 ppc-*-macos* | ppc-*-mpw*)
279 fmt=coff em=macos ;;
e7757ad0
KR
280 ppc-*-netware*) fmt=elf em=ppcnw ;;
281
fed13a5e
ILT
282 sh-*-elf*) fmt=elf ;;
283 sh-*-coff*) fmt=coff ;;
f3aa01e2 284 sh-*-rtems*) fmt=coff ;;
816153a3 285
5f757edc
ILT
286 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
287 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
76fb6d2f 288 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
e7757ad0 289
1c94de4d 290 sparc-*-rtems*) fmt=aout ;;
e7757ad0 291 sparc-*-sunos4*) fmt=aout em=sun3 ;;
df586de2 292 sparc-*-aout | sparc*-*-vxworks*)
fed13a5e 293 fmt=aout em=sparcaout ;;
e7757ad0 294 sparc-*-coff) fmt=coff ;;
2e013bb7 295 sparc-*-linux*aout*) fmt=aout em=linux ;;
22d3fbd6 296 sparc-*-linux-gnu*) fmt=elf em=linux ;;
e7757ad0
KR
297 sparc-*-lynxos*) fmt=coff em=lynx ;;
298 sparc-fujitsu-none) fmt=aout ;;
0b27ea39 299 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
e7757ad0 300 fmt=elf ;;
a1624e3f
RH
301 sparc-*-netbsd*) fmt=aout em=nbsd ;;
302 sparc-*-openbsd*) fmt=aout em=nbsd ;;
c6aa56bc 303
0e034c77
ILT
304 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
305 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
64556643 306# start-sanitize-tic80
6ff87ead 307 tic80-*-*) fmt=coff ;;
64556643 308# end-sanitize-tic80
103dd764 309
c6aa56bc 310 v850-*-*) fmt=elf bfd_gas=yes ;;
6ff87ead 311 v850e-*-*) fmt=elf bfd_gas=yes ;;
60dc9fb2 312 v850ea-*-*) fmt=elf bfd_gas=yes ;;
a21a12e3 313
e7757ad0
KR
314 vax-*-bsd* | vax-*-ultrix*)
315 fmt=aout ;;
316 vax-*-vms) fmt=vms ;;
317
318 z8k-*-coff | z8k-*-sim)
319 fmt=coff ;;
320
321 w65-*-*) fmt=coff ;;
322
323 *-*-aout | *-*-scout)
324 fmt=aout ;;
325 *-*-nindy*)
326 fmt=bout ;;
327 *-*-bsd*)
328 fmt=aout em=sun3 ;;
329 *-*-generic) fmt=generic ;;
330 *-*-xray | *-*-hms) fmt=coff ;;
331 *-*-sim) fmt=coff ;;
332 *-*-elf | *-*-sysv4* | *-*-solaris*)
6df07e7f 333 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
e7757ad0
KR
334 fmt=elf dev=yes ;;
335 *-*-vxworks) fmt=aout ;;
336 *-*-netware) fmt=elf ;;
337 esac
338
ae6130f1
ILT
339 if test ${this_target} = $target ; then
340 if test x${endian} = xbig; then
341 AC_DEFINE(TARGET_BYTES_BIG_ENDIAN, 1)
342 elif test x${endian} = xlittle; then
343 AC_DEFINE(TARGET_BYTES_BIG_ENDIAN, 0)
344 fi
345 fi
346
e7757ad0 347 case ${cpu_type}-${fmt} in
0170f1c3 348 alpha*-*) bfd_gas=yes ;;
e7757ad0
KR
349 arm-*) bfd_gas=yes ;;
350 # not yet
351 # i386-aout) bfd_gas=preferred ;;
352 mips-*) bfd_gas=yes ;;
353 ns32k-*) bfd_gas=yes ;;
354 ppc-*) bfd_gas=yes ;;
355 sparc-*) bfd_gas=yes ;;
356 *-elf) bfd_gas=yes ;;
357 *-ecoff) bfd_gas=yes ;;
358 *-som) bfd_gas=yes ;;
359 *) ;;
360 esac
361
5f757edc
ILT
362# Other random stuff.
363
ae09d880
ILT
364 # do we need the opcodes library?
365 case ${cpu_type} in
0e034c77 366 vax | i386 | tic30)
7c2fadd1
ILT
367 ;;
368 *)
369 need_opcodes=yes
f2e272e0
ILT
370
371 case "${enable_shared}" in
372 yes) shared_opcodes=true ;;
373 *opcodes*) shared_opcodes=true ;;
374 *) shared_opcodes=false ;;
375 esac
159e6ef8 376 if test "${shared_opcodes}" = "true"; then
7c2fadd1
ILT
377 # A shared libopcodes must be linked against libbfd.
378 need_bfd=yes
379 fi
380 ;;
ae09d880
ILT
381 esac
382
5f757edc 383 case ${cpu_type} in
a21a12e3 384 fr30 | m32r)
7c269afb 385 case "x${extra_objects}" in
374bdac7
DE
386 *cgen.o*) ;;
387 *) extra_objects="$extra_objects cgen.o"
a21a12e3 388 using_cgen=yes
374bdac7
DE
389 ;;
390 esac
391 ;;
392
1c9dbb83
ILT
393 m68k)
394 case ${extra_objects} in
395 *m68k-parse.o*) ;;
396 *) extra_objects="$extra_objects m68k-parse.o" ;;
397 esac
398 ;;
efec4a28
DP
399
400 mips)
515c7142 401 echo ${extra_objects} | grep -s "itbl-parse.o"
efec4a28 402 if test $? -ne 0 ; then
515c7142 403 extra_objects="$extra_objects itbl-parse.o"
efec4a28
DP
404 fi
405
515c7142 406 echo ${extra_objects} | grep -s "itbl-lex.o"
efec4a28 407 if test $? -ne 0 ; then
515c7142 408 extra_objects="$extra_objects itbl-lex.o"
efec4a28
DP
409 fi
410
515c7142 411 echo ${extra_objects} | grep -s "itbl-ops.o"
efec4a28 412 if test $? -ne 0 ; then
515c7142 413 extra_objects="$extra_objects itbl-ops.o"
efec4a28
DP
414 fi
415 ;;
416
2b09622a 417 sparc)
e01e18a8
DE
418 if test $this_target = $target ; then
419 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}")
420 fi
2b09622a
DE
421 ;;
422
efec4a28
DP
423 *)
424 ;;
5f757edc
ILT
425 esac
426
e7757ad0
KR
427# See if we really can support this configuration with the emulation code.
428
429 if test $this_target = $target ; then
430 primary_bfd_gas=$bfd_gas
431 obj_format=$fmt
e7757ad0
KR
432 te_file=$em
433
434 if test $bfd_gas = no ; then
435 # Can't support other configurations this way.
436 break
437 fi
438 elif test $bfd_gas = no ; then
439 # Can't support this configuration.
440 break
441 fi
442
443# From target name and format, produce a list of supported emulations.
444
445 case ${generic_target}-${fmt} in
1cb0d00d 446 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
22d3fbd6 447 mips-*-linux-gnu*-*) case "$endian" in
515c7142
ILT
448 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
449 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
450 esac ;;
451 mips-*-lnews*-ecoff) ;;
e7757ad0 452 mips-*-*-ecoff) case "$endian" in
1cb0d00d
KR
453 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
454 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
e7757ad0
KR
455 esac ;;
456 mips-*-*-elf) case "$endian" in
1cb0d00d
KR
457 big) emulation="mipsbelf mipslelf mipself" ;;
458 *) emulation="mipslelf mipsbelf mipself" ;;
515c7142
ILT
459 # Uncommenting the next line will turn on support for i386 COFF
460 # in any i386 ELF configuration. This probably doesn't work
461 # correctly.
462 # i386-*-*-elf) emulation="i386coff i386elf" ;;
e7757ad0
KR
463 esac ;;
464 esac
465
466 emulations="$emulations $emulation"
467
e7757ad0 468done
fecd2382 469
8cac6ca6
KR
470# Assign floating point type. Most processors with FP support
471# IEEE FP. On those that don't support FP at all, usually IEEE
472# is emulated.
b678740d 473case ${target_cpu} in
904b6037 474 vax | tahoe ) atof=${target_cpu} ;;
e7757ad0 475 *) atof=ieee ;;
fecd2382
RP
476esac
477
8cac6ca6 478case "${obj_format}" in
b11fb939 479 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
8cac6ca6 480esac
7cf4d7ff 481
7c269afb
DE
482# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
483cgen_cpu_prefix=""
a21a12e3
NC
484if test "x$using_cgen" = xyes ; then
485 case ${target_cpu} in
486 *) cgen_cpu_prefix=${target_cpu} ;;
487 esac
488 AC_SUBST(cgen_cpu_prefix)
489 AC_DEFINE(USING_CGEN)
490fi
7c269afb 491
b11fb939
KR
492dnl
493dnl Make sure the desired support files exist.
494dnl
495
bf4bd1fc
ILT
496if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
497 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
b11fb939
KR
498fi
499
fb589130 500if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
b11fb939 501 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
7cf4d7ff
KR
502fi
503
e7757ad0 504case ${user_bfd_gas}-${primary_bfd_gas} in
a8285504 505 yes-yes | no-no)
7cf4d7ff
KR
506 # We didn't override user's choice.
507 ;;
a8285504 508 no-yes)
b11fb939 509 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
7cf4d7ff 510 ;;
a8285504 511 no-preferred)
e7757ad0 512 primary_bfd_gas=no
a8285504
DZ
513 ;;
514 *-preferred)
e7757ad0 515 primary_bfd_gas=yes
a8285504 516 ;;
f2889110 517 yes-*)
e7757ad0 518 primary_bfd_gas=yes
f2889110 519 ;;
a8285504
DZ
520 -*)
521 # User specified nothing.
522 ;;
7cf4d7ff
KR
523esac
524
e7757ad0
KR
525# Some COFF configurations want these random other flags set.
526case ${obj_format} in
527 coff)
528 case ${target_cpu_type} in
529 i386) AC_DEFINE(I386COFF) ;;
530 m68k) AC_DEFINE(M68KCOFF) ;;
531 m88k) AC_DEFINE(M88KCOFF) ;;
532 esac
533 ;;
534esac
535
536# Getting this done right is going to be a bitch. Each configuration specified
537# with --enable-targets=... should be checked for environment, format, cpu, and
538# bfd_gas setting.
539#
540# For each configuration, the necessary object file support code must be linked
541# in. This might be only one, it might be up to four. The necessary emulation
542# code needs to be provided, too.
543#
544# And then there's "--enable-targets=all"....
545#
546# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
547
548formats="${obj_format}"
549emfiles=""
550EMULATIONS=""
551GAS_UNIQ(emulations)
552for em in . $emulations ; do
553 case $em in
554 .) continue ;;
555 mipsbelf | mipslelf)
556 fmt=elf file=mipself ;;
557 mipsbecoff | mipslecoff)
558 fmt=ecoff file=mipsecoff ;;
515c7142
ILT
559 i386coff)
560 fmt=coff file=i386coff ;;
561 i386elf)
562 fmt=elf file=i386elf ;;
e7757ad0
KR
563 esac
564 formats="$formats $fmt"
565 emfiles="$emfiles e-$file.o"
566 EMULATIONS="$EMULATIONS &$em,"
567done
568GAS_UNIQ(formats)
569GAS_UNIQ(emfiles)
570if test `set . $formats ; shift ; echo $#` -gt 1 ; then
571 for fmt in $formats ; do
572 case $fmt in
573 aout) AC_DEFINE(OBJ_MAYBE_AOUT) ;;
574 bout) AC_DEFINE(OBJ_MAYBE_BOUT) ;;
575 coff) AC_DEFINE(OBJ_MAYBE_COFF) ;;
576 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF) ;;
577 elf) AC_DEFINE(OBJ_MAYBE_ELF) ;;
578 generic) AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
579 hp300) AC_DEFINE(OBJ_MAYBE_HP300) ;;
580 ieee) AC_DEFINE(OBJ_MAYBE_IEEE) ;;
581 som) AC_DEFINE(OBJ_MAYBE_SOM) ;;
582 vms) AC_DEFINE(OBJ_MAYBE_VMS) ;;
583 esac
584 extra_objects="$extra_objects obj-$fmt.o"
585 done
586 obj_format=multi
587fi
588if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
589 te_file=multi
590 extra_objects="$extra_objects $emfiles"
591 DEFAULT_EMULATION=`set . $emulations ; echo $2`
592 AC_DEFINE(USE_EMULATIONS)
593fi
594AC_SUBST(extra_objects)
595AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
596AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
597
bf4bd1fc 598case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
318b02b6
KR
599 yes-*-coff) need_bfd=yes ;;
600 no-*-coff) need_bfd=yes
601 AC_DEFINE(MANY_SEGMENTS) ;;
602esac
603
69ecc03f 604reject_dev_configs=yes
8cac6ca6
KR
605
606case ${reject_dev_configs}-${dev} in
607 yes-yes) # Oops.
b11fb939 608 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
8cac6ca6
KR
609 ;;
610esac
611
bf4bd1fc 612AC_SUBST(target_cpu_type)
833c46e1 613AC_SUBST(obj_format)
515c7142 614AC_SUBST(te_file)
603e9cf1 615AC_SUBST(install_tooldir)
833c46e1 616AC_SUBST(atof)
e7757ad0 617dnl AC_SUBST(emulation)
833c46e1 618
e7757ad0 619case "${primary_bfd_gas}" in
b11fb939
KR
620 yes) AC_DEFINE(BFD_ASSEMBLER)
621 need_bfd=yes ;;
4f6f4aa8
KR
622esac
623
ae09d880
ILT
624# do we need the opcodes library?
625case "${need_opcodes}" in
1c94de4d 626yes)
e2b4bd2a 627 OPCODES_LIB=../opcodes/libopcodes.la
1c94de4d 628 ;;
ae09d880 629esac
ae09d880 630
b11fb939 631case "${need_bfd}" in
1c94de4d 632yes)
e2b4bd2a 633 BFDLIB=../bfd/libbfd.la
1c94de4d 634 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
1c94de4d 635 ;;
4f6f4aa8 636esac
2e013bb7 637
b11fb939 638AC_SUBST(BFDLIB)
2e013bb7
ILT
639AC_SUBST(OPCODES_LIB)
640
b11fb939 641AC_SUBST(ALL_OBJ_DEPS)
4f6f4aa8 642
b11fb939
KR
643AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
644AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
645AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
646AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
647AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
648
b11fb939 649AC_PROG_CC
b11fb939 650
e2b4bd2a 651AC_PROG_YACC
b2bb41f6 652AM_PROG_LEX
e2b4bd2a 653
48401fcf
TT
654ALL_LINGUAS=
655CY_GNU_GETTEXT
656
e2b4bd2a
ILT
657AM_MAINTAINER_MODE
658AM_CYGWIN32
659AM_EXEEXT
660
b11fb939
KR
661AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
662
bf111c9f
KR
663# Put this here so that autoconf's "cross-compiling" message doesn't confuse
664# people who are not cross-compiling but are compiling cross-assemblers.
665AC_MSG_CHECKING(whether compiling a cross-assembler)
666if test "${host}" = "${target}"; then
f2889110
KR
667 cross_gas=no
668else
bf111c9f
KR
669 cross_gas=yes
670 AC_DEFINE(CROSS_COMPILE)
bf111c9f
KR
671fi
672AC_MSG_RESULT($cross_gas)
673
b11fb939
KR
674dnl ansidecl.h will deal with const
675dnl AC_CONST
676AC_FUNC_ALLOCA
677AC_C_INLINE
678
f2889110
KR
679# VMS doesn't have unlink.
680AC_CHECK_FUNCS(unlink remove, break)
28d3e4a3 681
e63c594d
FF
682# Some systems don't have sbrk().
683AC_CHECK_FUNCS(sbrk)
684
b11fb939
KR
685# Some non-ANSI preprocessors botch requoting inside strings. That's bad
686# enough, but on some of those systems, the assert macro relies on requoting
687# working properly!
bf111c9f 688GAS_WORKING_ASSERT
b11fb939
KR
689
690# On some systems, the system header files may not declare malloc, realloc,
691# and free. There are places where gas needs these functions to have been
692# declared -- such as when taking their addresses.
bf111c9f 693gas_test_headers="
b11fb939
KR
694#ifdef HAVE_MEMORY_H
695#include <memory.h>
696#endif
697#ifdef HAVE_STRING_H
698#include <string.h>
5cece526
ILT
699#else
700#ifdef HAVE_STRINGS_H
701#include <strings.h>
702#endif
b11fb939
KR
703#endif
704#ifdef HAVE_STDLIB_H
705#include <stdlib.h>
706#endif
707#ifdef HAVE_UNISTD_H
708#include <unistd.h>
709#endif
bf111c9f 710"
5cece526 711GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
bf111c9f 712GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
5f757edc 713GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
5cece526 714GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
b11fb939
KR
715
716# Does errno.h declare errno, or do we have to add a separate declaration
717# for it?
bf111c9f 718GAS_CHECK_DECL_NEEDED(errno, f, int f, [
b11fb939
KR
719#ifdef HAVE_ERRNO_H
720#include <errno.h>
721#endif
bf111c9f 722])
b11fb939 723
b11fb939 724dnl This must come last.
515c7142
ILT
725
726dnl We used to make symlinks to files in the source directory, but now
727dnl we just use the right name for .c files, and create .h files in
728dnl the build directory which include the right .h file. Make sure
729dnl the old symlinks don't exist, so that a reconfigure in an existing
730dnl directory behaves reasonably.
731
48401fcf 732AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in po/Makefile.in:po/Make-in,
515c7142
ILT
733[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
734 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
735 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
736 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
39ffbb4d 737 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
a21a12e3
NC
738 if test "x$cgen_cpu_prefix" != x ; then
739 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-opc.h"' > cgen-opc.h
740 fi
48401fcf
TT
741
742 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
515c7142 743[target_cpu_type=${target_cpu_type}
a21a12e3 744 cgen_cpu_prefix=${cgen_cpu_prefix}
515c7142
ILT
745 obj_format=${obj_format}
746 te_file=${te_file}])
This page took 0.295978 seconds and 4 git commands to generate.