Properly regenerate bfd-in2.h.
[deliverable/binutils-gdb.git] / gas / configure.in
1 dnl Process this file with autoconf to produce a configure script.
2 dnl
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
5 dnl
6 dnl
7 dnl v2.5 needed for --bindir et al
8 AC_PREREQ(2.13)
9 AC_INIT(as.h)
10
11 AC_CANONICAL_SYSTEM
12
13 AM_INIT_AUTOMAKE(gas, 2.9.5)
14
15 AM_PROG_LIBTOOL
16
17 user_bfd_gas=
18 AC_ARG_ENABLE(bfd-assembler,
19 [ --enable-bfd-assembler use BFD back end for writing object files],
20 [case "${enableval}" in
21 yes) need_bfd=yes user_bfd_gas=yes ;;
22 no) user_bfd_gas=no ;;
23 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
24 esac])dnl
25 AC_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 ;;
32 esac])dnl
33 AC_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]) ;;
39 esac])dnl
40
41 using_cgen=no
42
43 build_warnings="-W -Wall"
44 AC_ARG_ENABLE(build-warnings,
45 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
46 [case "${enableval}" in
47 yes) ;;
48 no) build_warnings="-w";;
49 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
50 build_warnings="${build_warnings} ${t}";;
51 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
52 build_warnings="${t} ${build_warnings}";;
53 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
54 esac
55 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
56 echo "Setting warning flags = $build_warnings" 6>&1
57 fi])dnl
58 WARN_CFLAGS=""
59 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
60 WARN_CFLAGS="${build_warnings}"
61 fi
62 AC_SUBST(WARN_CFLAGS)
63
64 # Generate a header file
65 AM_CONFIG_HEADER(config.h:config.in)
66
67 # If we are on a DOS filesystem, we must use gdb.ini rather than
68 # .gdbinit.
69 GDBINIT=".gdbinit"
70 case "${host}" in
71 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
72 GDBINIT="gdb.ini"
73 ;;
74 esac
75 AC_SUBST(GDBINIT)
76
77 te_file=generic
78
79 # Makefile target for installing gas in $(tooldir)/bin.
80 install_tooldir=install-exec-tooldir
81
82 canon_targets=""
83 all_targets=no
84 if test -n "$enable_targets" ; then
85 for t in `echo $enable_targets | sed 's/,/ /g'`; do
86 if test $t = "all"; then
87 all_targets=yes
88 continue
89 fi
90 result=`$ac_config_sub $t 2>/dev/null`
91 if test -n "$result" ; then
92 canon_targets="$canon_targets $result"
93 # else
94 # # Permit "all", etc. We don't support it yet though.
95 # canon_targets="$canon_targets $t"
96 fi
97 done
98 GAS_UNIQ(canon_targets)
99 fi
100
101 emulations=""
102
103 for this_target in $target $canon_targets ; do
104
105 changequote(,)dnl
106 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
107 changequote([,])dnl
108
109 # check for architecture variants
110 arch=
111 endian=
112 case ${cpu} in
113 alpha*) cpu_type=alpha ;;
114 armeb) cpu_type=arm endian=big ;;
115 arm*) cpu_type=arm endian=little ;;
116 armb*) cpu_type=arm endian=little ;;
117 armv*l) cpu_type=arm endian=little ;;
118 armv*b) cpu_type=arm endian=big ;;
119 strongarm*) cpu_type=arm endian=little ;;
120 thumb*) cpu_type=arm endian=little ;;
121 hppa*) cpu_type=hppa ;;
122 changequote(,)dnl
123 i[456]86) cpu_type=i386 ;;
124 m680[012346]0) cpu_type=m68k ;;
125 changequote([,])dnl
126 m68008) cpu_type=m68k ;;
127 m683??) cpu_type=m68k ;;
128 m5200) cpu_type=m68k ;;
129 m8*) cpu_type=m88k ;;
130 mips*el) cpu_type=mips endian=little ;;
131 mips*) cpu_type=mips endian=big ;;
132 pjl*) cpu_type=pj endian=little ;;
133 pj*) cpu_type=pj endian=big ;;
134 powerpcle*) cpu_type=ppc endian=little ;;
135 powerpc*) cpu_type=ppc endian=big ;;
136 rs6000*) cpu_type=ppc ;;
137 sparclite*) cpu_type=sparc arch=sparclite ;;
138 sparclet*) cpu_type=sparc arch=sparclet ;;
139 sparc64*) cpu_type=sparc arch=v9-64 ;;
140 sparc86x*) cpu_type=sparc arch=sparc86x ;;
141 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
142 v850*) cpu_type=v850 ;;
143 *) cpu_type=${cpu} ;;
144 esac
145
146 if test ${this_target} = $target ; then
147 target_cpu_type=${cpu_type}
148 elif test ${target_cpu_type} != ${cpu_type} ; then
149 continue
150 fi
151
152 generic_target=${cpu_type}-$vendor-$os
153 dev=no
154 bfd_gas=no
155 em=generic
156
157 # assign object format
158 case ${generic_target} in
159 a29k-*-coff) fmt=coff ;;
160 a29k-amd-udi) fmt=coff ;;
161 a29k-amd-ebmon) fmt=coff ;;
162 a29k-nyu-sym1) fmt=coff ;;
163 a29k-*-vxworks*) fmt=coff ;;
164
165 alpha*-*-*vms*) fmt=evax ;;
166 alpha*-*-netware*) fmt=ecoff ;;
167 alpha*-*-openbsd*) fmt=ecoff ;;
168 alpha*-*-osf*) fmt=ecoff ;;
169 alpha*-*-linuxecoff*) fmt=ecoff ;;
170 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
171 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
172
173 arc-*-elf*) fmt=elf bfd_gas=yes ;;
174
175 arm-*-aout) fmt=aout ;;
176 arm-*-coff | thumb-*-coff) fmt=coff ;;
177 arm-*-elf | thumb-*-elf) fmt=elf ;;
178 arm*-*-conix*) fmt=elf ;;
179 arm-*-linux*aout*) fmt=aout em=linux ;;
180 arm*-*-linux-gnu*) fmt=elf em=linux ;;
181 arm-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
182 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
183 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
184 arm-*-wince) fmt=coff em=wince-pe bfd_gas=yes;;
185 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
186 arm-*-riscix*) fmt=aout em=riscix ;;
187
188 avr-*-*) fmt=elf bfd_gas=yes ;;
189
190 d10v-*-*) fmt=elf bfd_gas=yes ;;
191 d30v-*-*) fmt=elf bfd_gas=yes ;;
192
193
194 fr30-*-*) fmt=elf bfd_gas=yes ;;
195
196 hppa-*-*elf*) fmt=elf em=hppa ;;
197 hppa-*-linux-gnu*) fmt=elf em=hppa ;;
198 hppa-*-lites*) fmt=elf em=hppa ;;
199 hppa-*-osf*) fmt=som em=hppa ;;
200 hppa-*-rtems*) fmt=elf em=hppa ;;
201 hppa-*-hpux*) fmt=som em=hppa ;;
202 hppa-*-mpeix*) fmt=som em=hppa ;;
203 hppa-*-bsd*) fmt=som em=hppa ;;
204 hppa-*-hiux*) fmt=som em=hppa ;;
205
206 h8300-*-coff) fmt=coff ;;
207
208 i370-*-elf* | i370-*-linux*) fmt=elf ;;
209 i386-ibm-aix*) fmt=coff em=i386aix ;;
210 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
211 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
212 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
213 i386-*-bsd*) fmt=aout em=386bsd ;;
214 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
215 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
216 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
217 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
218 i386-*-linux*coff*) fmt=coff em=linux ;;
219 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
220 i386-*-lynxos*) fmt=coff em=lynx ;;
221 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
222 fmt=elf bfd_gas=yes ;;
223 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
224 fmt=aout em=386bsd ;;
225 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
226 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
227 fmt=coff ;;
228 i386-*-sco3.2v5*) fmt=elf
229 if test ${this_target} = $target; then
230 AC_DEFINE(SCO_ELF, 1,
231 [Define if defaulting to ELF on SCO 5.])
232 fi
233 ;;
234 i386-*-sco3.2*) fmt=coff ;;
235 i386-*-vsta) fmt=aout ;;
236 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
237 fmt=coff em=go32;;
238 i386-*-rtemself*) fmt=elf ;;
239 i386-*-rtems*) fmt=coff ;;
240 i386-*-gnu*) fmt=elf ;;
241 i386-*-mach*)
242 fmt=aout em=mach bfd_gas=yes ;;
243 i386-*-msdos*) fmt=aout ;;
244 i386-*-moss*) fmt=elf ;;
245 i386-*-pe) fmt=coff em=pe ;;
246 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
247 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
248 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
249 i386-*-*nt*) fmt=coff em=pe ;;
250 i386-*-vxworks*) fmt=aout ;;
251 i960-*-bout) fmt=bout ;;
252 i960-*-coff) fmt=coff em=ic960 ;;
253 i960-*-rtems*) fmt=coff em=ic960 ;;
254 i960-*-nindy*) fmt=bout ;;
255 i960-*-vxworks4*) fmt=bout ;;
256 i960-*-vxworks5.0) fmt=bout ;;
257 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
258 i960-*-vxworks*) fmt=bout ;;
259 i960-*-elf*) fmt=elf ;;
260
261 m32r-*-*) fmt=elf bfd_gas=yes ;;
262
263 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
264 fmt=aout em=sun3 ;;
265 m68k-motorola-sysv*) fmt=coff em=delta ;;
266 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
267 m68k-apollo-*) fmt=coff em=apollo ;;
268 m68k-*-sysv4*) # must be before -sysv*
269 fmt=elf em=svr4 ;;
270 m68k-*-elf*) fmt=elf ;;
271 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
272 fmt=coff ;;
273 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
274 m68k-*-linux*aout*) fmt=aout em=linux ;;
275 m68k-*-linux-gnu*) fmt=elf em=linux ;;
276 m68k-*-gnu*) fmt=elf ;;
277 m68k-*-lynxos*) fmt=coff em=lynx ;;
278 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
279 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
280 m68k-apple-aux*) fmt=coff em=aux ;;
281 m68k-*-psos*) fmt=elf em=psos;;
282
283 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
284 m88k-*-coff*) fmt=coff ;;
285
286 mcore-*-elf) fmt=elf bfd_gas=yes ;;
287 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
288
289 # don't change em like *-*-bsd does
290 mips-dec-netbsd*) fmt=elf endian=little ;;
291 mips-dec-openbsd*) fmt=elf endian=little ;;
292 mips-dec-bsd*) fmt=aout endian=little ;;
293 mips-sony-bsd*) fmt=ecoff ;;
294 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
295 mips-*-ultrix*) fmt=ecoff endian=little ;;
296 mips-*-osf*) fmt=ecoff endian=little ;;
297 mips-*-ecoff*) fmt=ecoff ;;
298 mips-*-ecoff*) fmt=ecoff ;;
299 mips-*-pe*) fmt=coff endian=little em=pe ;;
300 mips-*-irix6*) fmt=elf ;;
301 mips-*-irix5*) fmt=elf ;;
302 mips-*-irix*) fmt=ecoff ;;
303 mips-*-lnews*) fmt=ecoff em=lnews ;;
304 mips-*-riscos*) fmt=ecoff ;;
305 mips-*-sysv*) fmt=ecoff ;;
306 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
307 fmt=elf ;;
308 mips-*-vxworks*) fmt=elf
309 AC_DEFINE(MIPS_STABS_ELF, 1,
310 [Use ELF stabs for MIPS, not ECOFF stabs])
311 ;;
312 mn10200-*-*) fmt=elf bfd_gas=yes ;;
313 mn10300-*-*) fmt=elf bfd_gas=yes ;;
314 pj*) fmt=elf ;;
315 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
316 fmt=coff em=pe ;;
317 ppc-*-aix*) fmt=coff ;;
318 ppc-*-beos*) fmt=coff ;;
319 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
320 fmt=elf ;;
321 ppc-*-linux-gnu*) fmt=elf
322 case "$endian" in
323 big) ;;
324 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
325 esac
326 ;;
327 ppc-*-solaris*) fmt=elf
328 if test ${this_target} = $target; then
329 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
330 [Define if default target is PowerPC Solaris.])
331 fi
332 if test x${endian} = xbig; then
333 AC_MSG_ERROR(Solaris must be configured little endian)
334 fi
335 ;;
336 ppc-*-rtems*) fmt=elf ;;
337 ppc-*-macos* | ppc-*-mpw*)
338 fmt=coff em=macos ;;
339 ppc-*-netware*) fmt=elf em=ppcnw ;;
340 ppc-*-vxworks*) fmt=elf ;;
341
342 sh-*-elf*) fmt=elf ;;
343 sh-*-coff*) fmt=coff ;;
344 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
345 sh-*-rtemself*) fmt=elf ;;
346 sh-*-rtems*) fmt=coff ;;
347
348 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
349 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
350 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
351
352 sparc-*-rtems*) fmt=aout ;;
353 sparc-*-sunos4*) fmt=aout em=sun3 ;;
354 sparc-*-aout | sparc*-*-vxworks*)
355 fmt=aout em=sparcaout ;;
356 sparc-*-coff) fmt=coff ;;
357 sparc-*-linux*aout*) fmt=aout em=linux ;;
358 sparc-*-linux-gnu*) fmt=elf em=linux ;;
359 sparc-*-lynxos*) fmt=coff em=lynx ;;
360 sparc-fujitsu-none) fmt=aout ;;
361 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
362 fmt=elf ;;
363 sparc-*-netbsd*) fmt=aout em=nbsd ;;
364 sparc-*-openbsd*) fmt=aout em=nbsd ;;
365
366 strongarm-*-coff) fmt=coff ;;
367 strongarm-*-elf) fmt=elf ;;
368
369 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
370 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
371 tic80-*-*) fmt=coff ;;
372
373 v850-*-*) fmt=elf bfd_gas=yes ;;
374 v850e-*-*) fmt=elf bfd_gas=yes ;;
375 v850ea-*-*) fmt=elf bfd_gas=yes ;;
376
377 vax-*-bsd* | vax-*-ultrix*)
378 fmt=aout ;;
379 vax-*-vms) fmt=vms ;;
380
381
382 z8k-*-coff | z8k-*-sim)
383 fmt=coff ;;
384
385 w65-*-*) fmt=coff ;;
386
387 *-*-aout | *-*-scout)
388 fmt=aout ;;
389 *-*-nindy*)
390 fmt=bout ;;
391 *-*-bsd*)
392 fmt=aout em=sun3 ;;
393 *-*-generic) fmt=generic ;;
394 *-*-xray | *-*-hms) fmt=coff ;;
395 *-*-sim) fmt=coff ;;
396 *-*-elf | *-*-sysv4* | *-*-solaris*)
397 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
398 fmt=elf dev=yes ;;
399 *-*-vxworks) fmt=aout ;;
400 *-*-netware) fmt=elf ;;
401 esac
402
403 if test ${this_target} = $target ; then
404 endian_def=
405 if test x${endian} = xbig; then
406 endian_def=1
407 elif test x${endian} = xlittle; then
408 endian_def=0
409 fi
410 if test x${endian_def} != x; then
411 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
412 [Define as 1 if big endian.])
413 fi
414 fi
415
416 case ${cpu_type}-${fmt} in
417 alpha*-*) bfd_gas=yes ;;
418 arm-*) bfd_gas=yes ;;
419 # not yet
420 # i386-aout) bfd_gas=preferred ;;
421 mips-*) bfd_gas=yes ;;
422 ns32k-*) bfd_gas=yes ;;
423 ppc-*) bfd_gas=yes ;;
424 sparc-*) bfd_gas=yes ;;
425 strongarm-*) bfd_gas=yes ;;
426 *-elf) bfd_gas=yes ;;
427 *-ecoff) bfd_gas=yes ;;
428 *-som) bfd_gas=yes ;;
429 #enable bfd for coff and aout to allow testing if a bfd target is
430 #the primary target, but not for coff or aout as the primary target
431 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
432 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
433 *) ;;
434 esac
435
436 # Other random stuff.
437
438 # Do we need the opcodes library?
439 case ${cpu_type} in
440 vax | i386 | tic30)
441 ;;
442
443 *)
444 need_opcodes=yes
445
446 case "${enable_shared}" in
447 yes) shared_opcodes=true ;;
448 *opcodes*) shared_opcodes=true ;;
449 *) shared_opcodes=false ;;
450 esac
451 if test "${shared_opcodes}" = "true"; then
452 # A shared libopcodes must be linked against libbfd.
453 need_bfd=yes
454 fi
455 ;;
456 esac
457
458 # Any other special object files needed ?
459 case ${cpu_type} in
460 fr30 | m32r)
461 using_cgen=yes
462 ;;
463
464 m68k)
465 case ${extra_objects} in
466 *m68k-parse.o*) ;;
467 *) extra_objects="$extra_objects m68k-parse.o" ;;
468 esac
469 ;;
470
471 mips)
472 echo ${extra_objects} | grep -s "itbl-parse.o"
473 if test $? -ne 0 ; then
474 extra_objects="$extra_objects itbl-parse.o"
475 fi
476
477 echo ${extra_objects} | grep -s "itbl-lex.o"
478 if test $? -ne 0 ; then
479 extra_objects="$extra_objects itbl-lex.o"
480 fi
481
482 echo ${extra_objects} | grep -s "itbl-ops.o"
483 if test $? -ne 0 ; then
484 extra_objects="$extra_objects itbl-ops.o"
485 fi
486 ;;
487
488 sparc)
489 if test $this_target = $target ; then
490 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
491 fi
492 ;;
493 *)
494 ;;
495 esac
496
497 if test $using_cgen = yes ; then
498 case "x${extra_objects}" in
499 *cgen.o*) ;;
500 *) extra_objects="$extra_objects cgen.o" ;;
501 esac
502 fi
503
504 # See if we really can support this configuration with the emulation code.
505
506 if test $this_target = $target ; then
507 primary_bfd_gas=$bfd_gas
508 obj_format=$fmt
509 te_file=$em
510
511 if test $bfd_gas = no ; then
512 # Can't support other configurations this way.
513 break
514 fi
515 elif test $bfd_gas = no ; then
516 # Can't support this configuration.
517 break
518 fi
519
520 # From target name and format, produce a list of supported emulations.
521
522 case ${generic_target}-${fmt} in
523 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
524 mips-*-linux-gnu*-*) case "$endian" in
525 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
526 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
527 esac ;;
528 mips-*-lnews*-ecoff) ;;
529 mips-*-*-ecoff) case "$endian" in
530 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
531 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
532 esac ;;
533 mips-*-*-elf) case "$endian" in
534 big) emulation="mipsbelf mipslelf mipself" ;;
535 *) emulation="mipslelf mipsbelf mipself" ;;
536 esac ;;
537 # Uncommenting the next line will turn on support for i386 AOUT
538 # for the default linux configuration
539 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
540 #
541 i386-*-aout) emulation="i386aout" ;;
542 i386-*-coff) emulation="i386coff" ;;
543 i386-*-elf) emulation="i386elf" ;;
544 esac
545
546 emulations="$emulations $emulation"
547
548 done
549
550 # Turn on all targets if possible
551 if test ${all_targets} = "yes"; then
552 case ${target_cpu_type} in
553 i386)
554 case ${obj_format} in
555 aout)
556 emulations="$emulations i386coff i386elf"
557 ;;
558 coff)
559 emulations="$emulations i386aout i386elf"
560 ;;
561 elf)
562 emulations="$emulations i386aout i386coff"
563 ;;
564 esac
565 ;;
566 esac
567 fi
568
569 # Assign floating point type. Most processors with FP support
570 # IEEE FP. On those that don't support FP at all, usually IEEE
571 # is emulated.
572 case ${target_cpu} in
573 vax | tahoe ) atof=${target_cpu} ;;
574 *) atof=ieee ;;
575 esac
576
577 case "${obj_format}" in
578 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
579 esac
580
581 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
582 cgen_cpu_prefix=""
583 if test $using_cgen = yes ; then
584 case ${target_cpu} in
585 *) cgen_cpu_prefix=${target_cpu} ;;
586 esac
587 AC_SUBST(cgen_cpu_prefix)
588 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
589 fi
590
591 dnl
592 dnl Make sure the desired support files exist.
593 dnl
594
595 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
596 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
597 fi
598
599 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
600 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
601 fi
602
603 case ${user_bfd_gas}-${primary_bfd_gas} in
604 yes-yes | no-no)
605 # We didn't override user's choice.
606 ;;
607 no-yes)
608 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
609 ;;
610 no-preferred)
611 primary_bfd_gas=no
612 ;;
613 *-preferred)
614 primary_bfd_gas=yes
615 ;;
616 yes-*)
617 primary_bfd_gas=yes
618 ;;
619 -*)
620 # User specified nothing.
621 ;;
622 esac
623
624 # Some COFF configurations want these random other flags set.
625 case ${obj_format} in
626 coff)
627 case ${target_cpu_type} in
628 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
629 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
630 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
631 esac
632 ;;
633 esac
634
635 # Getting this done right is going to be a bitch. Each configuration specified
636 # with --enable-targets=... should be checked for environment, format, cpu, and
637 # bfd_gas setting.
638 #
639 # For each configuration, the necessary object file support code must be linked
640 # in. This might be only one, it might be up to four. The necessary emulation
641 # code needs to be provided, too.
642 #
643 # And then there's "--enable-targets=all"....
644 #
645 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
646
647 formats="${obj_format}"
648 emfiles=""
649 EMULATIONS=""
650 GAS_UNIQ(emulations)
651 for em in . $emulations ; do
652 case $em in
653 .) continue ;;
654 mipsbelf | mipslelf)
655 fmt=elf file=mipself ;;
656 mipsbecoff | mipslecoff)
657 fmt=ecoff file=mipsecoff ;;
658 i386aout)
659 fmt=aout file=i386aout ;;
660 i386coff)
661 fmt=coff file=i386coff ;;
662 i386elf)
663 fmt=elf file=i386elf ;;
664 esac
665 formats="$formats $fmt"
666 emfiles="$emfiles e-$file.o"
667 EMULATIONS="$EMULATIONS &$em,"
668 done
669 GAS_UNIQ(formats)
670 GAS_UNIQ(emfiles)
671 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
672 for fmt in $formats ; do
673 case $fmt in
674 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
675 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
676 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
677 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
678 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
679 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
680 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
681 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
682 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
683 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
684 esac
685 extra_objects="$extra_objects obj-$fmt.o"
686 done
687 obj_format=multi
688 fi
689 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
690 DEFAULT_EMULATION=`set . $emulations ; echo $2`
691 # e-mips* has more than one emulation per file, e-i386* has just one at the
692 # moment. If only one emulation is specified, then don't define
693 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
694 case "${obj_format}${emfiles}" in
695 multi* | *mips*)
696 extra_objects="$extra_objects $emfiles"
697 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
698 esac
699 fi
700 AC_SUBST(extra_objects)
701 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
702 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
703 [Default emulation.])
704
705 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
706 yes-*-coff) need_bfd=yes ;;
707 no-*-coff) need_bfd=yes
708 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
709 esac
710
711 reject_dev_configs=yes
712
713 case ${reject_dev_configs}-${dev} in
714 yes-yes) # Oops.
715 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
716 ;;
717 esac
718
719 AC_SUBST(target_cpu_type)
720 AC_SUBST(obj_format)
721 AC_SUBST(te_file)
722 AC_SUBST(install_tooldir)
723 AC_SUBST(atof)
724 dnl AC_SUBST(emulation)
725
726 case "${primary_bfd_gas}" in
727 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
728 need_bfd=yes ;;
729 esac
730
731 # do we need the opcodes library?
732 case "${need_opcodes}" in
733 yes)
734 OPCODES_LIB=../opcodes/libopcodes.la
735 ;;
736 esac
737
738 case "${need_bfd}" in
739 yes)
740 BFDLIB=../bfd/libbfd.la
741 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
742 ;;
743 esac
744
745 AC_SUBST(BFDLIB)
746 AC_SUBST(OPCODES_LIB)
747
748 AC_SUBST(ALL_OBJ_DEPS)
749
750 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
751 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
752 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
753 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
754 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
755
756 AC_PROG_CC
757
758 AC_PROG_YACC
759 AM_PROG_LEX
760
761 ALL_LINGUAS=
762 CY_GNU_GETTEXT
763
764 AM_MAINTAINER_MODE
765 AC_EXEEXT
766
767 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
768
769 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
770 # people who are not cross-compiling but are compiling cross-assemblers.
771 AC_MSG_CHECKING(whether compiling a cross-assembler)
772 if test "${host}" = "${target}"; then
773 cross_gas=no
774 else
775 cross_gas=yes
776 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
777 fi
778 AC_MSG_RESULT($cross_gas)
779
780 dnl ansidecl.h will deal with const
781 dnl AC_CONST
782 AC_FUNC_ALLOCA
783 AC_C_INLINE
784
785 # VMS doesn't have unlink.
786 AC_CHECK_FUNCS(unlink remove, break)
787
788 # Some systems don't have sbrk().
789 AC_CHECK_FUNCS(sbrk)
790
791 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
792 # enough, but on some of those systems, the assert macro relies on requoting
793 # working properly!
794 GAS_WORKING_ASSERT
795
796 # On some systems, the system header files may not declare malloc, realloc,
797 # and free. There are places where gas needs these functions to have been
798 # declared -- such as when taking their addresses.
799 gas_test_headers="
800 #ifdef HAVE_MEMORY_H
801 #include <memory.h>
802 #endif
803 #ifdef HAVE_STRING_H
804 #include <string.h>
805 #else
806 #ifdef HAVE_STRINGS_H
807 #include <strings.h>
808 #endif
809 #endif
810 #ifdef HAVE_STDLIB_H
811 #include <stdlib.h>
812 #endif
813 #ifdef HAVE_UNISTD_H
814 #include <unistd.h>
815 #endif
816 "
817 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
818 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
819 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
820 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
821 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
822
823 # Does errno.h declare errno, or do we have to add a separate declaration
824 # for it?
825 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
826 #ifdef HAVE_ERRNO_H
827 #include <errno.h>
828 #endif
829 ])
830
831 dnl This must come last.
832
833 dnl We used to make symlinks to files in the source directory, but now
834 dnl we just use the right name for .c files, and create .h files in
835 dnl the build directory which include the right .h file. Make sure
836 dnl the old symlinks don't exist, so that a reconfigure in an existing
837 dnl directory behaves reasonably.
838
839 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
840 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
841 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
842 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
843 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
844 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
845 if test "x$cgen_cpu_prefix" != x ; then
846 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
847 fi
848
849 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
850 [target_cpu_type=${target_cpu_type}
851 cgen_cpu_prefix=${cgen_cpu_prefix}
852 obj_format=${obj_format}
853 te_file=${te_file}])
This page took 0.046264 seconds and 4 git commands to generate.