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