Generate .gdbinit file:
[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 Remember to use "dnl" in each line before the AC_INIT call...
7 dnl
8 dnl
9 AC_INIT(as.h)
10 dnl
11 bfd_gas=no
12 user_bfd_gas=
13 AC_ARG_ENABLE(bfd-assembler,
14 [ bfd-assembler use BFD back end for writing object files],
15 [case "${enableval}" in
16 yes) need_bfd=yes user_bfd_gas=yes ;;
17 no) user_bfd_gas=no ;;
18 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
19 esac])dnl
20
21 # Generate a header file -- gets more post-processing by Makefile later.
22 AC_CONFIG_HEADER(conf)
23
24 dnl For recursion to work right, this must be an absolute pathname.
25 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
26 AC_CANONICAL_SYSTEM
27 AC_ARG_PROGRAM
28
29 emulation=generic
30
31 # assign cpu type
32
33 # check for architecture variants
34 case ${target_cpu} in
35 hppa*) cpu_type=hppa ;;
36 changequote(,)dnl
37 i[45]86) cpu_type=i386 ;;
38 m680[012346]0) cpu_type=m68k ;;
39 m68008) cpu_type=m68k ;;
40 m683??) cpu_type=m68k ;;
41 changequote([,])dnl
42 m8*) cpu_type=m88k ;;
43 mips*el) cpu_type=mips endian=little;;
44 mips*) cpu_type=mips endian=big ;;
45 powerpc*) cpu_type=ppc ;;
46 rs6000*) cpu_type=ppc ;;
47 sparc64) cpu_type=sparc obj_format=elf 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 arm-*-riscix*) obj_format=aout bfd_gas=yes ;;
75
76 hppa-*-*elf*) obj_format=elf emulation=hppa ;;
77 hppa-*-osf*) obj_format=som emulation=hppa ;;
78 hppa-*-hpux*) obj_format=som emulation=hppa ;;
79 hppa-*-bsd*) obj_format=som emulation=hppa ;;
80 hppa-*-hiux*) obj_format=som emulation=hppa ;;
81
82 h8300-*-coff) obj_format=coff ;;
83
84 i386-ibm-aix*) obj_format=coff gas_target=i386coff
85 emulation=i386aix ;;
86 i386-*-bsd*) obj_format=aout emulation=386bsd ;;
87 i386-*-netbsd0.8) obj_format=aout emulation=386bsd ;;
88 i386-*-netbsd*) obj_format=aout emulation=netbsd ;;
89 i386-*-linux*elf*) obj_format=elf emulation=linux ;;
90 i386-*-linux*coff*) obj_format=coff emulation=linux
91 gas_target=i386coff ;;
92 i386-*-linux*) obj_format=aout emulation=linux ;;
93 i386-*-lynxos*) obj_format=coff gas_target=i386coff
94 emulation=lynx ;;
95 i386-*-sysv4* | i386-*-solaris* | i386-*-elf)
96 obj_format=elf ;;
97 i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
98 obj_format=coff gas_target=i386coff ;;
99 i386-*-vsta) obj_format=aout ;;
100 i386-*-go32) obj_format=coff gas_target=i386coff ;;
101 i386-*-mach* | i386-*-gnu*)
102 obj_format=aout emulation=mach bfd_gas=yes ;;
103
104 i960-*-bout) obj_format=bout ;;
105 i960-*-coff) obj_format=coff emulation=ic960 gas_target=ic960coff ;;
106 i960-*-nindy*) obj_format=bout ;;
107 i960-*-vxworks4*) obj_format=bout ;;
108 i960-*-vxworks5.0) obj_format=bout ;;
109 i960-*-vxworks5.*) obj_format=coff emulation=ic960 gas_target=ic960coff ;;
110 i960-*-vxworks*) obj_format=bout ;;
111
112 m68k-wrs-vxworks | m68k-ericsson-ose | m68k-*-sunos*)
113 obj_format=aout emulation=sun3 ;;
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 ;;
117 m68k-*-coff | m68k-*-sysv*)
118 obj_format=coff gas_target=m68kcoff ;;
119 m68k-*-hpux) obj_format=hp300 emulation=hp300 ;;
120 m68k-*-lynxos*) obj_format=coff gas_target=m68kcoff
121 emulation=lynx ;;
122
123 m88k-*-coff*) obj_format=coff gas_target=m88kcoff ;;
124
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 ;;
128 mips-*-ecoff*) obj_format=ecoff
129 case "$endian" in
130 big) gas_target=mips-big ;;
131 *) gas_target=mips-lit ;;
132 esac
133 ;;
134 mips-*-ecoff*) obj_format=ecoff gas_target=mips-big ;;
135 mips-*-irix5*) obj_format=elf gas_target=mips-big ;;
136 mips-*-irix*) obj_format=ecoff gas_target=mips-big ;;
137 mips-*-riscos*) obj_format=ecoff gas_target=mips-big ;;
138 mips-*-sysv*) obj_format=ecoff gas_target=mips-big ;;
139 mips-*-elf*) obj_format=elf
140 case "$endian" in
141 big) gas_target=mips-big ;;
142 *) gas_target=mips-lit ;;
143 esac
144 ;;
145 ppc-*-aix*) obj_format=coff bfd_gas=yes ;;
146 ppc-*-elf*) obj_format=elf bfd_gas=yes ;;
147 ppc-*-netware*) obj_format=elf emulation=ppcnw ;;
148 ppc-*-sysv4*) obj_format=elf bfd_gas=yes ;;
149
150 sh-*-coff) obj_format=coff ;;
151
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
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 ;;
159 sparc*-*-lynxos*) obj_format=coff bfd_gas=yes emulation=lynx ;;
160 sparc*-fujitsu-none) obj_format=aout bfd_gas=yes ;;
161 sparc*-*-elf | sparc*-*-solaris*)
162 obj_format=elf ;;
163
164 vax-*-bsd* | vax-*-ultrix*)
165 obj_format=aout ;;
166 vax-*-vms) obj_format=vms ;;
167
168 z8k-*-coff | z8k-*-sim)
169 obj_format=coff ;;
170
171 *-*-aout | *-*-scout)
172 obj_format=aout ;;
173 *-*-nindy*)
174 obj_format=bout ;;
175 *-*-bsd*)
176 obj_format=aout emulation=sun3 ;;
177 *-*-generic) obj_format=generic ;;
178 *-*-xray | *-*-hms) obj_format=coff ;;
179 *-*-sim) obj_format=coff ;;
180 *-*-elf | *-*-sysv4* | *-*-solaris*)
181 AC_MSG_WARN(GAS support for ELF format is incomplete)
182 obj_format=elf dev=yes ;;
183 *-*-vxworks) obj_format=aout ;;
184 *-*-netware) obj_format=elf ;;
185 esac
186
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.
190 case ${target_cpu} in
191 vax | tahoe ) atof=${target_cpu} ;;
192 *) atof=ieee ;;
193 esac
194
195 case "${obj_format}" in
196 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
197 esac
198
199 dnl
200 dnl Make sure the desired support files exist.
201 dnl
202
203 if test ! -r ${srcdir}/config/tc-${cpu_type}.c; then
204 AC_MSG_ERROR(GAS does not support target CPU ${cpu_type})
205 fi
206
207 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
208 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
209 fi
210
211 # and target makefile frag
212
213 target_frag=${srcdir}/config/${gas_target}.mt
214 AC_SUBST_FILE(target_frag)
215
216 case ${cpu_type}-${obj_format} in
217 # not yet
218 # i386-aout) bfd_gas=preferred ;;
219 *-elf) bfd_gas=yes ;;
220 *-ecoff) bfd_gas=yes ;;
221 *-som) bfd_gas=yes ;;
222 *) ;;
223 esac
224
225 case ${user_bfd_gas}-${bfd_gas} in
226 yes-yes | no-no)
227 # We didn't override user's choice.
228 ;;
229 no-yes)
230 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
231 ;;
232 no-preferred)
233 bfd_gas=no
234 ;;
235 *-preferred)
236 bfd_gas=yes
237 ;;
238 -*)
239 # User specified nothing.
240 ;;
241 esac
242
243 case ${bfd_gas}-${cpu_type}-${obj_format} in
244 yes-*-coff) need_bfd=yes ;;
245 no-*-coff) need_bfd=yes
246 AC_DEFINE(MANY_SEGMENTS) ;;
247 esac
248
249 reject_dev_configs=yes
250
251 case ${reject_dev_configs}-${dev} in
252 yes-yes) # Oops.
253 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
254 ;;
255 esac
256
257 dnl Looks like the AC_MAKE_LINKS string is taken literally and put into the
258 dnl config.status file. So the necessary variables also have to be
259 dnl exported.
260 AC_SUBST(cpu_type) AC_SUBST(obj_format) AC_SUBST(emulation) AC_SUBST(atof)
261 AC_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 \
263 config/obj-${obj_format}.h config/obj-${obj_format}.c \
264 config/te-${emulation}.h config/atof-${atof}.c)
265
266 case "${bfd_gas}" in
267 yes) AC_DEFINE(BFD_ASSEMBLER)
268 need_bfd=yes ;;
269 esac
270
271 case "${need_bfd}" in
272 yes) BFDLIB=../bfd/libbfd.a
273 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
274 ;;
275 esac
276 AC_SUBST(BFDLIB)
277 AC_SUBST(ALL_OBJ_DEPS)
278
279 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
280 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
281 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
282 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
283 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
284
285 case ${host} in
286 rs6000-*-*)
287 # The IBM compiler mis-compiles some expressions used in gas.
288 # This will tell gas to work around this lossage.
289 AC_DEFINE(IBM_COMPILER_SUX) ;;
290 i386-*-go32)
291 # Using fopen(..., "w") for a binary file breaks under DOS.
292 AC_DEFINE(WANT_FOPEN_BIN) ;;
293 esac
294
295 AC_PROG_CC
296 AC_PROG_INSTALL
297
298 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
299
300 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
301 # people who are not cross-compiling but are compiling cross-assemblers.
302 AC_MSG_CHECKING(whether compiling a cross-assembler)
303 if test "${host}" = "${target}"; then
304 cross_gas=yes
305 AC_DEFINE(CROSS_COMPILE)
306 else
307 cross_gas=no
308 fi
309 AC_MSG_RESULT($cross_gas)
310
311 dnl ansidecl.h will deal with const
312 dnl AC_CONST
313 AC_FUNC_ALLOCA
314 AC_C_INLINE
315
316 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
317 # enough, but on some of those systems, the assert macro relies on requoting
318 # working properly!
319 GAS_WORKING_ASSERT
320
321 # On some systems, the system header files may not declare malloc, realloc,
322 # and free. There are places where gas needs these functions to have been
323 # declared -- such as when taking their addresses.
324 gas_test_headers="
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 "
338 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
339 GAS_CHECK_DECL_NEEDED(free, f, int f, $gas_test_headers)
340
341 # Does errno.h declare errno, or do we have to add a separate declaration
342 # for it?
343 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
344 #ifdef HAVE_ERRNO_H
345 #include <errno.h>
346 #endif
347 ])
348
349 AC_CONFIG_SUBDIRS(testsuite)
350
351 GAS_GDBINIT
352
353 dnl This must come last.
354 dnl Apparently symlinks are checked for in the directory containing
355 dnl the last Makefile. Thus the order used here...
356 AC_OUTPUT(doc/Makefile Makefile)
This page took 0.04545 seconds and 5 git commands to generate.