* rdi-share/hostchan.c: Remove gettimeofday declaration.
[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 ;;
6ff87ead
NC
168 i386-*-sco*elf*) fmt=elf
169 if test ${this_target} = $target; then
170 AC_DEFINE(SCO_ELF)
171 fi
172 ;;
e7757ad0 173 i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
6ff87ead 174 fmt=coff ;;
e7757ad0 175 i386-*-vsta) fmt=aout ;;
60dc9fb2 176 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
6ff87ead
NC
177 fmt=coff em=go32;;
178 i386-*-rtems*) fmt=coff ;;
6c186c48
SC
179 i386-*-gnu*) fmt=elf ;;
180 i386-*-mach*)
e7757ad0
KR
181 fmt=aout em=mach bfd_gas=yes ;;
182 i386-*-msdos*) fmt=aout ;;
6c186c48 183 i386-*-moss*) fmt=elf ;;
6ff87ead
NC
184 i386-*-pe) fmt=coff em=pe ;;
185 i386-*-cygwin32) fmt=coff em=pe bfd_gas=yes ;;
186 i386-*-*nt) fmt=coff em=pe ;;
e7757ad0 187 i960-*-bout) fmt=bout ;;
6ff87ead
NC
188 i960-*-coff) fmt=coff em=ic960 ;;
189 i960-*-rtems*) fmt=coff em=ic960 ;;
e7757ad0
KR
190 i960-*-nindy*) fmt=bout ;;
191 i960-*-vxworks4*) fmt=bout ;;
192 i960-*-vxworks5.0) fmt=bout ;;
6ff87ead 193 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
e7757ad0
KR
194 i960-*-vxworks*) fmt=bout ;;
195
374bdac7
DE
196 m32r-*-*) fmt=elf bfd_gas=yes ;;
197
e7757ad0
KR
198 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
199 fmt=aout em=sun3 ;;
6ff87ead
NC
200 m68k-motorola-sysv*) fmt=coff em=delta ;;
201 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
202 m68k-apollo-*) fmt=coff em=apollo ;;
fee3e248
ILT
203 m68k-*-sysv4*) # must be before -sysv*
204 fmt=elf em=svr4 ;;
205 m68k-*-elf*) fmt=elf ;;
1c94de4d 206 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
6ff87ead 207 fmt=coff ;;
e7757ad0 208 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
535cfd0f
ILT
209 m68k-*-linux*aout*) fmt=aout em=linux ;;
210 m68k-*-linux*) fmt=elf em=linux ;;
6ff87ead 211 m68k-*-lynxos*) fmt=coff em=lynx ;;
e7757ad0 212 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
76fb6d2f 213 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
6ff87ead 214 m68k-apple-aux*) fmt=coff em=aux ;;
8a6f53e9 215 m68k-*-psos*) fmt=elf em=psos;;
e7757ad0 216
6ff87ead
NC
217 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
218 m88k-*-coff*) fmt=coff ;;
e7757ad0
KR
219
220 # don't change em like *-*-bsd does
6ff87ead
NC
221 mips-dec-netbsd*) fmt=elf endian=little ;;
222 mips-dec-openbsd*) fmt=elf endian=little ;;
223 mips-dec-bsd*) fmt=aout ;;
224 mips-sony-bsd*) fmt=ecoff ;;
e7757ad0 225 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
6ff87ead
NC
226 mips-*-ultrix*) fmt=ecoff endian=little ;;
227 mips-*-osf*) fmt=ecoff endian=little ;;
228 mips-*-ecoff*) fmt=ecoff ;;
229 mips-*-ecoff*) fmt=ecoff ;;
230 mips-*-irix6*) fmt=elf ;;
231 mips-*-irix5*) fmt=elf ;;
232 mips-*-irix*) fmt=ecoff ;;
233 mips-*-lnews*) fmt=ecoff em=lnews ;;
234 mips-*-riscos*) fmt=ecoff ;;
235 mips-*-sysv*) fmt=ecoff ;;
fc984eb0 236 mips-*-elf* | mips-*-rtems* | mips-*-linux* | mips-*-gnu* | mips-*-openbsd*)
6ff87ead 237 fmt=elf ;;
ae1b99e4
JL
238 mn10200-*-*) fmt=elf bfd_gas=yes ;;
239 mn10300-*-*) fmt=elf bfd_gas=yes ;;
0ff513d9 240 ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
6ff87ead 241 fmt=coff em=pe ;;
e7757ad0 242 ppc-*-aix*) fmt=coff ;;
515c7142 243 ppc-*-beos*) fmt=coff ;;
76fb6d2f 244 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
6ff87ead 245 fmt=elf ;;
159e6ef8
MM
246 ppc-*-linux*) fmt=elf
247 case "$endian" in
6ff87ead 248 big) ;;
159e6ef8
MM
249 *) AC_MSG_ERROR(Linux must be configured big endian) ;;
250 esac
251 ;;
252 ppc-*-solaris*) fmt=elf
6ff87ead
NC
253 if test ${this_target} = $target; then
254 AC_DEFINE(TARGET_SOLARIS_COMMENT)
255 fi
256 if test x${endian} = xbig; then
257 AC_MSG_ERROR(Solaris must be configured little endian)
258 fi
1c94de4d 259 ;;
6ff87ead 260 ppc-*-rtems*) fmt=elf ;;
880b7429
KR
261 ppc-*-macos* | ppc-*-mpw*)
262 fmt=coff em=macos ;;
e7757ad0
KR
263 ppc-*-netware*) fmt=elf em=ppcnw ;;
264
fed13a5e
ILT
265 sh-*-elf*) fmt=elf ;;
266 sh-*-coff*) fmt=coff ;;
5e4e4739 267 sh-*-rtems*) fmt=elf ;;
816153a3 268
5f757edc
ILT
269 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
270 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
76fb6d2f 271 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
e7757ad0 272
1c94de4d 273 sparc-*-rtems*) fmt=aout ;;
e7757ad0 274 sparc-*-sunos4*) fmt=aout em=sun3 ;;
df586de2 275 sparc-*-aout | sparc*-*-vxworks*)
fed13a5e 276 fmt=aout em=sparcaout ;;
e7757ad0 277 sparc-*-coff) fmt=coff ;;
2e013bb7
ILT
278 sparc-*-linux*aout*) fmt=aout em=linux ;;
279 sparc-*-linux*) fmt=elf em=linux ;;
e7757ad0
KR
280 sparc-*-lynxos*) fmt=coff em=lynx ;;
281 sparc-fujitsu-none) fmt=aout ;;
0b27ea39 282 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
e7757ad0
KR
283 fmt=elf ;;
284 sparc-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
76fb6d2f 285 sparc-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
c6aa56bc 286
64556643 287# start-sanitize-tic80
6ff87ead 288 tic80-*-*) fmt=coff ;;
64556643 289# end-sanitize-tic80
103dd764
DE
290
291# start-sanitize-sky
292 txvu-*-*) fmt=elf bfd_gas=yes ;;
293# end-sanitize-sky
294
c6aa56bc 295 v850-*-*) fmt=elf bfd_gas=yes ;;
e7757ad0 296
6ff87ead
NC
297# start-sanitize-v850e
298 v850e-*-*) fmt=elf bfd_gas=yes ;;
60dc9fb2 299 v850ea-*-*) fmt=elf bfd_gas=yes ;;
5e4e4739 300# end-sanitize-v850e
e7757ad0
KR
301 vax-*-bsd* | vax-*-ultrix*)
302 fmt=aout ;;
303 vax-*-vms) fmt=vms ;;
304
305 z8k-*-coff | z8k-*-sim)
306 fmt=coff ;;
307
308 w65-*-*) fmt=coff ;;
309
310 *-*-aout | *-*-scout)
311 fmt=aout ;;
312 *-*-nindy*)
313 fmt=bout ;;
314 *-*-bsd*)
315 fmt=aout em=sun3 ;;
316 *-*-generic) fmt=generic ;;
317 *-*-xray | *-*-hms) fmt=coff ;;
318 *-*-sim) fmt=coff ;;
319 *-*-elf | *-*-sysv4* | *-*-solaris*)
6df07e7f 320 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
e7757ad0
KR
321 fmt=elf dev=yes ;;
322 *-*-vxworks) fmt=aout ;;
323 *-*-netware) fmt=elf ;;
324 esac
325
326 case ${cpu_type}-${fmt} in
0170f1c3 327 alpha*-*) bfd_gas=yes ;;
e7757ad0
KR
328 arm-*) bfd_gas=yes ;;
329 # not yet
330 # i386-aout) bfd_gas=preferred ;;
331 mips-*) bfd_gas=yes ;;
332 ns32k-*) bfd_gas=yes ;;
333 ppc-*) bfd_gas=yes ;;
334 sparc-*) bfd_gas=yes ;;
335 *-elf) bfd_gas=yes ;;
336 *-ecoff) bfd_gas=yes ;;
337 *-som) bfd_gas=yes ;;
338 *) ;;
339 esac
340
5f757edc
ILT
341# Other random stuff.
342
ae09d880
ILT
343 # do we need the opcodes library?
344 case ${cpu_type} in
df586de2 345 vax | i386)
7c2fadd1
ILT
346 ;;
347 *)
348 need_opcodes=yes
159e6ef8 349 if test "${shared_opcodes}" = "true"; then
7c2fadd1
ILT
350 # A shared libopcodes must be linked against libbfd.
351 need_bfd=yes
352 fi
353 ;;
ae09d880
ILT
354 esac
355
5f757edc 356 case ${cpu_type} in
374bdac7
DE
357 m32r)
358 case ${extra_objects} in
359 *cgen.o*) ;;
360 *) extra_objects="$extra_objects cgen.o"
374bdac7
DE
361 AC_DEFINE(USING_CGEN)
362 ;;
363 esac
364 ;;
365
1c9dbb83
ILT
366 m68k)
367 case ${extra_objects} in
368 *m68k-parse.o*) ;;
369 *) extra_objects="$extra_objects m68k-parse.o" ;;
370 esac
371 ;;
efec4a28
DP
372
373 mips)
515c7142 374 echo ${extra_objects} | grep -s "itbl-parse.o"
efec4a28 375 if test $? -ne 0 ; then
515c7142 376 extra_objects="$extra_objects itbl-parse.o"
efec4a28
DP
377 fi
378
515c7142 379 echo ${extra_objects} | grep -s "itbl-lex.o"
efec4a28 380 if test $? -ne 0 ; then
515c7142 381 extra_objects="$extra_objects itbl-lex.o"
efec4a28
DP
382 fi
383
515c7142 384 echo ${extra_objects} | grep -s "itbl-ops.o"
efec4a28 385 if test $? -ne 0 ; then
515c7142 386 extra_objects="$extra_objects itbl-ops.o"
efec4a28
DP
387 fi
388 ;;
389
2b09622a 390 sparc)
e01e18a8
DE
391 if test $this_target = $target ; then
392 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}")
393 fi
2b09622a
DE
394 ;;
395
efec4a28
DP
396 *)
397 ;;
5f757edc
ILT
398 esac
399
e7757ad0
KR
400# See if we really can support this configuration with the emulation code.
401
402 if test $this_target = $target ; then
403 primary_bfd_gas=$bfd_gas
404 obj_format=$fmt
e7757ad0
KR
405 te_file=$em
406
407 if test $bfd_gas = no ; then
408 # Can't support other configurations this way.
409 break
410 fi
411 elif test $bfd_gas = no ; then
412 # Can't support this configuration.
413 break
414 fi
415
416# From target name and format, produce a list of supported emulations.
417
418 case ${generic_target}-${fmt} in
1cb0d00d 419 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
515c7142
ILT
420 mips-*-linux*-*) case "$endian" in
421 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
422 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
423 esac ;;
424 mips-*-lnews*-ecoff) ;;
e7757ad0 425 mips-*-*-ecoff) case "$endian" in
1cb0d00d
KR
426 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
427 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
e7757ad0
KR
428 esac ;;
429 mips-*-*-elf) case "$endian" in
1cb0d00d
KR
430 big) emulation="mipsbelf mipslelf mipself" ;;
431 *) emulation="mipslelf mipsbelf mipself" ;;
515c7142
ILT
432 # Uncommenting the next line will turn on support for i386 COFF
433 # in any i386 ELF configuration. This probably doesn't work
434 # correctly.
435 # i386-*-*-elf) emulation="i386coff i386elf" ;;
e7757ad0
KR
436 esac ;;
437 esac
438
439 emulations="$emulations $emulation"
440
e7757ad0 441done
fecd2382 442
8cac6ca6
KR
443# Assign floating point type. Most processors with FP support
444# IEEE FP. On those that don't support FP at all, usually IEEE
445# is emulated.
b678740d 446case ${target_cpu} in
904b6037 447 vax | tahoe ) atof=${target_cpu} ;;
e7757ad0 448 *) atof=ieee ;;
fecd2382
RP
449esac
450
8cac6ca6 451case "${obj_format}" in
b11fb939 452 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
8cac6ca6 453esac
7cf4d7ff 454
b11fb939
KR
455dnl
456dnl Make sure the desired support files exist.
457dnl
458
bf4bd1fc
ILT
459if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
460 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
b11fb939
KR
461fi
462
fb589130 463if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
b11fb939 464 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
7cf4d7ff
KR
465fi
466
e7757ad0 467case ${user_bfd_gas}-${primary_bfd_gas} in
a8285504 468 yes-yes | no-no)
7cf4d7ff
KR
469 # We didn't override user's choice.
470 ;;
a8285504 471 no-yes)
b11fb939 472 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
7cf4d7ff 473 ;;
a8285504 474 no-preferred)
e7757ad0 475 primary_bfd_gas=no
a8285504
DZ
476 ;;
477 *-preferred)
e7757ad0 478 primary_bfd_gas=yes
a8285504 479 ;;
f2889110 480 yes-*)
e7757ad0 481 primary_bfd_gas=yes
f2889110 482 ;;
a8285504
DZ
483 -*)
484 # User specified nothing.
485 ;;
7cf4d7ff
KR
486esac
487
e7757ad0
KR
488# Some COFF configurations want these random other flags set.
489case ${obj_format} in
490 coff)
491 case ${target_cpu_type} in
492 i386) AC_DEFINE(I386COFF) ;;
493 m68k) AC_DEFINE(M68KCOFF) ;;
494 m88k) AC_DEFINE(M88KCOFF) ;;
495 esac
496 ;;
497esac
498
499# Getting this done right is going to be a bitch. Each configuration specified
500# with --enable-targets=... should be checked for environment, format, cpu, and
501# bfd_gas setting.
502#
503# For each configuration, the necessary object file support code must be linked
504# in. This might be only one, it might be up to four. The necessary emulation
505# code needs to be provided, too.
506#
507# And then there's "--enable-targets=all"....
508#
509# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
510
511formats="${obj_format}"
512emfiles=""
513EMULATIONS=""
514GAS_UNIQ(emulations)
515for em in . $emulations ; do
516 case $em in
517 .) continue ;;
518 mipsbelf | mipslelf)
519 fmt=elf file=mipself ;;
520 mipsbecoff | mipslecoff)
521 fmt=ecoff file=mipsecoff ;;
515c7142
ILT
522 i386coff)
523 fmt=coff file=i386coff ;;
524 i386elf)
525 fmt=elf file=i386elf ;;
e7757ad0
KR
526 esac
527 formats="$formats $fmt"
528 emfiles="$emfiles e-$file.o"
529 EMULATIONS="$EMULATIONS &$em,"
530done
531GAS_UNIQ(formats)
532GAS_UNIQ(emfiles)
533if test `set . $formats ; shift ; echo $#` -gt 1 ; then
534 for fmt in $formats ; do
535 case $fmt in
536 aout) AC_DEFINE(OBJ_MAYBE_AOUT) ;;
537 bout) AC_DEFINE(OBJ_MAYBE_BOUT) ;;
538 coff) AC_DEFINE(OBJ_MAYBE_COFF) ;;
539 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF) ;;
540 elf) AC_DEFINE(OBJ_MAYBE_ELF) ;;
541 generic) AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
542 hp300) AC_DEFINE(OBJ_MAYBE_HP300) ;;
543 ieee) AC_DEFINE(OBJ_MAYBE_IEEE) ;;
544 som) AC_DEFINE(OBJ_MAYBE_SOM) ;;
545 vms) AC_DEFINE(OBJ_MAYBE_VMS) ;;
546 esac
547 extra_objects="$extra_objects obj-$fmt.o"
548 done
549 obj_format=multi
550fi
551if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
552 te_file=multi
553 extra_objects="$extra_objects $emfiles"
554 DEFAULT_EMULATION=`set . $emulations ; echo $2`
555 AC_DEFINE(USE_EMULATIONS)
556fi
557AC_SUBST(extra_objects)
558AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
559AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
560
bf4bd1fc 561case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
318b02b6
KR
562 yes-*-coff) need_bfd=yes ;;
563 no-*-coff) need_bfd=yes
564 AC_DEFINE(MANY_SEGMENTS) ;;
565esac
566
69ecc03f 567reject_dev_configs=yes
8cac6ca6
KR
568
569case ${reject_dev_configs}-${dev} in
570 yes-yes) # Oops.
b11fb939 571 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
8cac6ca6
KR
572 ;;
573esac
574
bf4bd1fc 575AC_SUBST(target_cpu_type)
833c46e1 576AC_SUBST(obj_format)
515c7142 577AC_SUBST(te_file)
833c46e1 578AC_SUBST(atof)
e7757ad0 579dnl AC_SUBST(emulation)
833c46e1 580
e7757ad0 581case "${primary_bfd_gas}" in
b11fb939
KR
582 yes) AC_DEFINE(BFD_ASSEMBLER)
583 need_bfd=yes ;;
4f6f4aa8
KR
584esac
585
ae09d880
ILT
586# do we need the opcodes library?
587case "${need_opcodes}" in
1c94de4d 588yes)
e2b4bd2a 589 OPCODES_LIB=../opcodes/libopcodes.la
1c94de4d 590 ;;
ae09d880 591esac
ae09d880 592
b11fb939 593case "${need_bfd}" in
1c94de4d 594yes)
e2b4bd2a 595 BFDLIB=../bfd/libbfd.la
1c94de4d 596 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
1c94de4d 597 ;;
4f6f4aa8 598esac
2e013bb7 599
b11fb939 600AC_SUBST(BFDLIB)
2e013bb7
ILT
601AC_SUBST(OPCODES_LIB)
602
b11fb939 603AC_SUBST(ALL_OBJ_DEPS)
4f6f4aa8 604
b11fb939
KR
605AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
606AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
607AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
608AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
609AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
610
b11fb939 611AC_PROG_CC
b11fb939 612
e2b4bd2a
ILT
613AC_PROG_YACC
614AC_PROG_LEX
615AC_DECL_YYTEXT
616
617AM_MAINTAINER_MODE
618AM_CYGWIN32
619AM_EXEEXT
620
b11fb939
KR
621AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
622
bf111c9f
KR
623# Put this here so that autoconf's "cross-compiling" message doesn't confuse
624# people who are not cross-compiling but are compiling cross-assemblers.
625AC_MSG_CHECKING(whether compiling a cross-assembler)
626if test "${host}" = "${target}"; then
f2889110
KR
627 cross_gas=no
628else
bf111c9f
KR
629 cross_gas=yes
630 AC_DEFINE(CROSS_COMPILE)
bf111c9f
KR
631fi
632AC_MSG_RESULT($cross_gas)
633
b11fb939
KR
634dnl ansidecl.h will deal with const
635dnl AC_CONST
636AC_FUNC_ALLOCA
637AC_C_INLINE
638
f2889110
KR
639# VMS doesn't have unlink.
640AC_CHECK_FUNCS(unlink remove, break)
28d3e4a3 641
e63c594d
FF
642# Some systems don't have sbrk().
643AC_CHECK_FUNCS(sbrk)
644
b11fb939
KR
645# Some non-ANSI preprocessors botch requoting inside strings. That's bad
646# enough, but on some of those systems, the assert macro relies on requoting
647# working properly!
bf111c9f 648GAS_WORKING_ASSERT
b11fb939
KR
649
650# On some systems, the system header files may not declare malloc, realloc,
651# and free. There are places where gas needs these functions to have been
652# declared -- such as when taking their addresses.
bf111c9f 653gas_test_headers="
b11fb939
KR
654#ifdef HAVE_MEMORY_H
655#include <memory.h>
656#endif
657#ifdef HAVE_STRING_H
658#include <string.h>
5cece526
ILT
659#else
660#ifdef HAVE_STRINGS_H
661#include <strings.h>
662#endif
b11fb939
KR
663#endif
664#ifdef HAVE_STDLIB_H
665#include <stdlib.h>
666#endif
667#ifdef HAVE_UNISTD_H
668#include <unistd.h>
669#endif
bf111c9f 670"
5cece526 671GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
bf111c9f 672GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
5f757edc 673GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
5cece526 674GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
b11fb939
KR
675
676# Does errno.h declare errno, or do we have to add a separate declaration
677# for it?
bf111c9f 678GAS_CHECK_DECL_NEEDED(errno, f, int f, [
b11fb939
KR
679#ifdef HAVE_ERRNO_H
680#include <errno.h>
681#endif
bf111c9f 682])
b11fb939 683
b11fb939 684dnl This must come last.
515c7142
ILT
685
686dnl We used to make symlinks to files in the source directory, but now
687dnl we just use the right name for .c files, and create .h files in
688dnl the build directory which include the right .h file. Make sure
689dnl the old symlinks don't exist, so that a reconfigure in an existing
690dnl directory behaves reasonably.
691
692AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in,
693[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
694 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
695 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
696 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
39ffbb4d
DE
697 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
698 case ${target_cpu_type} in
699 m32r) echo '#include "opcodes/'"${target_cpu_type}"'-opc.h"' > cgen-opc.h ;;
700 esac],
515c7142
ILT
701[target_cpu_type=${target_cpu_type}
702 obj_format=${obj_format}
703 te_file=${te_file}])
This page took 0.251461 seconds and 4 git commands to generate.