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.10.91)
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-*-freebsd*) fmt=elf bfd_gas=yes ;;
251 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
253 i386-*-sco3.2v5*) fmt=elf
254 if test ${this_target} = $target; then
255 AC_DEFINE(SCO_ELF, 1,
256 [Define if defaulting to ELF on SCO 5.])
259 i386-*-sco3.2*) fmt=coff ;;
260 i386-*-vsta) fmt=aout ;;
261 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
262 fmt=coff em=go32 bfd_gas=yes
263 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
265 i386-*-rtemself*) fmt=elf ;;
266 i386-*-rtems*) fmt=coff ;;
267 i386-*-gnu*) fmt=elf ;;
269 fmt=aout em=mach bfd_gas=yes ;;
270 i386-*-msdos*) fmt=aout ;;
271 i386-*-moss*) fmt=elf ;;
272 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
273 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
274 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
275 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
276 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
277 i386-*-vxworks*) fmt=aout ;;
278 i386-*-chaos) fmt=elf ;;
279 i860-stardent-sysv4* | i860-stardent-elf*)
280 fmt=elf bfd_gas=yes endian=little
281 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
282 i960-*-bout) fmt=bout ;;
283 i960-*-coff) fmt=coff em=ic960 ;;
284 i960-*-rtems*) fmt=coff em=ic960 ;;
285 i960-*-nindy*) fmt=bout ;;
286 i960-*-vxworks4*) fmt=bout ;;
287 i960-*-vxworks5.0) fmt=bout ;;
288 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
289 i960-*-vxworks*) fmt=bout ;;
290 i960-*-elf*) fmt=elf ;;
292 ia64-*-elf*) fmt=elf ;;
293 ia64-*-linux-gnu*) fmt=elf em=linux ;;
294 ia64-*-hpux*) fmt=elf em=hpux ;;
296 m32r-*-*) fmt=elf bfd_gas=yes ;;
298 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
300 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
302 m68k-motorola-sysv*) fmt=coff em=delta ;;
303 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
304 m68k-apollo-*) fmt=coff em=apollo ;;
305 m68k-*-sysv4*) # must be before -sysv*
307 m68k-*-elf*) fmt=elf ;;
308 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
310 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
311 m68k-*-linux*aout*) fmt=aout em=linux ;;
312 m68k-*-linux-gnu*) fmt=elf em=linux ;;
313 m68k-*-gnu*) fmt=elf ;;
314 m68k-*-lynxos*) fmt=coff em=lynx ;;
315 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
316 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
317 m68k-apple-aux*) fmt=coff em=aux ;;
318 m68k-*-psos*) fmt=elf em=psos;;
320 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
321 m88k-*-coff*) fmt=coff ;;
323 mcore-*-elf) fmt=elf bfd_gas=yes ;;
324 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
326 # don't change em like *-*-bsd does
327 mips-dec-netbsd*) fmt=elf endian=little ;;
328 mips-dec-openbsd*) fmt=elf endian=little ;;
329 mips-dec-bsd*) fmt=aout endian=little ;;
330 mips-sony-bsd*) fmt=ecoff ;;
331 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
332 mips-*-ultrix*) fmt=ecoff endian=little ;;
333 mips-*-osf*) fmt=ecoff endian=little ;;
334 mips-*-ecoff*) fmt=ecoff ;;
335 mips-*-ecoff*) fmt=ecoff ;;
336 mips-*-pe*) fmt=coff endian=little em=pe ;;
337 mips-*-irix6*) fmt=elf ;;
338 mips-*-irix5*) fmt=elf ;;
339 mips-*-irix*) fmt=ecoff ;;
340 mips-*-lnews*) fmt=ecoff em=lnews ;;
341 mips-*-riscos*) fmt=ecoff ;;
342 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
343 mips-*-sysv*) fmt=ecoff ;;
344 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
346 mips-*-vxworks*) fmt=elf
347 AC_DEFINE(MIPS_STABS_ELF, 1,
348 [Use ELF stabs for MIPS, not ECOFF stabs])
350 mn10200-*-*) fmt=elf bfd_gas=yes ;;
351 mn10300-*-*) fmt=elf bfd_gas=yes ;;
353 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
355 ppc-*-aix*) fmt=coff ;;
356 ppc-*-beos*) fmt=coff ;;
357 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
359 ppc-*-linux-gnu*) fmt=elf
362 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
365 ppc-*-solaris*) fmt=elf
366 if test ${this_target} = $target; then
367 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
368 [Define if default target is PowerPC Solaris.])
370 if test x${endian} = xbig; then
371 AC_MSG_ERROR(Solaris must be configured little endian)
374 ppc-*-rtems*) fmt=elf ;;
375 ppc-*-macos* | ppc-*-mpw*)
377 ppc-*-netware*) fmt=elf em=ppcnw ;;
378 ppc-*-vxworks*) fmt=elf ;;
380 sh-*-linux*) fmt=elf em=linux ;;
381 sh-*-elf*) fmt=elf ;;
382 sh-*-coff*) fmt=coff ;;
383 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
384 sh-*-rtemself*) fmt=elf ;;
385 sh-*-rtems*) fmt=coff ;;
387 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
388 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
389 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
391 sparc-*-rtemsaout*) fmt=aout ;;
392 sparc-*-rtemself*) fmt=elf ;;
393 sparc-*-rtems*) fmt=elf ;;
394 sparc-*-sunos4*) fmt=aout em=sun3 ;;
395 sparc-*-aout | sparc*-*-vxworks*)
396 fmt=aout em=sparcaout ;;
397 sparc-*-coff) fmt=coff ;;
398 sparc-*-linux*aout*) fmt=aout em=linux ;;
399 sparc-*-linux-gnu*) fmt=elf em=linux ;;
400 sparc-*-lynxos*) fmt=coff em=lynx ;;
401 sparc-fujitsu-none) fmt=aout ;;
402 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
404 sparc-*-netbsd*) em=nbsd bfd_gas=yes
413 sparc-*-openbsd*) fmt=aout em=nbsd ;;
415 strongarm-*-coff) fmt=coff ;;
416 strongarm-*-elf) fmt=elf ;;
417 xscale-*-coff) fmt=coff ;;
418 xscale-*-elf) fmt=elf ;;
420 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
421 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
422 tic54x-*-* | c54x*-*-*)
423 fmt=coff bfd_gas=yes need_libm=yes;;
424 tic80-*-*) fmt=coff ;;
426 v850-*-*) fmt=elf bfd_gas=yes ;;
427 v850e-*-*) fmt=elf bfd_gas=yes ;;
428 v850ea-*-*) fmt=elf bfd_gas=yes ;;
430 vax-*-bsd* | vax-*-ultrix*)
432 vax-*-vms) fmt=vms ;;
435 z8k-*-coff | z8k-*-sim)
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. Having a.out first makes it the default.
609 cris-*-*) emulation="crisaout criself" ;;
612 emulations="$emulations $emulation"
616 # Turn on all targets if possible
617 if test ${all_targets} = "yes"; then
618 case ${target_cpu_type} in
620 case ${obj_format} in
622 emulations="$emulations i386coff i386elf"
625 emulations="$emulations i386aout i386elf"
628 emulations="$emulations i386aout i386coff"
635 # Assign floating point type. Most processors with FP support
636 # IEEE FP. On those that don't support FP at all, usually IEEE
638 case ${target_cpu} in
639 vax | tahoe ) atof=${target_cpu} ;;
643 case "${obj_format}" in
644 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
647 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
649 if test $using_cgen = yes ; then
650 case ${target_cpu} in
651 *) cgen_cpu_prefix=${target_cpu} ;;
653 AC_SUBST(cgen_cpu_prefix)
654 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
658 dnl Make sure the desired support files exist.
661 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
662 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
665 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
666 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
669 case ${user_bfd_gas}-${primary_bfd_gas} in
671 # We didn't override user's choice.
674 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
686 # User specified nothing.
690 # Some COFF configurations want these random other flags set.
691 case ${obj_format} in
693 case ${target_cpu_type} in
694 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
695 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
696 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
701 # Getting this done right is going to be a bitch. Each configuration specified
702 # with --enable-targets=... should be checked for environment, format, cpu, and
705 # For each configuration, the necessary object file support code must be linked
706 # in. This might be only one, it might be up to four. The necessary emulation
707 # code needs to be provided, too.
709 # And then there's "--enable-targets=all"....
711 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
713 formats="${obj_format}"
717 for em in . $emulations ; do
721 fmt=elf file=mipself ;;
722 mipsbecoff | mipslecoff)
723 fmt=ecoff file=mipsecoff ;;
731 formats="$formats $fmt"
732 emfiles="$emfiles e-$file.o"
733 EMULATIONS="$EMULATIONS &$em,"
737 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
738 for fmt in $formats ; do
740 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
741 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
742 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
743 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
744 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
745 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
746 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
747 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
748 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
749 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
751 extra_objects="$extra_objects obj-$fmt.o"
755 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
756 DEFAULT_EMULATION=`set . $emulations ; echo $2`
757 # e-mips* has more than one emulation per file, e-i386* has just one at the
758 # moment. If only one emulation is specified, then don't define
759 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
760 case "${obj_format}${emfiles}" in
762 extra_objects="$extra_objects $emfiles"
763 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
766 AC_SUBST(extra_objects)
767 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
768 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
769 [Default emulation.])
771 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
772 yes-*-coff) need_bfd=yes ;;
773 no-*-coff) need_bfd=yes
774 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
777 reject_dev_configs=yes
779 case ${reject_dev_configs}-${dev} in
781 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
785 AC_SUBST(target_cpu_type)
788 AC_SUBST(install_tooldir)
790 dnl AC_SUBST(emulation)
792 case "${primary_bfd_gas}" in
793 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
797 # do we need the opcodes library?
798 case "${need_opcodes}" in
800 OPCODES_LIB=../opcodes/libopcodes.la
804 case "${need_bfd}" in
806 BFDLIB=../bfd/libbfd.la
807 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
812 AC_SUBST(OPCODES_LIB)
814 AC_SUBST(ALL_OBJ_DEPS)
816 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
817 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
818 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
819 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
820 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
833 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
835 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
836 # people who are not cross-compiling but are compiling cross-assemblers.
837 AC_MSG_CHECKING(whether compiling a cross-assembler)
838 if test "${host}" = "${target}"; then
842 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
844 AC_MSG_RESULT($cross_gas)
846 dnl ansidecl.h will deal with const
851 # VMS doesn't have unlink.
852 AC_CHECK_FUNCS(unlink remove, break)
854 # Some systems don't have sbrk().
857 # do we need the math library?
858 case "${need_libm}" in
865 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
866 # enough, but on some of those systems, the assert macro relies on requoting
870 # On some systems, the system header files may not declare malloc, realloc,
871 # and free. There are places where gas needs these functions to have been
872 # declared -- such as when taking their addresses.
880 #ifdef HAVE_STRINGS_H
891 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
892 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
893 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
894 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
895 GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
897 # Does errno.h declare errno, or do we have to add a separate declaration
899 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
905 dnl This must come last.
907 dnl We used to make symlinks to files in the source directory, but now
908 dnl we just use the right name for .c files, and create .h files in
909 dnl the build directory which include the right .h file. Make sure
910 dnl the old symlinks don't exist, so that a reconfigure in an existing
911 dnl directory behaves reasonably.
913 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
914 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
915 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
916 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
917 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
918 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
919 if test "x$cgen_cpu_prefix" != x ; then
920 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
923 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
924 [target_cpu_type=${target_cpu_type}
925 cgen_cpu_prefix=${cgen_cpu_prefix}
926 obj_format=${obj_format}