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