Remove redundant init of config.make_executable to true.
[deliverable/binutils-gdb.git] / gas / configure.in
CommitLineData
252b5132
RH
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
7dnl v2.5 needed for --bindir et al
8AC_PREREQ(2.13)
9AC_INIT(as.h)
10
11AC_CANONICAL_SYSTEM
5d64ca4e 12AC_ISC_POSIX
252b5132 13
18e03609 14AM_INIT_AUTOMAKE(gas, 2.10.91)
252b5132
RH
15
16AM_PROG_LIBTOOL
17
18user_bfd_gas=
19AC_ARG_ENABLE(bfd-assembler,
20[ --enable-bfd-assembler use BFD back end for writing object files],
21[case "${enableval}" in
22 yes) need_bfd=yes user_bfd_gas=yes ;;
23 no) user_bfd_gas=no ;;
24 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
25esac])dnl
26AC_ARG_ENABLE(targets,
27[ targets alternative target configurations besides the primary],
28[case "${enableval}" in
29 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
30 ;;
31 no) enable_targets= ;;
32 *) enable_targets=$enableval ;;
33esac])dnl
34AC_ARG_ENABLE(commonbfdlib,
35[ --enable-commonbfdlib build shared BFD/opcodes/libiberty library],
36[case "${enableval}" in
37 yes) commonbfdlib=true ;;
38 no) commonbfdlib=false ;;
39 *) AC_MSG_ERROR([bad value ${enableval} for BFD commonbfdlib option]) ;;
40esac])dnl
41
42using_cgen=no
43
a2d91340
AC
44build_warnings="-W -Wall"
45AC_ARG_ENABLE(build-warnings,
46[ --enable-build-warnings Enable build-time compiler warnings if gcc is used],
47[case "${enableval}" in
48 yes) ;;
49 no) build_warnings="-w";;
50 ,*) t=`echo "${enableval}" | sed -e "s/,/ /g"`
51 build_warnings="${build_warnings} ${t}";;
52 *,) t=`echo "${enableval}" | sed -e "s/,/ /g"`
53 build_warnings="${t} ${build_warnings}";;
54 *) build_warnings=`echo "${enableval}" | sed -e "s/,/ /g"`;;
55esac
56if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
57 echo "Setting warning flags = $build_warnings" 6>&1
58fi])dnl
59WARN_CFLAGS=""
60if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
61 WARN_CFLAGS="${build_warnings}"
62fi
63AC_SUBST(WARN_CFLAGS)
64
252b5132
RH
65# Generate a header file
66AM_CONFIG_HEADER(config.h:config.in)
67
76a27922
ILT
68# If we are on a DOS filesystem, we must use gdb.ini rather than
69# .gdbinit.
70GDBINIT=".gdbinit"
71case "${host}" in
72 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
73 GDBINIT="gdb.ini"
74 ;;
75esac
76AC_SUBST(GDBINIT)
77
252b5132
RH
78te_file=generic
79
80# Makefile target for installing gas in $(tooldir)/bin.
81install_tooldir=install-exec-tooldir
82
83canon_targets=""
15886821 84all_targets=no
252b5132
RH
85if test -n "$enable_targets" ; then
86 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
87 if test $t = "all"; then
88 all_targets=yes
89 continue
90 fi
6d83c84b 91 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
92 if test -n "$result" ; then
93 canon_targets="$canon_targets $result"
94# else
95# # Permit "all", etc. We don't support it yet though.
96# canon_targets="$canon_targets $t"
97 fi
98 done
99 GAS_UNIQ(canon_targets)
100fi
101
102emulations=""
103
104for this_target in $target $canon_targets ; do
105
106changequote(,)dnl
107 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
108changequote([,])dnl
109
110 # check for architecture variants
111 arch=
112 endian=
113 case ${cpu} in
114 alpha*) cpu_type=alpha ;;
115 armeb) cpu_type=arm endian=big ;;
116 arm*) cpu_type=arm endian=little ;;
117 armb*) cpu_type=arm endian=little ;;
118 armv*l) cpu_type=arm endian=little ;;
119 armv*b) cpu_type=arm endian=big ;;
120 strongarm*) cpu_type=arm endian=little ;;
121 thumb*) cpu_type=arm endian=little ;;
122 hppa*) cpu_type=hppa ;;
123changequote(,)dnl
124 i[456]86) cpu_type=i386 ;;
800eeca4 125 ia64) cpu_type=ia64 ;;
6f6ef0fa 126 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
252b5132
RH
127 m680[012346]0) cpu_type=m68k ;;
128changequote([,])dnl
129 m68008) cpu_type=m68k ;;
130 m683??) cpu_type=m68k ;;
131 m5200) cpu_type=m68k ;;
132 m8*) cpu_type=m88k ;;
133 mips*el) cpu_type=mips endian=little ;;
134 mips*) cpu_type=mips endian=big ;;
041dd5a9
ILT
135 pjl*) cpu_type=pj endian=little ;;
136 pj*) cpu_type=pj endian=big ;;
252b5132
RH
137 powerpcle*) cpu_type=ppc endian=little ;;
138 powerpc*) cpu_type=ppc endian=big ;;
139 rs6000*) cpu_type=ppc ;;
140 sparclite*) cpu_type=sparc arch=sparclite ;;
141 sparclet*) cpu_type=sparc arch=sparclet ;;
142 sparc64*) cpu_type=sparc arch=v9-64 ;;
143 sparc86x*) cpu_type=sparc arch=sparc86x ;;
144 sparc*) cpu_type=sparc arch=sparclite ;; # ??? See tc-sparc.c.
145 v850*) cpu_type=v850 ;;
146 *) cpu_type=${cpu} ;;
147 esac
148
149 if test ${this_target} = $target ; then
150 target_cpu_type=${cpu_type}
151 elif test ${target_cpu_type} != ${cpu_type} ; then
152 continue
153 fi
154
155 generic_target=${cpu_type}-$vendor-$os
156 dev=no
157 bfd_gas=no
158 em=generic
159
160 # assign object format
161 case ${generic_target} in
162 a29k-*-coff) fmt=coff ;;
163 a29k-amd-udi) fmt=coff ;;
164 a29k-amd-ebmon) fmt=coff ;;
165 a29k-nyu-sym1) fmt=coff ;;
166 a29k-*-vxworks*) fmt=coff ;;
167
168 alpha*-*-*vms*) fmt=evax ;;
169 alpha*-*-netware*) fmt=ecoff ;;
170 alpha*-*-openbsd*) fmt=ecoff ;;
171 alpha*-*-osf*) fmt=ecoff ;;
172 alpha*-*-linuxecoff*) fmt=ecoff ;;
173 alpha*-*-linux-gnu*) fmt=elf em=linux ;;
174 alpha*-*-netbsd*) fmt=elf em=nbsd ;;
175
176 arc-*-elf*) fmt=elf bfd_gas=yes ;;
177
178 arm-*-aout) fmt=aout ;;
179 arm-*-coff | thumb-*-coff) fmt=coff ;;
180 arm-*-elf | thumb-*-elf) fmt=elf ;;
0decc840 181 arm*-*-conix*) fmt=elf ;;
252b5132 182 arm-*-linux*aout*) fmt=aout em=linux ;;
222f8079
PB
183 arm*-*-linux-gnu* | arm*-*-uclinux*)
184 fmt=elf em=linux ;;
c1e73230 185 arm-*-netbsd*) fmt=aout em=nbsd ;;
252b5132
RH
186 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
187 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
c1e73230 188 arm-*-wince) fmt=coff em=wince-pe ;;
252b5132
RH
189 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
190 arm-*-riscix*) fmt=aout em=riscix ;;
191
adde6300
AM
192 avr-*-*) fmt=elf bfd_gas=yes ;;
193
3bcbcc3d
HPN
194 cris-*-*) fmt=multi bfd_gas=yes ;;
195
252b5132
RH
196 d10v-*-*) fmt=elf bfd_gas=yes ;;
197 d30v-*-*) fmt=elf bfd_gas=yes ;;
198
199
200 fr30-*-*) fmt=elf bfd_gas=yes ;;
201
ad1079af
AM
202 hppa-*-linux-gnu*) case ${cpu} in
203 hppa*64*)
204 fmt=elf em=hppalinux64;;
205 hppa*)
206 fmt=elf em=linux;;
207 esac ;;
252b5132
RH
208 hppa-*-*elf*) fmt=elf em=hppa ;;
209 hppa-*-lites*) fmt=elf em=hppa ;;
210 hppa-*-osf*) fmt=som em=hppa ;;
211 hppa-*-rtems*) fmt=elf em=hppa ;;
ad1079af 212 hppa-*-hpux11*) case ${cpu} in
c9e10a08 213 hppa*64*)
ad1079af 214 fmt=elf em=hppa64 ;;
c9e10a08 215 hppa*)
ad1079af
AM
216 fmt=som em=hppa ;;
217 esac ;;
252b5132
RH
218 hppa-*-hpux*) fmt=som em=hppa ;;
219 hppa-*-mpeix*) fmt=som em=hppa ;;
220 hppa-*-bsd*) fmt=som em=hppa ;;
221 hppa-*-hiux*) fmt=som em=hppa ;;
222
223 h8300-*-coff) fmt=coff ;;
224
5b93d8bb 225 i370-*-elf* | i370-*-linux*) fmt=elf ;;
252b5132
RH
226 i386-ibm-aix*) fmt=coff em=i386aix ;;
227 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
228 i386-*-beospe*) fmt=coff em=pe bfd_gas=yes ;;
229 i386-*-beoself* | i386-*-beos*) fmt=elf bfd_gas=yes ;;
230 i386-*-bsd*) fmt=aout em=386bsd ;;
231 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
232 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
233 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
234 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
235 i386-*-linux*coff*) fmt=coff em=linux ;;
236 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
237 i386-*-lynxos*) fmt=coff em=lynx ;;
f98fd99f 238changequote(,)dnl
fc997f4b
AM
239 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
240 fmt=elf bfd_gas=yes ;;
008960a5
ILT
241 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
242 fmt=aout em=386bsd ;;
f98fd99f 243changequote([,])dnl
008960a5 244 i386-*-freebsd*) fmt=elf bfd_gas=yes ;;
252b5132
RH
245 i386-*-coff | i386-*-sysv* | i386-*-sco3.2v5*coff | i386-*-isc*)
246 fmt=coff ;;
247 i386-*-sco3.2v5*) fmt=elf
248 if test ${this_target} = $target; then
249 AC_DEFINE(SCO_ELF, 1,
250 [Define if defaulting to ELF on SCO 5.])
251 fi
252 ;;
253 i386-*-sco3.2*) fmt=coff ;;
254 i386-*-vsta) fmt=aout ;;
255 i386-*-msdosdjgpp* | i386-*-go32* | i386-go32-rtems*)
56385375
L
256 fmt=coff em=go32
257 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
258 ;;
53f3de98 259 i386-*-rtemself*) fmt=elf ;;
252b5132
RH
260 i386-*-rtems*) fmt=coff ;;
261 i386-*-gnu*) fmt=elf ;;
262 i386-*-mach*)
263 fmt=aout em=mach bfd_gas=yes ;;
264 i386-*-msdos*) fmt=aout ;;
265 i386-*-moss*) fmt=elf ;;
c1e73230 266 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
252b5132 267 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
9750fcc5 268 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
252b5132 269 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
c1e73230 270 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
29fe79d3 271 i386-*-vxworks*) fmt=aout ;;
59ff2774 272 i386-*-chaos) fmt=elf ;;
aa8c34c3
JE
273 i860-stardent-sysv4* | i860-stardent-elf*)
274 fmt=elf bfd_gas=yes endian=little
275 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress) ;;
252b5132
RH
276 i960-*-bout) fmt=bout ;;
277 i960-*-coff) fmt=coff em=ic960 ;;
278 i960-*-rtems*) fmt=coff em=ic960 ;;
279 i960-*-nindy*) fmt=bout ;;
280 i960-*-vxworks4*) fmt=bout ;;
281 i960-*-vxworks5.0) fmt=bout ;;
282 i960-*-vxworks5.*) fmt=coff em=ic960 ;;
283 i960-*-vxworks*) fmt=bout ;;
bedf545c 284 i960-*-elf*) fmt=elf ;;
252b5132 285
800eeca4
JW
286 ia64-*-elf*) fmt=elf ;;
287 ia64-*-linux-gnu*) fmt=elf em=linux ;;
44f5c83a 288 ia64-*-hpux*) fmt=elf em=hpux ;;
800eeca4 289
252b5132
RH
290 m32r-*-*) fmt=elf bfd_gas=yes ;;
291
60bcf0fa
NC
292 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
293
252b5132
RH
294 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
295 fmt=aout em=sun3 ;;
296 m68k-motorola-sysv*) fmt=coff em=delta ;;
297 m68k-bull-sysv3*) fmt=coff em=dpx2 ;;
298 m68k-apollo-*) fmt=coff em=apollo ;;
299 m68k-*-sysv4*) # must be before -sysv*
300 fmt=elf em=svr4 ;;
301 m68k-*-elf*) fmt=elf ;;
302 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
303 fmt=coff ;;
304 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
305 m68k-*-linux*aout*) fmt=aout em=linux ;;
306 m68k-*-linux-gnu*) fmt=elf em=linux ;;
307 m68k-*-gnu*) fmt=elf ;;
308 m68k-*-lynxos*) fmt=coff em=lynx ;;
309 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
310 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
311 m68k-apple-aux*) fmt=coff em=aux ;;
312 m68k-*-psos*) fmt=elf em=psos;;
313
314 m88k-motorola-sysv3*) fmt=coff em=delt88 ;;
315 m88k-*-coff*) fmt=coff ;;
316
317 mcore-*-elf) fmt=elf bfd_gas=yes ;;
318 mcore-*-pe) fmt=coff em=pe bfd_gas=yes ;;
319
320 # don't change em like *-*-bsd does
321 mips-dec-netbsd*) fmt=elf endian=little ;;
322 mips-dec-openbsd*) fmt=elf endian=little ;;
323 mips-dec-bsd*) fmt=aout endian=little ;;
324 mips-sony-bsd*) fmt=ecoff ;;
325 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
326 mips-*-ultrix*) fmt=ecoff endian=little ;;
327 mips-*-osf*) fmt=ecoff endian=little ;;
328 mips-*-ecoff*) fmt=ecoff ;;
329 mips-*-ecoff*) fmt=ecoff ;;
056350c6 330 mips-*-pe*) fmt=coff endian=little em=pe ;;
252b5132
RH
331 mips-*-irix6*) fmt=elf ;;
332 mips-*-irix5*) fmt=elf ;;
333 mips-*-irix*) fmt=ecoff ;;
334 mips-*-lnews*) fmt=ecoff em=lnews ;;
335 mips-*-riscos*) fmt=ecoff ;;
906fac54 336 mips-*-sysv4*MP*) fmt=elf em=tmips ;;
252b5132
RH
337 mips-*-sysv*) fmt=ecoff ;;
338 mips-*-elf* | mips-*-rtems* | mips-*-linux-gnu* | mips-*-gnu* | mips-*-openbsd*)
339 fmt=elf ;;
340 mips-*-vxworks*) fmt=elf
341 AC_DEFINE(MIPS_STABS_ELF, 1,
342 [Use ELF stabs for MIPS, not ECOFF stabs])
343 ;;
344 mn10200-*-*) fmt=elf bfd_gas=yes ;;
345 mn10300-*-*) fmt=elf bfd_gas=yes ;;
041dd5a9 346 pj*) fmt=elf ;;
252b5132
RH
347 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
348 fmt=coff em=pe ;;
349 ppc-*-aix*) fmt=coff ;;
350 ppc-*-beos*) fmt=coff ;;
351 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
352 fmt=elf ;;
353 ppc-*-linux-gnu*) fmt=elf
354 case "$endian" in
355 big) ;;
356 *) AC_MSG_ERROR(GNU/Linux must be configured big endian) ;;
357 esac
358 ;;
359 ppc-*-solaris*) fmt=elf
360 if test ${this_target} = $target; then
361 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
362 [Define if default target is PowerPC Solaris.])
363 fi
364 if test x${endian} = xbig; then
365 AC_MSG_ERROR(Solaris must be configured little endian)
366 fi
367 ;;
368 ppc-*-rtems*) fmt=elf ;;
369 ppc-*-macos* | ppc-*-mpw*)
370 fmt=coff em=macos ;;
371 ppc-*-netware*) fmt=elf em=ppcnw ;;
e4a86f6f 372 ppc-*-vxworks*) fmt=elf ;;
252b5132 373
d07ed2cd 374 sh-*-linux*) fmt=elf em=linux ;;
252b5132
RH
375 sh-*-elf*) fmt=elf ;;
376 sh-*-coff*) fmt=coff ;;
056350c6 377 sh-*-pe*) fmt=coff em=pe bfd_gas=yes;;
53f3de98 378 sh-*-rtemself*) fmt=elf ;;
252b5132
RH
379 sh-*-rtems*) fmt=coff ;;
380
381 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
382 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
383 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
384
385 sparc-*-rtems*) fmt=aout ;;
386 sparc-*-sunos4*) fmt=aout em=sun3 ;;
387 sparc-*-aout | sparc*-*-vxworks*)
388 fmt=aout em=sparcaout ;;
389 sparc-*-coff) fmt=coff ;;
390 sparc-*-linux*aout*) fmt=aout em=linux ;;
391 sparc-*-linux-gnu*) fmt=elf em=linux ;;
392 sparc-*-lynxos*) fmt=coff em=lynx ;;
393 sparc-fujitsu-none) fmt=aout ;;
394 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
395 fmt=elf ;;
98e5953c
JL
396 sparc-*-netbsd*) em=nbsd bfd_gas=yes
397 case ${cpu} in
398 sparc) case ${os} in
399 *elf*) fmt=elf ;;
400 *) fmt=aout ;;
401 esac ;;
402 sparc64) fmt=elf ;;
403 esac
404 ;;
252b5132
RH
405 sparc-*-openbsd*) fmt=aout em=nbsd ;;
406
407 strongarm-*-coff) fmt=coff ;;
408 strongarm-*-elf) fmt=elf ;;
409
410 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
411 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
39bec121
TW
412 tic54x-*-* | c54x*-*-*)
413 fmt=coff bfd_gas=yes need_libm=yes;;
252b5132
RH
414 tic80-*-*) fmt=coff ;;
415
416 v850-*-*) fmt=elf bfd_gas=yes ;;
417 v850e-*-*) fmt=elf bfd_gas=yes ;;
418 v850ea-*-*) fmt=elf bfd_gas=yes ;;
419
420 vax-*-bsd* | vax-*-ultrix*)
421 fmt=aout ;;
422 vax-*-vms) fmt=vms ;;
423
424
425 z8k-*-coff | z8k-*-sim)
426 fmt=coff ;;
427
428 w65-*-*) fmt=coff ;;
429
430 *-*-aout | *-*-scout)
431 fmt=aout ;;
432 *-*-nindy*)
433 fmt=bout ;;
434 *-*-bsd*)
435 fmt=aout em=sun3 ;;
436 *-*-generic) fmt=generic ;;
437 *-*-xray | *-*-hms) fmt=coff ;;
438 *-*-sim) fmt=coff ;;
439 *-*-elf | *-*-sysv4* | *-*-solaris*)
440 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
441 fmt=elf dev=yes ;;
442 *-*-vxworks) fmt=aout ;;
443 *-*-netware) fmt=elf ;;
444 esac
445
446 if test ${this_target} = $target ; then
447 endian_def=
448 if test x${endian} = xbig; then
449 endian_def=1
450 elif test x${endian} = xlittle; then
451 endian_def=0
452 fi
453 if test x${endian_def} != x; then
454 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
455 [Define as 1 if big endian.])
456 fi
457 fi
458
459 case ${cpu_type}-${fmt} in
460 alpha*-*) bfd_gas=yes ;;
461 arm-*) bfd_gas=yes ;;
462 # not yet
463 # i386-aout) bfd_gas=preferred ;;
800eeca4 464 ia64*-*) bfd_gas=yes ;;
252b5132
RH
465 mips-*) bfd_gas=yes ;;
466 ns32k-*) bfd_gas=yes ;;
467 ppc-*) bfd_gas=yes ;;
468 sparc-*) bfd_gas=yes ;;
469 strongarm-*) bfd_gas=yes ;;
470 *-elf) bfd_gas=yes ;;
471 *-ecoff) bfd_gas=yes ;;
472 *-som) bfd_gas=yes ;;
4c63da97
AM
473 #enable bfd for coff and aout to allow testing if a bfd target is
474 #the primary target, but not for coff or aout as the primary target
4ca72d38 475 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
4c63da97 476 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
252b5132
RH
477 *) ;;
478 esac
479
480# Other random stuff.
481
482 # Do we need the opcodes library?
483 case ${cpu_type} in
484 vax | i386 | tic30)
485 ;;
486
487 *)
488 need_opcodes=yes
489
490 case "${enable_shared}" in
491 yes) shared_opcodes=true ;;
492 *opcodes*) shared_opcodes=true ;;
493 *) shared_opcodes=false ;;
494 esac
495 if test "${shared_opcodes}" = "true"; then
496 # A shared libopcodes must be linked against libbfd.
497 need_bfd=yes
498 fi
499 ;;
500 esac
501
502 # Any other special object files needed ?
503 case ${cpu_type} in
504 fr30 | m32r)
505 using_cgen=yes
506 ;;
507
508 m68k)
509 case ${extra_objects} in
510 *m68k-parse.o*) ;;
511 *) extra_objects="$extra_objects m68k-parse.o" ;;
512 esac
513 ;;
514
515 mips)
516 echo ${extra_objects} | grep -s "itbl-parse.o"
517 if test $? -ne 0 ; then
518 extra_objects="$extra_objects itbl-parse.o"
519 fi
520
521 echo ${extra_objects} | grep -s "itbl-lex.o"
522 if test $? -ne 0 ; then
523 extra_objects="$extra_objects itbl-lex.o"
524 fi
525
526 echo ${extra_objects} | grep -s "itbl-ops.o"
527 if test $? -ne 0 ; then
528 extra_objects="$extra_objects itbl-ops.o"
529 fi
530 ;;
531
532 sparc)
533 if test $this_target = $target ; then
534 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
535 fi
536 ;;
537 *)
538 ;;
539 esac
540
541 if test $using_cgen = yes ; then
542 case "x${extra_objects}" in
543 *cgen.o*) ;;
544 *) extra_objects="$extra_objects cgen.o" ;;
545 esac
546 fi
547
548# See if we really can support this configuration with the emulation code.
549
550 if test $this_target = $target ; then
551 primary_bfd_gas=$bfd_gas
552 obj_format=$fmt
553 te_file=$em
554
555 if test $bfd_gas = no ; then
556 # Can't support other configurations this way.
557 break
558 fi
559 elif test $bfd_gas = no ; then
560 # Can't support this configuration.
561 break
562 fi
563
564# From target name and format, produce a list of supported emulations.
565
566 case ${generic_target}-${fmt} in
567 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
568 mips-*-linux-gnu*-*) case "$endian" in
569 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
570 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
571 esac ;;
572 mips-*-lnews*-ecoff) ;;
573 mips-*-*-ecoff) case "$endian" in
574 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
575 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
576 esac ;;
577 mips-*-*-elf) case "$endian" in
578 big) emulation="mipsbelf mipslelf mipself" ;;
579 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 580 esac ;;
906fac54 581 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
119caedd
L
582 # i386-pc-pe-coff != i386-pc-coff.
583 i386-*-pe-coff) ;;
4c63da97
AM
584 # Uncommenting the next line will turn on support for i386 AOUT
585 # for the default linux configuration
586 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
587 #
588 i386-*-aout) emulation="i386aout" ;;
4ca72d38 589 i386-*-coff) emulation="i386coff" ;;
4c63da97 590 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d
HPN
591
592 # Always all formats. Having a.out first makes it the default.
593 cris-*-*) emulation="crisaout criself" ;;
252b5132
RH
594 esac
595
596 emulations="$emulations $emulation"
597
598done
599
15886821
L
600# Turn on all targets if possible
601if test ${all_targets} = "yes"; then
602 case ${target_cpu_type} in
603 i386)
604 case ${obj_format} in
605 aout)
606 emulations="$emulations i386coff i386elf"
607 ;;
608 coff)
609 emulations="$emulations i386aout i386elf"
610 ;;
611 elf)
612 emulations="$emulations i386aout i386coff"
613 ;;
614 esac
615 ;;
616 esac
617fi
618
252b5132
RH
619# Assign floating point type. Most processors with FP support
620# IEEE FP. On those that don't support FP at all, usually IEEE
621# is emulated.
622case ${target_cpu} in
623 vax | tahoe ) atof=${target_cpu} ;;
624 *) atof=ieee ;;
625esac
626
627case "${obj_format}" in
628 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
629esac
630
631# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
632cgen_cpu_prefix=""
633if test $using_cgen = yes ; then
634 case ${target_cpu} in
635 *) cgen_cpu_prefix=${target_cpu} ;;
636 esac
637 AC_SUBST(cgen_cpu_prefix)
638 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
639fi
640
641dnl
642dnl Make sure the desired support files exist.
643dnl
644
645if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
646 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
647fi
648
649if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
650 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
651fi
652
653case ${user_bfd_gas}-${primary_bfd_gas} in
654 yes-yes | no-no)
655 # We didn't override user's choice.
656 ;;
657 no-yes)
658 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
659 ;;
660 no-preferred)
661 primary_bfd_gas=no
662 ;;
663 *-preferred)
664 primary_bfd_gas=yes
665 ;;
666 yes-*)
667 primary_bfd_gas=yes
668 ;;
669 -*)
670 # User specified nothing.
671 ;;
672esac
673
674# Some COFF configurations want these random other flags set.
675case ${obj_format} in
676 coff)
677 case ${target_cpu_type} in
678 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
679 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
680 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
681 esac
682 ;;
683esac
684
685# Getting this done right is going to be a bitch. Each configuration specified
686# with --enable-targets=... should be checked for environment, format, cpu, and
687# bfd_gas setting.
688#
689# For each configuration, the necessary object file support code must be linked
690# in. This might be only one, it might be up to four. The necessary emulation
691# code needs to be provided, too.
692#
693# And then there's "--enable-targets=all"....
694#
695# For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
696
697formats="${obj_format}"
698emfiles=""
699EMULATIONS=""
700GAS_UNIQ(emulations)
701for em in . $emulations ; do
702 case $em in
703 .) continue ;;
704 mipsbelf | mipslelf)
705 fmt=elf file=mipself ;;
706 mipsbecoff | mipslecoff)
707 fmt=ecoff file=mipsecoff ;;
0aa5d426
HPN
708 *coff)
709 fmt=coff file=$em ;;
710 *aout)
711 fmt=aout file=$em ;;
712 *elf)
713 fmt=elf file=$em ;;
252b5132
RH
714 esac
715 formats="$formats $fmt"
716 emfiles="$emfiles e-$file.o"
717 EMULATIONS="$EMULATIONS &$em,"
718done
719GAS_UNIQ(formats)
720GAS_UNIQ(emfiles)
721if test `set . $formats ; shift ; echo $#` -gt 1 ; then
722 for fmt in $formats ; do
723 case $fmt in
724 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
725 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
726 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
727 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
728 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
729 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
730 hp300) AC_DEFINE(OBJ_MAYBE_HP300, 1, [HP300 support?]) ;;
731 ieee) AC_DEFINE(OBJ_MAYBE_IEEE, 1, [IEEE support?]) ;;
732 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
733 vms) AC_DEFINE(OBJ_MAYBE_VMS, 1, [VMS support?]) ;;
734 esac
735 extra_objects="$extra_objects obj-$fmt.o"
736 done
737 obj_format=multi
738fi
739if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 740 DEFAULT_EMULATION=`set . $emulations ; echo $2`
4ca72d38
AM
741 # e-mips* has more than one emulation per file, e-i386* has just one at the
742 # moment. If only one emulation is specified, then don't define
743 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
744 case "${obj_format}${emfiles}" in
745 multi* | *mips*)
4ca72d38
AM
746 extra_objects="$extra_objects $emfiles"
747 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
748 esac
252b5132
RH
749fi
750AC_SUBST(extra_objects)
751AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
752AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
753 [Default emulation.])
754
755case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
756 yes-*-coff) need_bfd=yes ;;
757 no-*-coff) need_bfd=yes
758 AC_DEFINE(MANY_SEGMENTS, 1, [old COFF support?]) ;;
759esac
760
761reject_dev_configs=yes
762
763case ${reject_dev_configs}-${dev} in
764 yes-yes) # Oops.
765 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
766 ;;
767esac
768
769AC_SUBST(target_cpu_type)
770AC_SUBST(obj_format)
771AC_SUBST(te_file)
772AC_SUBST(install_tooldir)
773AC_SUBST(atof)
774dnl AC_SUBST(emulation)
775
776case "${primary_bfd_gas}" in
777 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
778 need_bfd=yes ;;
779esac
780
781# do we need the opcodes library?
782case "${need_opcodes}" in
783yes)
784 OPCODES_LIB=../opcodes/libopcodes.la
785 ;;
786esac
787
788case "${need_bfd}" in
789yes)
790 BFDLIB=../bfd/libbfd.la
791 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
792 ;;
793esac
794
795AC_SUBST(BFDLIB)
796AC_SUBST(OPCODES_LIB)
797
798AC_SUBST(ALL_OBJ_DEPS)
799
800AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
801AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
802AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
803AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
804AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
805
806AC_PROG_CC
807
808AC_PROG_YACC
809AM_PROG_LEX
810
811ALL_LINGUAS=
812CY_GNU_GETTEXT
813
814AM_MAINTAINER_MODE
815AC_EXEEXT
816
817AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
818
819# Put this here so that autoconf's "cross-compiling" message doesn't confuse
820# people who are not cross-compiling but are compiling cross-assemblers.
821AC_MSG_CHECKING(whether compiling a cross-assembler)
822if test "${host}" = "${target}"; then
823 cross_gas=no
824else
825 cross_gas=yes
826 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
827fi
828AC_MSG_RESULT($cross_gas)
829
830dnl ansidecl.h will deal with const
831dnl AC_CONST
832AC_FUNC_ALLOCA
833AC_C_INLINE
834
835# VMS doesn't have unlink.
836AC_CHECK_FUNCS(unlink remove, break)
837
838# Some systems don't have sbrk().
839AC_CHECK_FUNCS(sbrk)
840
39bec121
TW
841# do we need the math library?
842case "${need_libm}" in
843yes)
844 AC_CHECK_LIBM
845 AC_SUBST(LIBM)
846 ;;
847esac
848
252b5132
RH
849# Some non-ANSI preprocessors botch requoting inside strings. That's bad
850# enough, but on some of those systems, the assert macro relies on requoting
851# working properly!
852GAS_WORKING_ASSERT
853
854# On some systems, the system header files may not declare malloc, realloc,
855# and free. There are places where gas needs these functions to have been
856# declared -- such as when taking their addresses.
857gas_test_headers="
858#ifdef HAVE_MEMORY_H
859#include <memory.h>
860#endif
861#ifdef HAVE_STRING_H
862#include <string.h>
863#else
864#ifdef HAVE_STRINGS_H
865#include <strings.h>
866#endif
867#endif
868#ifdef HAVE_STDLIB_H
869#include <stdlib.h>
870#endif
871#ifdef HAVE_UNISTD_H
872#include <unistd.h>
873#endif
874"
875GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
876GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
877GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
878GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
879GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
880
881# Does errno.h declare errno, or do we have to add a separate declaration
882# for it?
883GAS_CHECK_DECL_NEEDED(errno, f, int f, [
884#ifdef HAVE_ERRNO_H
885#include <errno.h>
886#endif
887])
888
889dnl This must come last.
890
891dnl We used to make symlinks to files in the source directory, but now
892dnl we just use the right name for .c files, and create .h files in
893dnl the build directory which include the right .h file. Make sure
894dnl the old symlinks don't exist, so that a reconfigure in an existing
895dnl directory behaves reasonably.
896
76a27922 897AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
252b5132
RH
898[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
899 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
900 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
901 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
902 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
903 if test "x$cgen_cpu_prefix" != x ; then
904 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
905 fi
906
907 sed -e '/POTFILES =/r po/POTFILES' po/Makefile.in > po/Makefile],
908[target_cpu_type=${target_cpu_type}
909 cgen_cpu_prefix=${cgen_cpu_prefix}
910 obj_format=${obj_format}
911 te_file=${te_file}])
This page took 0.096774 seconds and 4 git commands to generate.