]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - gas/configure.in
* configure.in: Add hppa-*-openbsd* target, change
[thirdparty/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
7 dnl v2.5 needed for --bindir et al
8 AC_PREREQ(2.13)
9 AC_INIT(as.h)
10
11 AC_CANONICAL_SYSTEM
12 AC_ISC_POSIX
13
14 changequote(,)dnl
15 BFD_VERSION=`sed -n -e 's/^.._INIT_AUTOMAKE.*,[ ]*\([^ ]*\)[ ]*).*/\1/p' < ${srcdir}/../bfd/configure.in`
16 changequote([,])dnl
17 AM_INIT_AUTOMAKE(gas, ${BFD_VERSION})
18
19 AM_PROG_LIBTOOL
20
21 user_bfd_gas=
22 AC_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) ;;
28 esac])dnl
29 AC_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 ;;
36 esac])dnl
37 AC_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]) ;;
43 esac])dnl
44
45 using_cgen=no
46
47 build_warnings="-W -Wall -Wstrict-prototypes -Wmissing-prototypes"
48 AC_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"`;;
58 esac
59 if test x"$silent" != x"yes" && test x"$build_warnings" != x""; then
60 echo "Setting warning flags = $build_warnings" 6>&1
61 fi])dnl
62 WARN_CFLAGS=""
63 if test "x${build_warnings}" != x -a "x$GCC" = xyes ; then
64 WARN_CFLAGS="${build_warnings}"
65 fi
66 AC_SUBST(WARN_CFLAGS)
67
68 # Generate a header file
69 AM_CONFIG_HEADER(config.h:config.in)
70
71 # If we are on a DOS filesystem, we must use gdb.ini rather than
72 # .gdbinit.
73 GDBINIT=".gdbinit"
74 case "${host}" in
75 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-cygwin* | *-*-windows*)
76 GDBINIT="gdb.ini"
77 ;;
78 esac
79 AC_SUBST(GDBINIT)
80
81 te_file=generic
82
83 # Makefile target for installing gas in $(tooldir)/bin.
84 install_tooldir=install-exec-tooldir
85
86 canon_targets=""
87 all_targets=no
88 if test -n "$enable_targets" ; then
89 for t in `echo $enable_targets | sed 's/,/ /g'`; do
90 if test $t = "all"; then
91 all_targets=yes
92 continue
93 fi
94 result=`$ac_config_sub $t 2>/dev/null`
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)
103 fi
104
105 emulations=""
106
107 for this_target in $target $canon_targets ; do
108
109 changequote(,)dnl
110 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
111 changequote([,])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 ;;
123 xscale*) cpu_type=arm endian=little ;;
124 strongarm*) cpu_type=arm endian=little ;;
125 thumb*) cpu_type=arm endian=little ;;
126 hppa*) cpu_type=hppa ;;
127 changequote(,)dnl
128 i[3456]86) cpu_type=i386 arch=i386;;
129 x86_64) cpu_type=i386 arch=x86_64;;
130 ia64) cpu_type=ia64 ;;
131 m6811|m6812|m68hc12) cpu_type=m68hc11 ;;
132 m680[012346]0) cpu_type=m68k ;;
133 changequote([,])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 ;;
140 or32*) cpu_type=or32 endian=big ;;
141 pjl*) cpu_type=pj endian=little ;;
142 pj*) cpu_type=pj endian=big ;;
143 powerpc*le*) cpu_type=ppc endian=little ;;
144 powerpc*) cpu_type=ppc endian=big ;;
145 rs6000*) cpu_type=ppc ;;
146 s390x*) cpu_type=s390 arch=s390x ;;
147 s390*) cpu_type=s390 arch=s390 ;;
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 ;;
152 sh*le) cpu_type=sh endian=little ;;
153 sh*) cpu_type=sh endian=big ;;
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 ;;
180 a29k-*-rtems*) fmt=coff ;;
181 a29k-*-vxworks*) fmt=coff ;;
182
183 alpha*-*-*vms*) fmt=evax ;;
184 alpha*-*-netware*) fmt=ecoff ;;
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 ;;
189 alpha*-*-openbsd*) fmt=elf em=obsd ;;
190
191 arc-*-elf*) fmt=elf bfd_gas=yes ;;
192
193 arm-*-aout) fmt=aout ;;
194 arm-*-coff | thumb-*-coff) fmt=coff ;;
195 arm-*-rtems | thumb-*-rtems) fmt=elf ;;
196 arm-*-elf | thumb-*-elf) fmt=elf ;;
197 arm*-*-conix*) fmt=elf ;;
198 arm-*-linux*aout*) fmt=aout em=linux ;;
199 arm*-*-linux-gnu* | arm*-*-uclinux*)
200 fmt=elf em=linux ;;
201 arm-*-netbsdelf*) fmt=elf em=nbsd ;;
202 arm-*-netbsd* | arm-*-openbsd*) fmt=aout em=nbsd ;;
203 arm-*-oabi | thumb-*-oabi) fmt=elf ;;
204 arm-epoc-pe | thumb-epoc-pe) fmt=coff em=epoc-pe ;;
205 arm-*-wince) fmt=coff em=wince-pe ;;
206 arm-*-pe | thumb-*-pe) fmt=coff em=pe ;;
207 arm-*-riscix*) fmt=aout em=riscix ;;
208 arm-*-vxworks) fmt=coff ;;
209
210 avr-*-*) fmt=elf bfd_gas=yes ;;
211
212 cris-*-*) fmt=multi bfd_gas=yes ;;
213
214 d10v-*-*) fmt=elf bfd_gas=yes ;;
215 d30v-*-*) fmt=elf bfd_gas=yes ;;
216 dlx-*-*) fmt=elf ;;
217
218
219 fr30-*-*) fmt=elf bfd_gas=yes ;;
220 frv-*-*) fmt=elf bfd_gas=yes ;;
221
222 hppa-*-linux-gnu*) case ${cpu} in
223 hppa*64*)
224 fmt=elf em=hppalinux64;;
225 hppa*)
226 fmt=elf em=linux;;
227 esac ;;
228 hppa-*-*elf*) fmt=elf em=hppa ;;
229 hppa-*-lites*) fmt=elf em=hppa ;;
230 hppa-*-netbsd*) fmt=elf em=nbsd ;;
231 hppa-*-openbsd*) fmt=elf em=hppa ;;
232 hppa-*-osf*) fmt=som em=hppa ;;
233 hppa-*-rtems*) fmt=elf em=hppa ;;
234 hppa-*-hpux11*) case ${cpu} in
235 hppa*64*)
236 fmt=elf em=hppa64 ;;
237 hppa*)
238 fmt=som em=hppa ;;
239 esac ;;
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
245 h8300-*-rtems*) fmt=coff ;;
246 h8300-*-coff) fmt=coff ;;
247 h8300-*-elf) fmt=elf ;;
248 h8500-*-rtems*) fmt=coff ;;
249 h8500-*-coff) fmt=coff ;;
250
251 i370-*-elf* | i370-*-linux*) fmt=elf ;;
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 ;;
258 i386-*-netbsdpe*) fmt=coff em=pe bfd_gas=yes ;;
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 ;;
269 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
270 i386-*-linux*aout* | i386-*-linux*oldld) fmt=aout em=linux ;;
271 i386-*-linux*coff*) fmt=coff em=linux ;;
272 i386-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
273 x86_64-*-linux-gnu*) fmt=elf em=linux bfd_gas=yes ;;
274 i386-*-lynxos*) fmt=coff em=lynx ;;
275 changequote(,)dnl
276 i386-*-sysv[45]* | i386-*-solaris* | i386-*-elf)
277 fmt=elf bfd_gas=yes ;;
278 i386-*-freebsdaout* | i386-*-freebsd[12].* | i386-*-freebsd[12])
279 fmt=aout em=386bsd ;;
280 changequote([,])dnl
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*)
292 fmt=coff em=go32 bfd_gas=yes
293 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
294 ;;
295 i386-*-rtemself*) fmt=elf ;;
296 i386-*-rtemscoff*) fmt=coff ;;
297 i386-*-rtems*) fmt=elf ;;
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 ;;
303 i386-*-pe) fmt=coff em=pe bfd_gas=yes ;;
304 i386-*-cygwin*) fmt=coff em=pe bfd_gas=yes ;;
305 i386-*-interix*) fmt=coff em=interix bfd_gas=yes ;;
306 i386-*-mingw32*) fmt=coff em=pe bfd_gas=yes ;;
307 i386-*-nto-qnx*) fmt=elf ;;
308 i386-*-*nt*) fmt=coff em=pe bfd_gas=yes ;;
309 i386-*-vxworks*) fmt=aout ;;
310 i386-*-chaos) fmt=elf ;;
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) ;;
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 ;;
322 i960-*-elf*) fmt=elf ;;
323
324 ia64-*-elf*) fmt=elf ;;
325 ia64-*-aix*) fmt=elf em=ia64aix ;;
326 ia64-*-linux-gnu*) fmt=elf em=linux ;;
327 ia64-*-hpux*) fmt=elf em=hpux ;;
328 ia64-*-netbsd*) fmt=elf em=nbsd ;;
329
330 m32r-*-*) fmt=elf bfd_gas=yes ;;
331
332 m68hc11-*-*|m6811-*-*|m68hc12-*-*|m6812-*-*)fmt=elf bfd_gas=yes ;;
333
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 ;;
342 m68k-*-coff | m68k-*-sysv* | m68k-*-rtemscoff*)
343 fmt=coff ;;
344 m68k-*-rtems*) fmt=elf ;;
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 ;;
350 m68k-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
351 m68k-*-netbsdaout* | m68k-*-netbsd*)
352 fmt=aout em=nbsd bfd_gas=yes ;;
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
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 ;;
371 mips-*-pe*) fmt=coff endian=little em=pe ;;
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 ;;
377 mips*-*-linux*) fmt=elf em=tmips ;;
378 mips-*-sysv4*MP* | mips-*-gnu*)
379 fmt=elf em=tmips ;;
380 mips-*-sysv*) fmt=ecoff ;;
381 mips-*-elf* | mips-*-rtems* | mips-*-netbsd* | mips-*-openbsd*)
382 fmt=elf ;;
383 mips-*-vxworks*) fmt=elf ;;
384 mmix-*-*) fmt=elf bfd_gas=yes ;;
385 mn10200-*-*) fmt=elf bfd_gas=yes ;;
386 mn10300-*-*) fmt=elf bfd_gas=yes ;;
387 openrisc-*-*) fmt=elf bfd_gas=yes ;;
388 or32-*-rtems*) fmt=coff ;;
389 or32-*-coff) fmt=coff ;;
390 or32-*-elf) fmt=elf ;;
391 pj*) fmt=elf ;;
392 ppc-*-pe | ppc-*-cygwin* | ppc-*-winnt*)
393 fmt=coff em=pe ;;
394 ppc-*-aix5*) fmt=coff em=aix5 ;;
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 ;;
418 ppc-*-vxworks*) fmt=elf ;;
419 ppc-*-windiss*) fmt=elf ;;
420
421 s390x-*-linux-gnu*) fmt=elf em=linux ;;
422 s390-*-linux-gnu*) fmt=elf em=linux ;;
423
424 sh*-*-linux*) fmt=elf em=linux
425 case ${cpu} in
426 sh*eb)
427 endian=big ;;
428 sh*)
429 endian=little ;;
430 esac ;;
431 sh5*-*-netbsd*) fmt=elf em=nbsd ;;
432 sh64*-*-netbsd*) fmt=elf em=nbsd ;;
433 sh*-*-netbsdelf*) fmt=elf em=nbsd ;;
434 sh-*-elf*) fmt=elf ;;
435 sh-*-coff*) fmt=coff ;;
436 sh-*-pe*) fmt=coff em=pe bfd_gas=yes endian=little ;;
437 sh-*-rtemself*) fmt=elf ;;
438 sh-*-rtems*) fmt=coff ;;
439
440 sh64-*-elf*) fmt=elf ;;
441 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
442 ns32k-*-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
443 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
444
445 sparc-*-rtemsaout*) fmt=aout ;;
446 sparc-*-rtemself*) fmt=elf ;;
447 sparc-*-rtems*) fmt=elf ;;
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 ;;
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 ;;
467 sparc-*-openbsd*) em=nbsd
468 case ${cpu} in
469 sparc) fmt=aout ;;
470 sparc64) fmt=elf ;;
471 esac
472 ;;
473
474 strongarm-*-coff) fmt=coff ;;
475 strongarm-*-elf) fmt=elf ;;
476 xscale-*-coff) fmt=coff ;;
477 xscale-*-elf) fmt=elf ;;
478
479 tic30-*-*aout*) fmt=aout bfd_gas=yes ;;
480 tic30-*-*coff*) fmt=coff bfd_gas=yes ;;
481 tic54x-*-* | c54x*-*-*)
482 fmt=coff bfd_gas=yes need_libm=yes;;
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
489 vax-*-netbsdelf*) fmt=elf em=nbsd bfd_gas=yes ;;
490 vax-*-netbsdaout* | vax-*-netbsd*)
491 fmt=aout em=nbsd ;;
492 vax-*-bsd* | vax-*-ultrix*)
493 fmt=aout ;;
494 vax-*-vms) fmt=vms ;;
495
496 w65-*-*) fmt=coff ;;
497
498 xstormy16-*-*) fmt=elf bfd_gas=yes ;;
499
500 z8k-*-coff | z8k-*-sim)
501 fmt=coff ;;
502
503 *-*-aout | *-*-scout)
504 fmt=aout ;;
505 *-*-freebsd*) fmt=elf em=freebsd bfd_gas=yes ;;
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 ;;
538 ia64*-*) bfd_gas=yes ;;
539 mips-*) bfd_gas=yes ;;
540 ns32k-*) bfd_gas=yes ;;
541 pdp11-*) bfd_gas=yes ;;
542 ppc-*) bfd_gas=yes ;;
543 sparc-*) bfd_gas=yes ;;
544 strongarm-*) bfd_gas=yes ;;
545 xscale-*) bfd_gas=yes ;;
546 *-elf) bfd_gas=yes ;;
547 *-ecoff) bfd_gas=yes ;;
548 *-som) bfd_gas=yes ;;
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
551 i386-coff) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
552 i386-aout) if test x${primary_bfd_gas} = xyes; then bfd_gas=yes; fi ;;
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
580 fr30 | m32r | openrisc)
581 using_cgen=yes
582 ;;
583
584 frv)
585 using_cgen=yes
586 ;;
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
611 i386 | s390 | sparc)
612 if test $this_target = $target ; then
613 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
614 fi
615 ;;
616
617 xstormy16)
618 using_cgen=yes
619 ;;
620
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" ;;
652 mips*-*-linux*-*) case "$endian" in
653 big) emulation="mipsbelf mipslelf mipself" ;;
654 *) emulation="mipslelf mipsbelf mipself" ;;
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" ;;
664 esac ;;
665 mips-*-sysv4*MP*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
666 # i386-pc-pe-coff != i386-pc-coff.
667 i386-*-pe-coff) ;;
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" ;;
673 i386-*-coff) emulation="i386coff" ;;
674 i386-*-elf) emulation="i386elf" ;;
675
676 # Always all formats. The first stated emulation becomes the default.
677 cris-*-*aout*) emulation="crisaout criself" ;;
678 cris-*-*) emulation="criself crisaout" ;;
679 esac
680
681 emulations="$emulations $emulation"
682
683 done
684
685 # Turn on all targets if possible
686 if 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
702 fi
703
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.
707 case ${target_cpu} in
708 vax | tahoe ) atof=${target_cpu} ;;
709 pdp11) atof=vax ;;
710 *) atof=ieee ;;
711 esac
712
713 case "${obj_format}" in
714 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
715 esac
716
717 # Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
718 cgen_cpu_prefix=""
719 if 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?])
725 fi
726
727 dnl
728 dnl Make sure the desired support files exist.
729 dnl
730
731 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
732 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
733 fi
734
735 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
736 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
737 fi
738
739 case ${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 ;;
758 esac
759
760 # Some COFF configurations want these random other flags set.
761 case ${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 ;;
769 esac
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
783 formats="${obj_format}"
784 emfiles=""
785 EMULATIONS=""
786 GAS_UNIQ(emulations)
787 for em in . $emulations ; do
788 case $em in
789 .) continue ;;
790 mipsbelf | mipslelf | mipself)
791 fmt=elf file=mipself ;;
792 mipsbecoff | mipslecoff | mipsecoff)
793 fmt=ecoff file=mipsecoff ;;
794 *coff)
795 fmt=coff file=$em ;;
796 *aout)
797 fmt=aout file=$em ;;
798 *elf)
799 fmt=elf file=$em ;;
800 esac
801 formats="$formats $fmt"
802 emfiles="$emfiles e-$file.o"
803 EMULATIONS="$EMULATIONS &$em,"
804 done
805 GAS_UNIQ(formats)
806 GAS_UNIQ(emfiles)
807 if 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
824 fi
825 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
826 DEFAULT_EMULATION=`set . $emulations ; echo $2`
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*)
832 extra_objects="$extra_objects $emfiles"
833 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
834 esac
835 fi
836 AC_SUBST(extra_objects)
837 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
838 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
839 [Default emulation.])
840
841 case ${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?]) ;;
845 esac
846
847 reject_dev_configs=yes
848
849 case ${reject_dev_configs}-${dev} in
850 yes-yes) # Oops.
851 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
852 ;;
853 esac
854
855 AC_SUBST(target_cpu_type)
856 AC_SUBST(obj_format)
857 AC_SUBST(te_file)
858 AC_SUBST(install_tooldir)
859 AC_SUBST(atof)
860 dnl AC_SUBST(emulation)
861
862 case "${primary_bfd_gas}" in
863 yes) AC_DEFINE(BFD_ASSEMBLER, 1, [Use BFD interface?])
864 need_bfd=yes ;;
865 esac
866
867 # do we need the opcodes library?
868 case "${need_opcodes}" in
869 yes)
870 OPCODES_LIB=../opcodes/libopcodes.la
871 ;;
872 esac
873
874 case "${need_bfd}" in
875 yes)
876 BFDLIB=../bfd/libbfd.la
877 ALL_OBJ_DEPS="$ALL_OBJ_DEPS"' ../bfd/bfd.h $(INCDIR)/symcat.h'
878 ;;
879 esac
880
881 AC_SUBST(BFDLIB)
882 AC_SUBST(OPCODES_LIB)
883
884 AC_SUBST(ALL_OBJ_DEPS)
885
886 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
887 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
888 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
889 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
890 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
891
892 AC_PROG_CC
893
894 AC_PROG_YACC
895 AM_PROG_LEX
896
897 ALL_LINGUAS="fr tr es"
898 CY_GNU_GETTEXT
899
900 AM_MAINTAINER_MODE
901 AC_EXEEXT
902
903 AC_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.
907 AC_MSG_CHECKING(whether compiling a cross-assembler)
908 if test "${host}" = "${target}"; then
909 cross_gas=no
910 else
911 cross_gas=yes
912 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
913 fi
914 AC_MSG_RESULT($cross_gas)
915
916 dnl ansidecl.h will deal with const
917 dnl AC_CONST
918 AC_FUNC_ALLOCA
919 AC_C_INLINE
920
921 # VMS doesn't have unlink.
922 AC_CHECK_FUNCS(unlink remove, break)
923
924 # Some systems don't have sbrk().
925 AC_CHECK_FUNCS(sbrk)
926
927 # do we need the math library?
928 case "${need_libm}" in
929 yes)
930 AC_CHECK_LIBM
931 AC_SUBST(LIBM)
932 ;;
933 esac
934
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!
938 GAS_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.
943 gas_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 "
961 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
962 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
963 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
964 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
965 GAS_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?
969 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
970 #ifdef HAVE_ERRNO_H
971 #include <errno.h>
972 #endif
973 ])
974
975 dnl This must come last.
976
977 dnl We used to make symlinks to files in the source directory, but now
978 dnl we just use the right name for .c files, and create .h files in
979 dnl the build directory which include the right .h file. Make sure
980 dnl the old symlinks don't exist, so that a reconfigure in an existing
981 dnl directory behaves reasonably.
982
983 AC_OUTPUT(Makefile doc/Makefile ${GDBINIT}:gdbinit.in po/Makefile.in:po/Make-in,
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}])