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