* coff-go32.c (RTYPE2HOWTO): Fully parenthesize arguments.
[deliverable/binutils-gdb.git] / gas / configure.in
CommitLineData
b11fb939
KR
1dnl Process this file with autoconf to produce a configure script.
2dnl
3dnl And be careful when changing it! If you must add tests with square
4dnl brackets, be sure changequote invocations surround it.
5dnl
6dnl Remember to use "dnl" in each line before the AC_INIT call...
7dnl
8dnl
9AC_INIT(as.h)
10dnl
bdee23af 11bfd_gas=no
318b02b6 12user_bfd_gas=
b11fb939
KR
13AC_ARG_ENABLE(bfd-assembler,
14[ bfd-assembler use BFD back end for writing object files],
15[case "${enableval}" in
318b02b6
KR
16 yes) need_bfd=yes user_bfd_gas=yes ;;
17 no) user_bfd_gas=no ;;
b11fb939
KR
18 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
19esac])dnl
20
21# Generate a header file -- gets more post-processing by Makefile later.
22AC_CONFIG_HEADER(conf)
23
24dnl For recursion to work right, this must be an absolute pathname.
25AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
26AC_CANONICAL_SYSTEM
318b02b6 27AC_PROGRAM_TRANSFORM_NAME
7cf4d7ff 28
b678740d
RP
29emulation=generic
30
b11fb939 31# assign cpu type
5f8a3788 32
b53ccaac
ILT
33# check for architecture variants
34case ${target_cpu} in
8cac6ca6 35 hppa*) cpu_type=hppa ;;
b11fb939 36changequote(,)dnl
904b6037 37 i[45]86) cpu_type=i386 ;;
82489ea0 38 m680[012346]0) cpu_type=m68k ;;
8cac6ca6
KR
39 m68008) cpu_type=m68k ;;
40 m683??) cpu_type=m68k ;;
b11fb939 41changequote([,])dnl
8cac6ca6 42 m8*) cpu_type=m88k ;;
5f8a3788 43 mips*el) cpu_type=mips endian=little;;
b11fb939 44 mips*) cpu_type=mips endian=big ;;
5e65fbc8 45 powerpc*) cpu_type=ppc ;;
1c11ab0e 46 rs6000*) cpu_type=ppc ;;
b11fb939 47 sparc64) cpu_type=sparc obj_format=elf AC_DEFINE(sparcv9) ;;
8cac6ca6 48 sparclite*) cpu_type=sparc ;;
7cf4d7ff 49 *) cpu_type=${target_cpu} ;;
b53ccaac
ILT
50esac
51
634233a3
KR
52# do we need the opcodes library?
53case ${cpu_type} in
54 alpha | vax)
634233a3
KR
55 ;;
56 *)
b11fb939 57 OPCODES_LIB="../opcodes/libopcodes.a"
634233a3
KR
58 ;;
59esac
b11fb939 60AC_SUBST(OPCODES_LIB)
634233a3 61
b53ccaac 62gas_target=${cpu_type}
f70a4714 63generic_target=${cpu_type}-${target_vendor}-${target_os}
8cac6ca6
KR
64dev=no
65
74cc5508 66# assign object format
f70a4714 67case ${generic_target} in
b418bc52
KR
68 a29k-amd-udi) obj_format=coff gas_target=ebmon29k ;;
69 a29k-amd-ebmon) obj_format=coff gas_target=ebmon29k ;;
7cf4d7ff 70
c25be7f4 71 alpha-*-netware*) obj_format=ecoff ;;
34de45f9 72 alpha-*-osf*) obj_format=ecoff ;;
816153a3 73
318b02b6
KR
74 arm-*-riscix*) obj_format=aout bfd_gas=yes ;;
75
c25be7f4
KR
76 hppa-*-*elf*) obj_format=elf emulation=hppa ;;
77 hppa-*-osf*) obj_format=som emulation=hppa ;;
7cf4d7ff 78 hppa-*-hpux*) obj_format=som emulation=hppa ;;
5f8a3788 79 hppa-*-bsd*) obj_format=som emulation=hppa ;;
f8693e71 80 hppa-*-hiux*) obj_format=som emulation=hppa ;;
7cf4d7ff 81
b418bc52 82 h8300-*-coff) obj_format=coff ;;
8f4b9142 83
b418bc52 84 i386-ibm-aix*) obj_format=coff gas_target=i386coff
7cf4d7ff
KR
85 emulation=i386aix ;;
86 i386-*-bsd*) obj_format=aout emulation=386bsd ;;
b418bc52 87 i386-*-netbsd0.8) obj_format=aout emulation=386bsd ;;
420065a5 88 i386-*-netbsd*) obj_format=aout emulation=netbsd ;;
8cac6ca6 89 i386-*-linux*elf*) obj_format=elf emulation=linux ;;
b418bc52 90 i386-*-linux*coff*) obj_format=coff emulation=linux
8cac6ca6 91 gas_target=i386coff ;;
318b02b6 92 i386-*-linux*) obj_format=aout emulation=linux bfd_gas=preferred ;;
b418bc52 93 i386-*-lynxos*) obj_format=coff gas_target=i386coff
8cac6ca6
KR
94 emulation=lynx ;;
95 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
96 obj_format=elf ;;
97 i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
b418bc52 98 obj_format=coff gas_target=i386coff ;;
420065a5 99 i386-*-vsta) obj_format=aout ;;
b418bc52 100 i386-*-go32) obj_format=coff gas_target=i386coff ;;
de66fe1f
KR
101 i386-*-mach* | i386-*-gnu*)
102 obj_format=aout emulation=mach bfd_gas=yes ;;
7cf4d7ff 103
c25be7f4 104 i960-*-bout) obj_format=bout ;;
b418bc52 105 i960-*-coff) obj_format=coff emulation=ic960 gas_target=ic960coff ;;
c25be7f4
KR
106 i960-*-nindy*) obj_format=bout ;;
107 i960-*-vxworks4*) obj_format=bout ;;
108 i960-*-vxworks5.0) obj_format=bout ;;
b418bc52 109 i960-*-vxworks5.*) obj_format=coff emulation=ic960 gas_target=ic960coff ;;
c25be7f4 110 i960-*-vxworks*) obj_format=bout ;;
7cf4d7ff 111
8cac6ca6 112 m68k-wrs-vxworks | m68k-ericsson-ose | m68k-*-sunos*)
7cf4d7ff 113 obj_format=aout emulation=sun3 ;;
b418bc52
KR
114 m68k-motorola-sysv) obj_format=coff gas_target=m68kcoff emulation=delta ;;
115 m68k-bull-sysv3*) obj_format=coff gas_target=m68kcoff emulation=dpx2 ;;
116 m68k-apollo-*) obj_format=coff gas_target=apollo emulation=apollo ;;
8cac6ca6 117 m68k-*-coff | m68k-*-sysv*)
b418bc52 118 obj_format=coff gas_target=m68kcoff ;;
7cf4d7ff 119 m68k-*-hpux) obj_format=hp300 emulation=hp300 ;;
b418bc52 120 m68k-*-lynxos*) obj_format=coff gas_target=m68kcoff
8cac6ca6 121 emulation=lynx ;;
7cf4d7ff 122
b418bc52 123 m88k-*-coff*) obj_format=coff gas_target=m88kcoff ;;
c978e704 124
7cf4d7ff
KR
125 # don't change emulation like *-*-bsd does
126 mips-*-bsd*) bfd_gas=yes obj_format=aout gas_target=mips-lit ;;
127 mips-*-ultrix*) obj_format=ecoff gas_target=mips-lit ;;
5f8a3788 128 mips-*-ecoff*) obj_format=ecoff
b11fb939
KR
129 case "$endian" in
130 big) gas_target=mips-big ;;
131 *) gas_target=mips-lit ;;
132 esac
5f8a3788 133 ;;
47fcc4f5 134 mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;;
00f4e659 135 mips-*-irix5*) obj_format=elf gas_target=mips-big ;;
20ae2fb8 136 mips-*-irix*) obj_format=ecoff gas_target=mips-big ;;
8cac6ca6
KR
137 mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;;
138 mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;;
5f8a3788 139 mips-*-elf*) obj_format=elf
b11fb939
KR
140 case "$endian" in
141 big) gas_target=mips-big ;;
142 *) gas_target=mips-lit ;;
143 esac
5f8a3788 144 ;;
1c11ab0e 145 ppc-*-aix*) obj_format=coff bfd_gas=yes ;;
904b6037
ILT
146 ppc-*-elf*) obj_format=elf bfd_gas=yes ;;
147 ppc-*-netware*) obj_format=elf emulation=ppcnw ;;
5e65fbc8 148 ppc-*-sysv4*) obj_format=elf bfd_gas=yes ;;
1c11ab0e 149
b418bc52 150 sh-*-coff) obj_format=coff ;;
816153a3 151
904b6037
ILT
152 ns32k-pc532-mach*) obj_format=aout emulation=pc532 bfd_gas=yes ;;
153 ns32k-pc532-netbsd*) obj_format=aout emulation=netbsd532 bfd_gas=yes ;;
154
8cac6ca6
KR
155 sparc*-*-sunos4*) obj_format=aout emulation=sun3 bfd_gas=yes ;;
156 sparc*-*-aout | sparc*-*-vxworks)
157 obj_format=aout bfd_gas=yes ;;
158 sparc*-*-coff) obj_format=coff bfd_gas=yes ;;
634233a3 159 sparc*-*-lynxos*) obj_format=coff bfd_gas=yes emulation=lynx ;;
8cac6ca6
KR
160 sparc*-fujitsu-none) obj_format=aout bfd_gas=yes ;;
161 sparc*-*-elf | sparc*-*-solaris*)
162 obj_format=elf ;;
7cf4d7ff 163
5677c028
KR
164 vax-*-bsd* | vax-*-ultrix*)
165 obj_format=aout ;;
8cac6ca6 166 vax-*-vms) obj_format=vms ;;
a8285504 167
8cac6ca6 168 z8k-*-coff | z8k-*-sim)
b418bc52 169 obj_format=coff ;;
07ef2075 170
8cac6ca6 171 *-*-aout | *-*-scout)
7cf4d7ff 172 obj_format=aout ;;
8cac6ca6 173 *-*-nindy*)
7cf4d7ff 174 obj_format=bout ;;
8cac6ca6 175 *-*-bsd*)
7cf4d7ff
KR
176 obj_format=aout emulation=sun3 ;;
177 *-*-generic) obj_format=generic ;;
b418bc52
KR
178 *-*-xray | *-*-hms) obj_format=coff ;;
179 *-*-sim) obj_format=coff ;;
8cac6ca6 180 *-*-elf | *-*-sysv4* | *-*-solaris*)
b11fb939 181 AC_MSG_WARN(GAS support for ELF format is incomplete)
8cac6ca6 182 obj_format=elf dev=yes ;;
7cf4d7ff 183 *-*-vxworks) obj_format=aout ;;
5f8a3788 184 *-*-netware) obj_format=elf ;;
fecd2382
RP
185esac
186
8cac6ca6
KR
187# Assign floating point type. Most processors with FP support
188# IEEE FP. On those that don't support FP at all, usually IEEE
189# is emulated.
b678740d 190case ${target_cpu} in
904b6037 191 vax | tahoe ) atof=${target_cpu} ;;
7cf4d7ff 192 *) atof=ieee ;;
fecd2382
RP
193esac
194
8cac6ca6 195case "${obj_format}" in
b11fb939 196 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
8cac6ca6 197esac
7cf4d7ff 198
b11fb939
KR
199dnl
200dnl Make sure the desired support files exist.
201dnl
202
fb589130 203if test ! -r ${srcdir}/config/tc-${cpu_type}.c; then
b11fb939
KR
204 AC_MSG_ERROR(GAS does not support target CPU ${cpu_type})
205fi
206
fb589130 207if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
b11fb939 208 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
7cf4d7ff
KR
209fi
210
8a24a37c
SC
211# and target makefile frag
212
b11fb939
KR
213target_frag=${srcdir}/config/${gas_target}.mt
214AC_SUBST_FILE(target_frag)
8a24a37c 215
318b02b6
KR
216case ${cpu_type}-${obj_format} in
217# not yet
218# i386-aout) bfd_gas=preferred ;;
7cf4d7ff
KR
219 *-elf) bfd_gas=yes ;;
220 *-ecoff) bfd_gas=yes ;;
5f8a3788 221 *-som) bfd_gas=yes ;;
7cf4d7ff
KR
222 *) ;;
223esac
224
318b02b6 225case ${user_bfd_gas}-${bfd_gas} in
a8285504 226 yes-yes | no-no)
7cf4d7ff
KR
227 # We didn't override user's choice.
228 ;;
a8285504 229 no-yes)
b11fb939 230 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
7cf4d7ff 231 ;;
a8285504
DZ
232 no-preferred)
233 bfd_gas=no
234 ;;
235 *-preferred)
236 bfd_gas=yes
237 ;;
238 -*)
239 # User specified nothing.
240 ;;
7cf4d7ff
KR
241esac
242
318b02b6
KR
243case ${bfd_gas}-${cpu_type}-${obj_format} in
244 yes-*-coff) need_bfd=yes ;;
245 no-*-coff) need_bfd=yes
246 AC_DEFINE(MANY_SEGMENTS) ;;
247esac
248
69ecc03f 249reject_dev_configs=yes
8cac6ca6
KR
250
251case ${reject_dev_configs}-${dev} in
252 yes-yes) # Oops.
b11fb939 253 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
8cac6ca6
KR
254 ;;
255esac
256
b11fb939
KR
257dnl Looks like the AC_MAKE_LINKS string is taken literally and put into the
258dnl config.status file. So the necessary variables also have to be
259dnl exported.
260AC_SUBST(cpu_type) AC_SUBST(obj_format) AC_SUBST(emulation) AC_SUBST(atof)
261AC_LINK_FILES(targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c,
262 config/tc-${cpu_type}.c config/tc-${cpu_type}.h \
74cc5508 263 config/obj-${obj_format}.h config/obj-${obj_format}.c \
b11fb939 264 config/te-${emulation}.h config/atof-${atof}.c)
8b228fe9 265
b11fb939
KR
266case "${bfd_gas}" in
267 yes) AC_DEFINE(BFD_ASSEMBLER)
268 need_bfd=yes ;;
4f6f4aa8
KR
269esac
270
b11fb939
KR
271case "${need_bfd}" in
272 yes) BFDLIB=../bfd/libbfd.a
273 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
c92d9ee9 274 ;;
4f6f4aa8 275esac
b11fb939
KR
276AC_SUBST(BFDLIB)
277AC_SUBST(ALL_OBJ_DEPS)
4f6f4aa8 278
c8570de8
ILT
279case "x${host}" in
280 x${target}) ;;
b11fb939 281 *) AC_DEFINE(CROSS_COMPILE);;
8cac6ca6
KR
282esac
283
b11fb939
KR
284AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
285AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
286AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
287AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
288AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
289
290case ${host} in
291 rs6000-*-*)
292 # The IBM compiler mis-compiles some expressions used in gas.
293 # This will tell gas to work around this lossage.
294 AC_DEFINE(IBM_COMPILER_SUX) ;;
295 i386-*-go32)
296 # Using fopen(..., "w") for a binary file breaks under DOS.
297 AC_DEFINE(WANT_FOPEN_BIN) ;;
298esac
8f4b9142 299
b11fb939
KR
300AC_PROG_CC
301AC_PROG_INSTALL
302
b11fb939
KR
303AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
304
305dnl ansidecl.h will deal with const
306dnl AC_CONST
307AC_FUNC_ALLOCA
308AC_C_INLINE
309
310# Some non-ANSI preprocessors botch requoting inside strings. That's bad
311# enough, but on some of those systems, the assert macro relies on requoting
312# working properly!
fb589130
KR
313AC_MSG_CHECKING([for working assert macro])
314AC_CACHE_VAL(gas_cv_assert_ok,
b11fb939
KR
315AC_TRY_LINK([#include <assert.h>
316#include <stdio.h>], [
317/* check for requoting problems */
318static int a, b, c, d;
319static char *s;
320assert (!strcmp(s, "foo bar baz quux"));
321/* check for newline handling */
322assert (a == b
323 || c == d);
fb589130
KR
324], gas_cv_assert_ok=yes, gas_cv_assert_ok=no))dnl
325AC_MSG_RESULT($gas_cv_assert_ok)
326test $gas_cv_assert_ok = yes || AC_DEFINE(BROKEN_ASSERT)
b11fb939
KR
327
328# On some systems, the system header files may not declare malloc, realloc,
329# and free. There are places where gas needs these functions to have been
330# declared -- such as when taking their addresses.
fb589130
KR
331AC_MSG_CHECKING([whether a malloc declaration is required])
332AC_CACHE_VAL(gas_cv_malloc_decl_needed,
b11fb939
KR
333AC_TRY_LINK([
334#ifdef HAVE_MEMORY_H
335#include <memory.h>
336#endif
337#ifdef HAVE_STRING_H
338#include <string.h>
339#endif
340#ifdef HAVE_STDLIB_H
341#include <stdlib.h>
342#endif
343#ifdef HAVE_UNISTD_H
344#include <unistd.h>
345#endif
346], [
347char *(*f) ();
348f = (char *(*)()) malloc;
fb589130
KR
349], gas_cv_malloc_decl_needed=no, gas_cv_malloc_decl_needed=yes))dnl
350AC_MSG_RESULT($gas_cv_malloc_decl_needed)
351test $gas_cv_malloc_decl_needed = no || AC_DEFINE(NEED_MALLOC_DECLARATION)
352
353AC_MSG_CHECKING([whether a free declaration is required])
354AC_CACHE_VAL(gas_cv_free_decl_needed,
b11fb939
KR
355AC_TRY_LINK([
356#ifdef HAVE_MEMORY_H
357#include <memory.h>
358#endif
359#ifdef HAVE_STRING_H
360#include <string.h>
361#endif
362#ifdef HAVE_STDLIB_H
363#include <stdlib.h>
364#endif
365#ifdef HAVE_UNISTD_H
366#include <unistd.h>
367#endif
368], [
369int (*f) ();
370f = (int (*)()) free;
fb589130
KR
371], gas_cv_free_decl_needed=no, gas_cv_free_decl_needed=yes))
372AC_MSG_RESULT($gas_cv_free_decl_needed)
373test $gas_cv_free_decl_needed = no || AC_DEFINE(NEED_FREE_DECLARATION)
b11fb939
KR
374
375# Does errno.h declare errno, or do we have to add a separate declaration
376# for it?
fb589130
KR
377AC_MSG_CHECKING([whether an errno declaration is required])
378AC_CACHE_VAL(gas_cv_errno_decl_needed,
b11fb939
KR
379AC_TRY_LINK([
380#ifdef HAVE_ERRNO_H
381#include <errno.h>
382#endif
383], [
384int x;
385x = errno;
fb589130
KR
386], gas_cv_errno_decl_needed=no, gas_cv_errno_decl_needed=yes))
387AC_MSG_RESULT($gas_cv_errno_decl_needed)
388test $gas_cv_errno_decl_needed = no || AC_DEFINE(NEED_ERRNO_DECLARATION)
b11fb939
KR
389
390AC_CONFIG_SUBDIRS(testsuite)
391
392dnl This must come last.
393dnl Apparently symlinks are checked for in the directory containing
394dnl the last Makefile. Thus the order used here...
395AC_OUTPUT(doc/Makefile Makefile)
This page took 0.138713 seconds and 4 git commands to generate.