* configure.in: Recognize mips-sony-bsd and mips-dec-bsd, but reject other
[deliverable/binutils-gdb.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.037252 seconds and 5 git commands to generate.