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