1 dnl Process this file with autoconf to produce a configure script.
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
7 dnl v2.5 needed for --bindir et al
14 AM_INIT_AUTOMAKE(gas, 2.11.1)
19 AC_ARG_ENABLE(bfd-assembler,
20 [ --enable-bfd-assembler use BFD back end for writing object files],
21 [case "${enableval}" in
22 yes) need_bfd=yes user_bfd_gas=yes ;;
23 no) user_bfd_gas=no ;;
24 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
26 AC_ARG_ENABLE(targets,
27 [ targets alternative target configurations besides the primary],
28 [case "${enableval}" in
29 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
31 no) enable_targets= ;;
32 *) enable_targets=$enableval ;;
34 AC_ARG_ENABLE(commonbfdlib,
35 [ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
36 [case "${enableval}" in
37 yes) commonbfdlib=true ;;
38 no) commonbfdlib=false ;;
39 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
44 build_warnings="-W -Wall"
45 AC_ARG_ENABLE(build-warnings,
46 [ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
47 [case "${enableval}" in
49 no) build_warnings="-w";;
50 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
51 build_warnings="${build_warnings} ${t}";;
52 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
53 build_warnings="${t} ${build_warnings}";;
54 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
56 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
57 echo "Setting warning flags = $build_warnings" 6>&1
60 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
61 WARN_CFLAGS="${build_warnings}"
65 # Generate a header file
66 AM_CONFIG_HEADER(config.h:config.in)
68 # If we are on a DOS filesystem, we must use gdb.ini rather than
72 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
80 # Makefile target for installing gas in $(tooldir)/bin.
81 install_tooldir=install-exec-tooldir
85 if test -n "$enable_targets" ; then
86 for t in `echo $enable_targets | sed 's/,/ /g'`; do
87 if test $t = "all"; then
91 result=`$ac_config_sub $t 2>/dev/null`
92 if test -n "$result" ; then
93 canon_targets="$canon_targets $result"
95 # # Permit "all", etc. We don't support it yet though.
96 # canon_targets="$canon_targets $t"
99 GAS_UNIQ(canon_targets)
104 for this_target in $target $canon_targets ; do
107 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
110 # check for architecture variants
114 alpha*) cpu_type=alpha ;;
115 armeb) cpu_type=arm endian=big ;;
116 arm*) cpu_type=arm endian=little ;;
117 armb*) cpu_type=arm endian=little ;;
118 armv*l) cpu_type=arm endian=little ;;
119 armv*b) cpu_type=arm endian=big ;;
120 xscale*) cpu_type=arm endian=little ;;
121 strongarm*) cpu_type=arm endian=little ;;
122 thumb*) cpu_type=arm endian=little ;;
123 hppa*) cpu_type=hppa ;;
125 i[3456]86) cpu_type=i386 arch=i386;;
126 x86_64) cpu_type=i386 arch=x86_64;;
127 ia64) cpu_type=ia64 ;;
128 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
129 m680[012346]0) cpu_type=m68k ;;
131 m68008) cpu_type=m68k ;;
132 m683??) cpu_type=m68k ;;
133 m5200) cpu_type=m68k ;;
134 m8*) cpu_type=m88k ;;
135 mips*el) cpu_type=mips endian=little ;;
136 mips*) cpu_type=mips endian=big ;;
137 pjl*) cpu_type=pj endian=little ;;
138 pj*) cpu_type=pj endian=big ;;
139 powerpcle*) cpu_type=ppc endian=little ;;
140 powerpc*) cpu_type=ppc endian=big ;;
141 rs6000*) cpu_type=ppc ;;
142 sparclite*) cpu_type=sparc arch=sparclite ;;
143 sparclet*) cpu_type=sparc arch=sparclet ;;
144 sparc64*) cpu_type=sparc arch=v9-64 ;;
145 sparc86x*) cpu_type=sparc arch=sparc86x ;;
146 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
147 v850*) cpu_type=v850 ;;
148 *) cpu_type=${cpu} ;;
151 if test ${this_target} = $target ; then
152 target_cpu_type=${cpu_type}
153 elif test ${target_cpu_type} != ${cpu_type} ; then
157 generic_target=${cpu_type}-$vendor-$os
162 # assign object format
163 case ${generic_target} in
164 a29k-*-coff) fmt=coff ;;
165 a29k-amd-udi) fmt=coff ;;
166 a29k-amd-ebmon) fmt=coff ;;
167 a29k-nyu-sym1) fmt=coff ;;
168 a29k-*-rtems*) fmt=coff ;;
169 a29k-*-vxworks*) fmt=coff ;;
171 alpha*-*-*vms*) fmt=evax ;;
172 alpha*-*-netware*) fmt=ecoff ;;
173 alpha*-*-openbsd*) fmt=ecoff ;;
174 alpha*-*-osf*) fmt=ecoff ;;
175 alpha*-*-linuxecoff*) fmt=ecoff ;;
176 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
177 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
179 arc-*-elf*) fmt=elf bfd_gas=yes ;;
181 arm-*-aout) fmt=aout ;;
182 arm-*-coff | thumb-*-coff) fmt=coff ;;
183 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
184 arm-*-elf | thumb-*-elf) fmt=elf ;;
185 arm*-*-conix*) fmt=elf ;;
186 arm-*-linux*aout*) fmt=aout em=linux ;;
187 arm*-*-linux-gnu* | arm*-*-uclinux*)
189 arm-*-netbsd*) fmt=aout em=nbsd ;;
190 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
191 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
192 arm-*-wince) fmt=coff em=wince-pe ;;
193 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
194 arm-*-riscix*) fmt=aout em=riscix ;;
196 avr-*-*) fmt=elf bfd_gas=yes ;;
198 cris-*-*) fmt=multi bfd_gas=yes ;;
200 d10v-*-*) fmt=elf bfd_gas=yes ;;
201 d30v-*-*) fmt=elf bfd_gas=yes ;;
204 fr30-*-*) fmt=elf bfd_gas=yes ;;
206 hppa-*-linux-gnu*) case ${cpu} in
208 fmt=elf em=hppalinux64;;
212 hppa-*-*elf*) fmt=elf em=hppa ;;
213 hppa-*-lites*) fmt=elf em=hppa ;;
214 hppa-*-osf*) fmt=som em=hppa ;;
215 hppa-*-rtems*) fmt=elf em=hppa ;;
216 hppa-*-hpux11*) case ${cpu} in
222 hppa-*-hpux*) fmt=som em=hppa ;;
223 hppa-*-mpeix*) fmt=som em=hppa ;;
224 hppa-*-bsd*) fmt=som em=hppa ;;
225 hppa-*-hiux*) fmt=som em=hppa ;;
227 h8300-*-rtems*) fmt=coff ;;
228 h8300-*-coff) fmt=coff ;;
230 i370-*-elf* | i370-*-linux*) fmt=elf ;;
231 i386-ibm-aix*) fmt=coff em=i386aix ;;
232 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
233 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
234 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
235 i386-*-bsd*) fmt=aout em=386bsd ;;
236 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
237 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
238 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
239 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
240 i386-*-linux*coff*) fmt=coff em=linux ;;
241 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
242 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
243 i386-*-lynxos*) fmt=coff em=lynx ;;
245 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
246 fmt=elf bfd_gas=yes ;;
247 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
248 fmt=aout em=386bsd ;;
250 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
252 i386-*-sco3.2v5*) fmt=elf
253 if test ${this_target} = $target; then
254 AC_DEFINE(SCO_ELF, 1,
255 [Define if defaulting to ELF on SCO 5.])
258 i386-*-sco3.2*) fmt=coff ;;
259 i386-*-vsta) fmt=aout ;;
260 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
261 fmt=coff em=go32 bfd_gas=yes
262 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
264 i386-*-rtemself*) fmt=elf ;;
265 i386-*-rtems*) fmt=coff ;;
266 i386-*-gnu*) fmt=elf ;;
268 fmt=aout em=mach bfd_gas=yes ;;
269 i386-*-msdos*) fmt=aout ;;
270 i386-*-moss*) fmt=elf ;;
271 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
272 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
273 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
274 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
275 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
276 i386-*-vxworks*) fmt=aout ;;
277 i386-*-chaos) fmt=elf ;;
278 i860-stardent-sysv4* | i860-stardent-elf*)
279 fmt=elf bfd_gas=yes endian=little
280 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
281 i960-*-bout) fmt=bout ;;
282 i960-*-coff) fmt=coff em=ic960 ;;
283 i960-*-rtems*) fmt=coff em=ic960 ;;
284 i960-*-nindy*) fmt=bout ;;
285 i960-*-vxworks4*) fmt=bout ;;
286 i960-*-vxworks5.0) fmt=bout ;;
287 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
288 i960-*-vxworks*) fmt=bout ;;
289 i960-*-elf*) fmt=elf ;;
291 ia64-*-elf*) fmt=elf ;;
292 ia64-*-linux-gnu*) fmt=elf em=linux ;;
293 ia64-*-hpux*) fmt=elf em=hpux ;;
295 m32r-*-*) fmt=elf bfd_gas=yes ;;
297 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
299 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
301 m68k-motorola-sysv*) fmt=coff em=delta ;;
302 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
303 m68k-apollo-*) fmt=coff em=apollo ;;
304 m68k-*-sysv4*) # must be before -sysv*
306 m68k-*-elf*) fmt=elf ;;
307 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
309 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
310 m68k-*-linux*aout*) fmt=aout em=linux ;;
311 m68k-*-linux-gnu*) fmt=elf em=linux ;;
312 m68k-*-gnu*) fmt=elf ;;
313 m68k-*-lynxos*) fmt=coff em=lynx ;;
314 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
315 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
316 m68k-apple-aux*) fmt=coff em=aux ;;
317 m68k-*-psos*) fmt=elf em=psos;;
319 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
320 m88k-*-coff*) fmt=coff ;;
322 mcore-*-elf) fmt=elf bfd_gas=yes ;;
323 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
325 # don't change em like *-*-bsd does
326 mips-dec-netbsd*) fmt=elf endian=little ;;
327 mips-dec-openbsd*) fmt=elf endian=little ;;
328 mips-dec-bsd*) fmt=aout endian=little ;;
329 mips-sony-bsd*) fmt=ecoff ;;
330 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
331 mips-*-ultrix*) fmt=ecoff endian=little ;;
332 mips-*-osf*) fmt=ecoff endian=little ;;
333 mips-*-ecoff*) fmt=ecoff ;;
334 mips-*-ecoff*) fmt=ecoff ;;
335 mips-*-pe*) fmt=coff endian=little em=pe ;;
336 mips-*-irix6*) fmt=elf ;;
337 mips-*-irix5*) fmt=elf ;;
338 mips-*-irix*) fmt=ecoff ;;
339 mips-*-lnews*) fmt=ecoff em=lnews ;;
340 mips-*-riscos*) fmt=ecoff ;;
341 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
342 mips-*-sysv*) fmt=ecoff ;;
343 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
345 mips-*-vxworks*) fmt=elf
346 AC_DEFINE(MIPS_STABS_ELF, 1,
347 [Use ELF stabs for MIPS, not ECOFF stabs])
349 mn10200-*-*) fmt=elf bfd_gas=yes ;;
350 mn10300-*-*) fmt=elf bfd_gas=yes ;;
352 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
354 ppc-*-aix*) fmt=coff ;;
355 ppc-*-beos*) fmt=coff ;;
356 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
358 ppc-*-linux-gnu*) fmt=elf
361 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
364 ppc-*-solaris*) fmt=elf
365 if test ${this_target} = $target; then
366 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
367 [Define if default target is PowerPC Solaris.])
369 if test x${endian} = xbig; then
370 AC_MSG_ERROR(Solaris must be configured little endian)
373 ppc-*-rtems*) fmt=elf ;;
374 ppc-*-macos* | ppc-*-mpw*)
376 ppc-*-netware*) fmt=elf em=ppcnw ;;
377 ppc-*-vxworks*) fmt=elf ;;
379 sh-*-linux*) fmt=elf em=linux ;;
380 sh-*-elf*) fmt=elf ;;
381 sh-*-coff*) fmt=coff ;;
382 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
383 sh-*-rtemself*) fmt=elf ;;
384 sh-*-rtems*) fmt=coff ;;
386 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
387 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
388 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
390 sparc-*-rtemsaout*) fmt=aout ;;
391 sparc-*-rtemself*) fmt=elf ;;
392 sparc-*-rtems*) fmt=elf ;;
393 sparc-*-sunos4*) fmt=aout em=sun3 ;;
394 sparc-*-aout | sparc*-*-vxworks*)
395 fmt=aout em=sparcaout ;;
396 sparc-*-coff) fmt=coff ;;
397 sparc-*-linux*aout*) fmt=aout em=linux ;;
398 sparc-*-linux-gnu*) fmt=elf em=linux ;;
399 sparc-*-lynxos*) fmt=coff em=lynx ;;
400 sparc-fujitsu-none) fmt=aout ;;
401 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
403 sparc-*-netbsd*) em=nbsd bfd_gas=yes
412 sparc-*-openbsd*) fmt=aout em=nbsd ;;
414 strongarm-*-coff) fmt=coff ;;
415 strongarm-*-elf) fmt=elf ;;
416 xscale-*-coff) fmt=coff ;;
417 xscale-*-elf) fmt=elf ;;
419 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
420 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
421 tic54x-*-* | c54x*-*-*)
422 fmt=coff bfd_gas=yes need_libm=yes;;
423 tic80-*-*) fmt=coff ;;
425 v850-*-*) fmt=elf bfd_gas=yes ;;
426 v850e-*-*) fmt=elf bfd_gas=yes ;;
427 v850ea-*-*) fmt=elf bfd_gas=yes ;;
429 vax-*-bsd* | vax-*-ultrix*)
431 vax-*-vms) fmt=vms ;;
434 z8k-*-coff | z8k-*-sim)
439 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;;
440 *-*-aout | *-*-scout)
446 *-*-generic) fmt=generic ;;
447 *-*-xray | *-*-hms) fmt=coff ;;
449 *-*-elf | *-*-sysv4* | *-*-solaris*)
450 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
452 *-*-vxworks) fmt=aout ;;
453 *-*-netware) fmt=elf ;;
456 if test ${this_target} = $target ; then
458 if test x${endian} = xbig; then
460 elif test x${endian} = xlittle; then
463 if test x${endian_def} != x; then
464 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
465 [Define as 1 if big endian.])
469 case ${cpu_type}-${fmt} in
470 alpha*-*) bfd_gas=yes ;;
471 arm-*) bfd_gas=yes ;;
473 # i386-aout) bfd_gas=preferred ;;
474 ia64*-*) bfd_gas=yes ;;
475 mips-*) bfd_gas=yes ;;
476 ns32k-*) bfd_gas=yes ;;
477 ppc-*) bfd_gas=yes ;;
478 sparc-*) bfd_gas=yes ;;
479 strongarm-*) bfd_gas=yes ;;
480 xscale-*) bfd_gas=yes ;;
481 *-elf) bfd_gas=yes ;;
482 *-ecoff) bfd_gas=yes ;;
483 *-som) bfd_gas=yes ;;
484 #enable bfd for coff and aout to allow testing if a bfd target is
485 #the primary target, but not for coff or aout as the primary target
486 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
487 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
491 # Other random stuff.
493 # Do we need the opcodes library?
501 case "${enable_shared}" in
502 yes) shared_opcodes=true ;;
503 *opcodes*) shared_opcodes=true ;;
504 *) shared_opcodes=false ;;
506 if test "${shared_opcodes}" = "true"; then
507 # A shared libopcodes must be linked against libbfd.
513 # Any other special object files needed ?
520 case ${extra_objects} in
522 *) extra_objects="$extra_objects m68k-parse.o" ;;
527 echo ${extra_objects} | grep -s "itbl-parse.o"
528 if test $? -ne 0 ; then
529 extra_objects="$extra_objects itbl-parse.o"
532 echo ${extra_objects} | grep -s "itbl-lex.o"
533 if test $? -ne 0 ; then
534 extra_objects="$extra_objects itbl-lex.o"
537 echo ${extra_objects} | grep -s "itbl-ops.o"
538 if test $? -ne 0 ; then
539 extra_objects="$extra_objects itbl-ops.o"
544 if test $this_target = $target ; then
545 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
549 if test $this_target = $target ; then
550 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
557 if test $using_cgen = yes ; then
558 case "x${extra_objects}" in
560 *) extra_objects="$extra_objects cgen.o" ;;
564 # See if we really can support this configuration with the emulation code.
566 if test $this_target = $target ; then
567 primary_bfd_gas=$bfd_gas
571 if test $bfd_gas = no ; then
572 # Can't support other configurations this way.
575 elif test $bfd_gas = no ; then
576 # Can't support this configuration.
580 # From target name and format, produce a list of supported emulations.
582 case ${generic_target}-${fmt} in
583 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
584 mips-*-linux-gnu*-*) case "$endian" in
585 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
586 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
588 mips-*-lnews*-ecoff) ;;
589 mips-*-*-ecoff) case "$endian" in
590 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
591 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
593 mips-*-*-elf) case "$endian" in
594 big) emulation="mipsbelf mipslelf mipself" ;;
595 *) emulation="mipslelf mipsbelf mipself" ;;
597 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
598 # i386-pc-pe-coff != i386-pc-coff.
600 # Uncommenting the next line will turn on support for i386 AOUT
601 # for the default linux configuration
602 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
604 i386-*-aout) emulation="i386aout" ;;
605 i386-*-coff) emulation="i386coff" ;;
606 i386-*-elf) emulation="i386elf" ;;
608 # Always all formats. The first stated emulation becomes the default.
609 cris-*-*aout*) emulation="crisaout criself" ;;
610 cris-*-*) emulation="criself crisaout" ;;
613 emulations="$emulations $emulation"
617 # Turn on all targets if possible
618 if test ${all_targets} = "yes"; then
619 case ${target_cpu_type} in
621 case ${obj_format} in
623 emulations="$emulations i386coff i386elf"
626 emulations="$emulations i386aout i386elf"
629 emulations="$emulations i386aout i386coff"
636 # Assign floating point type. Most processors with FP support
637 # IEEE FP. On those that don't support FP at all, usually IEEE
639 case ${target_cpu} in
640 vax | tahoe ) atof=${target_cpu} ;;
644 case "${obj_format}" in
645 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
648 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
650 if test $using_cgen = yes ; then
651 case ${target_cpu} in
652 *) cgen_cpu_prefix=${target_cpu} ;;
654 AC_SUBST(cgen_cpu_prefix)
655 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
659 dnl Make sure the desired support files exist.
662 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
663 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
666 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
667 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
670 case ${user_bfd_gas}-${primary_bfd_gas} in
672 # We didn't override user's choice.
675 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
687 # User specified nothing.
691 # Some COFF configurations want these random other flags set.
692 case ${obj_format} in
694 case ${target_cpu_type} in
695 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
696 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
697 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
702 # Getting this done right is going to be a bitch. Each configuration specified
703 # with --enable-targets=... should be checked for environment, format, cpu, and
706 # For each configuration, the necessary object file support code must be linked
707 # in. This might be only one, it might be up to four. The necessary emulation
708 # code needs to be provided, too.
710 # And then there's "--enable-targets=all"....
712 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
714 formats="${obj_format}"
718 for em in . $emulations ; do
722 fmt=elf file=mipself ;;
723 mipsbecoff | mipslecoff)
724 fmt=ecoff file=mipsecoff ;;
732 formats="$formats $fmt"
733 emfiles="$emfiles e-$file.o"
734 EMULATIONS="$EMULATIONS &$em,"
738 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
739 for fmt in $formats ; do
741 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
742 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
743 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
744 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
745 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
746 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
747 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
748 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
749 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
750 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
752 extra_objects="$extra_objects obj-$fmt.o"
756 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
757 DEFAULT_EMULATION=`set . $emulations ; echo $2`
758 # e-mips* has more than one emulation per file, e-i386* has just one at the
759 # moment. If only one emulation is specified, then don't define
760 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
761 case "${obj_format}${emfiles}" in
763 extra_objects="$extra_objects $emfiles"
764 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
767 AC_SUBST(extra_objects)
768 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
769 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
770 [Default emulation.])
772 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
773 yes-*-coff) need_bfd=yes ;;
774 no-*-coff) need_bfd=yes
775 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
778 reject_dev_configs=yes
780 case ${reject_dev_configs}-${dev} in
782 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
786 AC_SUBST(target_cpu_type)
789 AC_SUBST(install_tooldir)
791 dnl AC_SUBST(emulation)
793 case "${primary_bfd_gas}" in
794 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
798 # do we need the opcodes library?
799 case "${need_opcodes}" in
801 OPCODES_LIB=../opcodes/libopcodes.la
805 case "${need_bfd}" in
807 BFDLIB=../bfd/libbfd.la
808 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
813 AC_SUBST(OPCODES_LIB)
815 AC_SUBST(ALL_OBJ_DEPS)
817 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
818 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
819 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
820 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
821 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
834 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
836 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
837 # people who are not cross-compiling but are compiling cross-assemblers.
838 AC_MSG_CHECKING(whether compiling a cross-assembler)
839 if test "${host}" = "${target}"; then
843 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
845 AC_MSG_RESULT($cross_gas)
847 dnl ansidecl.h will deal with const
852 # VMS doesn't have unlink.
853 AC_CHECK_FUNCS(unlink remove, break)
855 # Some systems don't have sbrk().
858 # do we need the math library?
859 case "${need_libm}" in
866 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
867 # enough, but on some of those systems, the assert macro relies on requoting
871 # On some systems, the system header files may not declare malloc, realloc,
872 # and free. There are places where gas needs these functions to have been
873 # declared -- such as when taking their addresses.
881 #ifdef HAVE_STRINGS_H
892 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
893 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
894 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
895 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
896 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
898 # Does errno.h declare errno, or do we have to add a separate declaration
900 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
906 dnl This must come last.
908 dnl We used to make symlinks to files in the source directory, but now
909 dnl we just use the right name for .c files, and create .h files in
910 dnl the build directory which include the right .h file. Make sure
911 dnl the old symlinks don't exist, so that a reconfigure in an existing
912 dnl directory behaves reasonably.
914 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
915 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
916 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
917 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
918 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
919 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
920 if test "x$cgen_cpu_prefix" != x ; then
921 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
924 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
925 [target_cpu_type=${target_cpu_type}
926 cgen_cpu_prefix=${cgen_cpu_prefix}
927 obj_format=${obj_format}