]> Git Repo - binutils.git/blob - gas/configure.in
* configure.in: Recognize mips-sony-bsd and mips-dec-bsd, but reject other
[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 AC_PREREQ(1.118)dnl
8 AC_INIT(as.h)dnl
9 dnl
10 bfd_gas=no
11 user_bfd_gas=
12 AC_ARG_ENABLE(bfd-assembler,
13 [    bfd-assembler      use BFD back end for writing object files],
14 [case "${enableval}" in
15   yes) need_bfd=yes user_bfd_gas=yes ;;
16   no)  user_bfd_gas=no ;;
17   *)   AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
18 esac])dnl
19
20 # Generate a header file -- gets more post-processing by Makefile later.
21 AC_CONFIG_HEADER(conf)
22
23 dnl For recursion to work right, this must be an absolute pathname.
24 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
25 AC_CANONICAL_SYSTEM
26 AC_ARG_PROGRAM
27
28 emulation=generic
29
30 # assign cpu type
31
32 # check for architecture variants
33 case ${target_cpu} in
34   hppa*)        cpu_type=hppa ;;
35 changequote(,)dnl
36   i[45]86)      cpu_type=i386 ;;
37   m680[012346]0) cpu_type=m68k ;;
38   m68008)       cpu_type=m68k ;;
39   m683??)       cpu_type=m68k ;;
40 changequote([,])dnl
41   m8*)          cpu_type=m88k ;;
42   mips*el)      cpu_type=mips endian=little;;
43   mips*)        cpu_type=mips endian=big ;;
44   powerpc*)     cpu_type=ppc ;;
45   rs6000*)      cpu_type=ppc ;;
46   sparc64)      cpu_type=sparc obj_format=elf
47                 AC_DEFINE(sparcv9) ;;
48   sparclite*)   cpu_type=sparc ;;
49   *)            cpu_type=${target_cpu} ;;
50 esac
51
52 # do we need the opcodes library?
53 case ${cpu_type} in
54   alpha | vax)
55     ;;
56   *)
57     OPCODES_LIB="../opcodes/libopcodes.a"
58     ;;
59 esac
60 AC_SUBST(OPCODES_LIB)
61
62 gas_target=${cpu_type}
63 generic_target=${cpu_type}-${target_vendor}-${target_os}
64 dev=no
65
66 # assign object format
67 case ${generic_target} in
68   a29k-amd-udi)         obj_format=coff gas_target=ebmon29k ;;
69   a29k-amd-ebmon)       obj_format=coff gas_target=ebmon29k ;;
70
71   alpha-*-netware*)     obj_format=ecoff ;;
72   alpha-*-osf*)         obj_format=ecoff ;;
73
74 # start-sanitize-arc
75   arc-*-elf*)           obj_format=elf bfd_gas=yes ;;
76 # end-sanitize-arc
77
78   arm-*-riscix*)        obj_format=aout ;;
79
80   hppa-*-*elf*)         obj_format=elf emulation=hppa ;;
81   hppa-*-osf*)          obj_format=som emulation=hppa ;;
82   hppa-*-hpux*)         obj_format=som emulation=hppa ;;
83   hppa-*-bsd*)          obj_format=som emulation=hppa ;;
84   hppa-*-hiux*)         obj_format=som emulation=hppa ;;
85
86   h8300-*-coff)         obj_format=coff ;;
87
88   i386-ibm-aix*)        obj_format=coff gas_target=i386coff
89                          emulation=i386aix ;;
90   i386-*-bsd*)          obj_format=aout emulation=386bsd ;;
91   i386-*-netbsd0.8)     obj_format=aout emulation=386bsd ;;
92   i386-*-netbsd*)       obj_format=aout emulation=nbsd bfd_gas=yes;;
93   i386-*-linux*elf*)    obj_format=elf  emulation=linux ;;
94   i386-*-linux*coff*)   obj_format=coff emulation=linux
95                          gas_target=i386coff ;;
96   i386-*-linux*)        obj_format=aout emulation=linux ;;
97   i386-*-lynxos*)       obj_format=coff gas_target=i386coff
98                          emulation=lynx ;;
99   i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
100                         obj_format=elf ;;
101   i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
102                         obj_format=coff gas_target=i386coff ;;
103   i386-*-vsta)          obj_format=aout ;;
104   i386-*-go32)          obj_format=coff gas_target=i386coff ;;
105   i386-*-mach* | i386-*-gnu*)
106                         obj_format=aout emulation=mach bfd_gas=yes ;;
107
108   i960-*-bout)          obj_format=bout ;;
109   i960-*-coff)          obj_format=coff emulation=ic960 gas_target=ic960coff ;;
110   i960-*-nindy*)        obj_format=bout ;;
111   i960-*-vxworks4*)     obj_format=bout ;;
112   i960-*-vxworks5.0)    obj_format=bout ;;
113   i960-*-vxworks5.*)    obj_format=coff emulation=ic960 gas_target=ic960coff ;;
114   i960-*-vxworks*)      obj_format=bout ;;
115
116   m68k-wrs-vxworks | m68k-ericsson-ose | m68k-*-sunos*)
117                         obj_format=aout emulation=sun3 ;;
118   m68k-motorola-sysv)   obj_format=coff gas_target=m68kcoff emulation=delta ;;
119   m68k-bull-sysv3*)     obj_format=coff gas_target=m68kcoff emulation=dpx2 ;;
120   m68k-apollo-*)        obj_format=coff gas_target=apollo emulation=apollo ;;
121   m68k-*-coff | m68k-*-sysv*)
122                         obj_format=coff gas_target=m68kcoff ;;
123   m68k-*-hpux*)         obj_format=hp300 emulation=hp300 ;;
124   m68k-*-lynxos*)       obj_format=coff gas_target=m68kcoff
125                          emulation=lynx ;;
126   m68k-*-netbsd*)       obj_format=aout emulation=nbsd bfd_gas=yes ;;
127
128   m88k-*-coff*)         obj_format=coff gas_target=m88kcoff ;;
129
130   # don't change emulation like *-*-bsd does
131   mips-dec-bsd*)        obj_format=aout gas_target=mips-lit ;;
132   mips-sony-bsd*)       obj_format=ecoff gas_target=mips-big ;;
133   mips-*-bsd*)          AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
134   mips-*-ultrix*)       obj_format=ecoff gas_target=mips-lit ;;
135   mips-*-ecoff*)        obj_format=ecoff 
136                         case "$endian" in
137                         big) gas_target=mips-big ;;
138                         *)   gas_target=mips-lit ;;
139                         esac
140                         ;;
141   mips-*-ecoff*)        obj_format=ecoff gas_target=mips-big ;;
142   mips-*-gnu*)          obj_format=aout
143                         case "$endian" in
144                         big) gas_target=mips-big ;;
145                         *)   gas_target=mips-lit ;;
146                         esac
147                         ;;
148   mips-*-irix5*)        obj_format=elf gas_target=mips-big ;;
149   mips-*-irix*)         obj_format=ecoff gas_target=mips-big ;;
150   mips-*-riscos*)       obj_format=ecoff gas_target=mips-big ;;
151   mips-*-sysv*)         obj_format=ecoff gas_target=mips-big ;;
152   mips-*-elf*)          obj_format=elf 
153                         case "$endian" in
154                         big) gas_target=mips-big ;;
155                         *)   gas_target=mips-lit ;;
156                         esac
157                         ;;
158   ppc-*-aix*)           obj_format=coff ;;
159   ppc-*-elf*)           obj_format=elf ;;
160   ppc-*-netware*)       obj_format=elf emulation=ppcnw ;;
161   ppc-*-sysv4*)         obj_format=elf ;;
162
163   sh-*-coff)            obj_format=coff ;;
164
165 # start-sanitize-rce
166   rce-*-aout)           obj_format=aout ;;
167 # end-sanitize-rce
168
169   ns32k-pc532-mach*)    obj_format=aout emulation=pc532mach ;;
170   ns32k-pc532-netbsd*)  obj_format=aout emulation=nbsd532 ;;
171
172   sparc-*-sunos4*)      obj_format=aout emulation=sun3 ;;
173   sparc-*-aout | sparc*-*-vxworks)
174                         obj_format=aout ;;
175   sparc-*-coff)         obj_format=coff ;;
176   sparc-*-lynxos*)      obj_format=coff emulation=lynx ;;
177   sparc-fujitsu-none)   obj_format=aout ;;
178   sparc-*-elf | sparc*-*-solaris*)
179                         obj_format=elf ;;
180   sparc-*-netbsd*)      obj_format=aout emulation=nbsd bfd_gas=yes ;;
181
182   vax-*-bsd* | vax-*-ultrix*)
183                         obj_format=aout ;;
184   vax-*-vms)            obj_format=vms ;;
185
186   z8k-*-coff | z8k-*-sim)
187                         obj_format=coff ;;
188
189   *-*-aout | *-*-scout)
190                         obj_format=aout ;;
191   *-*-nindy*)
192                         obj_format=bout ;;
193   *-*-bsd*)
194                         obj_format=aout emulation=sun3 ;;
195   *-*-generic)          obj_format=generic ;;
196   *-*-xray | *-*-hms)   obj_format=coff ;;
197   *-*-sim)              obj_format=coff ;;
198   *-*-elf | *-*-sysv4* | *-*-solaris*)
199                         AC_MSG_WARN(GAS support for ELF format is incomplete)
200                         obj_format=elf dev=yes ;;
201   *-*-vxworks)          obj_format=aout ;;
202   *-*-netware)          obj_format=elf ;;
203 esac
204
205 # Assign floating point type.  Most processors with FP support
206 # IEEE FP.  On those that don't support FP at all, usually IEEE
207 # is emulated.
208 case ${target_cpu} in
209   vax | tahoe ) atof=${target_cpu} ;;
210   *)                    atof=ieee ;;
211 esac
212
213 case "${obj_format}" in
214   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
215 esac
216
217 dnl
218 dnl Make sure the desired support files exist.
219 dnl
220
221 if test ! -r ${srcdir}/config/tc-${cpu_type}.c; then
222   AC_MSG_ERROR(GAS does not support target CPU ${cpu_type})
223 fi
224
225 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
226   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
227 fi
228
229 # and target makefile frag
230
231 target_frag=${srcdir}/config/${gas_target}.mt
232 if test ! -r ${target_frag}; then
233   target_frag=/dev/null # ick! but subst_file can't be conditionalized
234 fi
235 AC_SUBST_FILE(target_frag)
236
237 case ${cpu_type}-${obj_format} in
238   arm-*)        bfd_gas=yes ;;
239 # not yet
240 # i386-aout)    bfd_gas=preferred ;;
241   mips-*)       bfd_gas=yes ;;
242   ns32k-*)      bfd_gas=yes ;;
243   ppc-*)        bfd_gas=yes ;;
244   sparc-*)      bfd_gas=yes ;;
245   *-elf)        bfd_gas=yes ;;
246   *-ecoff)      bfd_gas=yes ;;
247   *-som)        bfd_gas=yes ;;
248   *)            ;;
249 esac
250
251 case ${user_bfd_gas}-${bfd_gas} in
252   yes-yes | no-no)
253     # We didn't override user's choice.
254     ;;
255   no-yes)
256     AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
257     ;;
258   no-preferred)
259     bfd_gas=no
260     ;;
261   *-preferred)
262     bfd_gas=yes
263     ;;
264   yes-*)
265     bfd_gas=yes
266     ;;
267   -*)
268     # User specified nothing.
269     ;;
270 esac
271
272 case ${bfd_gas}-${cpu_type}-${obj_format} in
273   yes-*-coff)   need_bfd=yes ;;
274   no-*-coff)    need_bfd=yes
275                 AC_DEFINE(MANY_SEGMENTS) ;;
276 esac
277
278 reject_dev_configs=yes
279
280 case ${reject_dev_configs}-${dev} in
281   yes-yes) # Oops.
282     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
283     ;;
284 esac
285
286 AC_LINK_FILES(config/tc-${cpu_type}.c   config/tc-${cpu_type}.h \
287         config/obj-${obj_format}.h config/obj-${obj_format}.c \
288         config/te-${emulation}.h config/atof-${atof}.c,
289         targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c)
290
291 case "${bfd_gas}" in
292   yes)  AC_DEFINE(BFD_ASSEMBLER)
293         need_bfd=yes ;;
294 esac
295
296 case "${need_bfd}" in
297   yes)  BFDLIB=../bfd/libbfd.a
298         ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
299         ;;
300 esac
301 AC_SUBST(BFDLIB)
302 AC_SUBST(ALL_OBJ_DEPS)
303
304 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}")
305 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}")
306 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}")
307 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}")
308 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}")
309
310 AC_PROG_CC
311 AC_PROG_INSTALL
312
313 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
314
315 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
316 # people who are not cross-compiling but are compiling cross-assemblers.
317 AC_MSG_CHECKING(whether compiling a cross-assembler)
318 if test "${host}" = "${target}"; then
319   cross_gas=no
320 else
321   cross_gas=yes
322   AC_DEFINE(CROSS_COMPILE)
323 fi
324 AC_MSG_RESULT($cross_gas)
325
326 dnl ansidecl.h will deal with const
327 dnl AC_CONST
328 AC_FUNC_ALLOCA
329 AC_C_INLINE
330
331 # VMS doesn't have unlink.
332 AC_CHECK_FUNCS(unlink remove, break)
333
334 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
335 # enough, but on some of those systems, the assert macro relies on requoting
336 # working properly!
337 GAS_WORKING_ASSERT
338
339 # On some systems, the system header files may not declare malloc, realloc,
340 # and free.  There are places where gas needs these functions to have been
341 # declared -- such as when taking their addresses.
342 gas_test_headers="
343 #ifdef HAVE_MEMORY_H
344 #include <memory.h>
345 #endif
346 #ifdef HAVE_STRING_H
347 #include <string.h>
348 #endif
349 #ifdef HAVE_STDLIB_H
350 #include <stdlib.h>
351 #endif
352 #ifdef HAVE_UNISTD_H
353 #include <unistd.h>
354 #endif
355 "
356 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
357 GAS_CHECK_DECL_NEEDED(free, f, int f, $gas_test_headers)
358
359 # Does errno.h declare errno, or do we have to add a separate declaration
360 # for it?
361 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
362 #ifdef HAVE_ERRNO_H
363 #include <errno.h>
364 #endif
365 ])
366
367 AC_CONFIG_SUBDIRS(testsuite)
368
369 dnl This must come last.
370 AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in)
This page took 0.041915 seconds and 4 git commands to generate.