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