]> Git Repo - binutils.git/blob - gas/configure.in
Rename r16 files to rce, and fix some more .Sanitize typos.
[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   arm-*-riscix*)        obj_format=aout ;;
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=nbsd bfd_gas=yes;;
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   m68k-*-netbsd*)       obj_format=aout emulation=nbsd bfd_gas=yes ;;
123
124   m88k-*-coff*)         obj_format=coff gas_target=m88kcoff ;;
125
126   # don't change emulation like *-*-bsd does
127   mips-*-bsd*)          obj_format=aout gas_target=mips-lit ;;
128   mips-*-ultrix*)       obj_format=ecoff gas_target=mips-lit ;;
129   mips-*-ecoff*)        obj_format=ecoff 
130                         case "$endian" in
131                         big) gas_target=mips-big ;;
132                         *)   gas_target=mips-lit ;;
133                         esac
134                         ;;
135   mips-*-ecoff*)        obj_format=ecoff gas_target=mips-big ;;
136   mips-*-irix5*)        obj_format=elf gas_target=mips-big ;;
137   mips-*-irix*)         obj_format=ecoff gas_target=mips-big ;;
138   mips-*-riscos*)       obj_format=ecoff gas_target=mips-big ;;
139   mips-*-sysv*)         obj_format=ecoff gas_target=mips-big ;;
140   mips-*-elf*)          obj_format=elf 
141                         case "$endian" in
142                         big) gas_target=mips-big ;;
143                         *)   gas_target=mips-lit ;;
144                         esac
145                         ;;
146   ppc-*-aix*)           obj_format=coff ;;
147   ppc-*-elf*)           obj_format=elf ;;
148   ppc-*-netware*)       obj_format=elf emulation=ppcnw ;;
149   ppc-*-sysv4*)         obj_format=elf ;;
150
151   sh-*-coff)            obj_format=coff ;;
152
153 # start-sanitize-rce
154   rce-*-aout)           obj_format=aout ;;
155 # end-sanitize-rce
156
157   ns32k-pc532-mach*)    obj_format=aout emulation=pc532 ;;
158   ns32k-pc532-netbsd*)  obj_format=aout emulation=nbsd532 ;;
159
160   sparc-*-sunos4*)      obj_format=aout emulation=sun3 ;;
161   sparc-*-aout | sparc*-*-vxworks)
162                         obj_format=aout ;;
163   sparc-*-coff)         obj_format=coff ;;
164   sparc-*-lynxos*)      obj_format=coff emulation=lynx ;;
165   sparc-fujitsu-none)   obj_format=aout ;;
166   sparc-*-elf | sparc*-*-solaris*)
167                         obj_format=elf ;;
168   sparc-*-netbsd*)      obj_format=aout emulation=nbsd bfd_gas=yes ;;
169
170   vax-*-bsd* | vax-*-ultrix*)
171                         obj_format=aout ;;
172   vax-*-vms)            obj_format=vms ;;
173
174   z8k-*-coff | z8k-*-sim)
175                         obj_format=coff ;;
176
177   *-*-aout | *-*-scout)
178                         obj_format=aout ;;
179   *-*-nindy*)
180                         obj_format=bout ;;
181   *-*-bsd*)
182                         obj_format=aout emulation=sun3 ;;
183   *-*-generic)          obj_format=generic ;;
184   *-*-xray | *-*-hms)   obj_format=coff ;;
185   *-*-sim)              obj_format=coff ;;
186   *-*-elf | *-*-sysv4* | *-*-solaris*)
187                         AC_MSG_WARN(GAS support for ELF format is incomplete)
188                         obj_format=elf dev=yes ;;
189   *-*-vxworks)          obj_format=aout ;;
190   *-*-netware)          obj_format=elf ;;
191 esac
192
193 # Assign floating point type.  Most processors with FP support
194 # IEEE FP.  On those that don't support FP at all, usually IEEE
195 # is emulated.
196 case ${target_cpu} in
197   vax | tahoe ) atof=${target_cpu} ;;
198   *)                    atof=ieee ;;
199 esac
200
201 case "${obj_format}" in
202   "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
203 esac
204
205 dnl
206 dnl Make sure the desired support files exist.
207 dnl
208
209 if test ! -r ${srcdir}/config/tc-${cpu_type}.c; then
210   AC_MSG_ERROR(GAS does not support target CPU ${cpu_type})
211 fi
212
213 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
214   AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
215 fi
216
217 # and target makefile frag
218
219 target_frag=${srcdir}/config/${gas_target}.mt
220 if test ! -r ${target_frag}; then
221   target_frag=/dev/null # ick! but subst_file can't be conditionalized
222 fi
223 AC_SUBST_FILE(target_frag)
224
225 case ${cpu_type}-${obj_format} in
226   arm-*)        bfd_gas=yes ;;
227 # not yet
228 # i386-aout)    bfd_gas=preferred ;;
229   mips-*)       bfd_gas=yes ;;
230   ns32k-*)      bfd_gas=yes ;;
231   ppc-*)        bfd_gas=yes ;;
232   sparc-*)      bfd_gas=yes ;;
233   *-elf)        bfd_gas=yes ;;
234   *-ecoff)      bfd_gas=yes ;;
235   *-som)        bfd_gas=yes ;;
236   *)            ;;
237 esac
238
239 case ${user_bfd_gas}-${bfd_gas} in
240   yes-yes | no-no)
241     # We didn't override user's choice.
242     ;;
243   no-yes)
244     AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
245     ;;
246   no-preferred)
247     bfd_gas=no
248     ;;
249   *-preferred)
250     bfd_gas=yes
251     ;;
252   yes-*)
253     bfd_gas=yes
254     ;;
255   -*)
256     # User specified nothing.
257     ;;
258 esac
259
260 case ${bfd_gas}-${cpu_type}-${obj_format} in
261   yes-*-coff)   need_bfd=yes ;;
262   no-*-coff)    need_bfd=yes
263                 AC_DEFINE(MANY_SEGMENTS) ;;
264 esac
265
266 reject_dev_configs=yes
267
268 case ${reject_dev_configs}-${dev} in
269   yes-yes) # Oops.
270     AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
271     ;;
272 esac
273
274 AC_LINK_FILES(config/tc-${cpu_type}.c   config/tc-${cpu_type}.h \
275         config/obj-${obj_format}.h config/obj-${obj_format}.c \
276         config/te-${emulation}.h config/atof-${atof}.c,
277         targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c)
278
279 case "${bfd_gas}" in
280   yes)  AC_DEFINE(BFD_ASSEMBLER)
281         need_bfd=yes ;;
282 esac
283
284 case "${need_bfd}" in
285   yes)  BFDLIB=../bfd/libbfd.a
286         ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
287         ;;
288 esac
289 AC_SUBST(BFDLIB)
290 AC_SUBST(ALL_OBJ_DEPS)
291
292 AC_DEFINE_UNQUOTED(TARGET_ALIAS,        "${target_alias}")
293 AC_DEFINE_UNQUOTED(TARGET_CANONICAL,    "${target}")
294 AC_DEFINE_UNQUOTED(TARGET_CPU,          "${target_cpu}")
295 AC_DEFINE_UNQUOTED(TARGET_VENDOR,       "${target_vendor}")
296 AC_DEFINE_UNQUOTED(TARGET_OS,           "${target_os}")
297
298 AC_PROG_CC
299 AC_PROG_INSTALL
300
301 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
302
303 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
304 # people who are not cross-compiling but are compiling cross-assemblers.
305 AC_MSG_CHECKING(whether compiling a cross-assembler)
306 if test "${host}" = "${target}"; then
307   cross_gas=no
308 else
309   cross_gas=yes
310   AC_DEFINE(CROSS_COMPILE)
311 fi
312 AC_MSG_RESULT($cross_gas)
313
314 dnl ansidecl.h will deal with const
315 dnl AC_CONST
316 AC_FUNC_ALLOCA
317 AC_C_INLINE
318
319 # VMS doesn't have unlink.
320 AC_CHECK_FUNCS(unlink remove, break)
321
322 # Some non-ANSI preprocessors botch requoting inside strings.  That's bad
323 # enough, but on some of those systems, the assert macro relies on requoting
324 # working properly!
325 GAS_WORKING_ASSERT
326
327 # On some systems, the system header files may not declare malloc, realloc,
328 # and free.  There are places where gas needs these functions to have been
329 # declared -- such as when taking their addresses.
330 gas_test_headers="
331 #ifdef HAVE_MEMORY_H
332 #include <memory.h>
333 #endif
334 #ifdef HAVE_STRING_H
335 #include <string.h>
336 #endif
337 #ifdef HAVE_STDLIB_H
338 #include <stdlib.h>
339 #endif
340 #ifdef HAVE_UNISTD_H
341 #include <unistd.h>
342 #endif
343 "
344 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
345 GAS_CHECK_DECL_NEEDED(free, f, int f, $gas_test_headers)
346
347 # Does errno.h declare errno, or do we have to add a separate declaration
348 # for it?
349 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
350 #ifdef HAVE_ERRNO_H
351 #include <errno.h>
352 #endif
353 ])
354
355 AC_CONFIG_SUBDIRS(testsuite)
356
357 dnl This must come last.
358 AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in)
This page took 0.043993 seconds and 4 git commands to generate.