Ensure softfloat and singlefloat take precedence in consistency checks
[deliverable/binutils-gdb.git] / gas / configure.ac
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
4b95cf5c 6dnl Copyright (C) 2012-2014 Free Software Foundation, Inc.
5bf135a7
NC
7dnl
8dnl This file is free software; you can redistribute it and/or modify
9dnl it under the terms of the GNU General Public License as published by
10dnl the Free Software Foundation; either version 3 of the License, or
11dnl (at your option) any later version.
12dnl
13dnl This program is distributed in the hope that it will be useful,
14dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
15dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16dnl GNU General Public License for more details.
17dnl
18dnl You should have received a copy of the GNU General Public License
19dnl along with this program; see the file COPYING3. If not see
20dnl <http://www.gnu.org/licenses/>.
252b5132
RH
21dnl
22dnl v2.5 needed for --bindir et al
da594c4a 23AC_PREREQ(2.59)
2e98a7bd
AM
24m4_include([../bfd/version.m4])
25AC_INIT([gas], BFD_VERSION)
da594c4a 26AC_CONFIG_SRCDIR(as.h)
252b5132 27
13b2be9c
DJ
28dnl Autoconf 2.57 will find the aux dir without this. However, unless
29dnl we specify this explicitly, automake-1.7 will assume that ylwrap is in
30dnl gas/ instead of gas/../.
31AC_CONFIG_AUX_DIR(..)
da594c4a 32AC_CANONICAL_TARGET
5d64ca4e 33AC_ISC_POSIX
252b5132 34
2e98a7bd 35AM_INIT_AUTOMAKE
252b5132 36
ce2cded5
L
37AC_PROG_CC
38AC_GNU_SOURCE
7357c5b6 39AC_USE_SYSTEM_EXTENSIONS
ce2cded5 40
da594c4a 41LT_INIT
b879806f 42ACX_LARGEFILE
252b5132 43
252b5132 44AC_ARG_ENABLE(targets,
241a6c40 45[ --enable-targets alternative target configurations besides the primary],
252b5132 46[case "${enableval}" in
da594c4a 47 yes | "") AC_MSG_ERROR(enable-targets option must specify target names or 'all')
252b5132
RH
48 ;;
49 no) enable_targets= ;;
50 *) enable_targets=$enableval ;;
51esac])dnl
c43a438d 52
c43a438d
AM
53ac_checking=yes
54if grep '^RELEASE=y' ${srcdir}/../bfd/Makefile.am >/dev/null 2>/dev/null ; then
55 ac_checking=
56fi
57AC_ARG_ENABLE(checking,
58[ --enable-checking enable run-time checks],
59[case "${enableval}" in
60 no|none) ac_checking= ;;
61 *) ac_checking=yes ;;
62esac])dnl
63if test x$ac_checking != x ; then
64 AC_DEFINE(ENABLE_CHECKING, 1, [Define if you want run-time sanity checks.])
65fi
66
252b5132
RH
67using_cgen=no
68
9e9b66a9 69AM_BINUTILS_WARNINGS
a2d91340 70
252b5132 71# Generate a header file
da594c4a 72AC_CONFIG_HEADERS(config.h:config.in)
252b5132 73
df7b86aa
NC
74# PR 14072
75AH_VERBATIM([00_CONFIG_H_CHECK],
76[/* Check that config.h is #included before system headers
77 (this works only for glibc, but that should be enough). */
d17dce55 78#if defined(__GLIBC__) && !defined(__FreeBSD_kernel__) && !defined(__CONFIG_H__)
df7b86aa
NC
79# error config.h must be #included before system headers
80#endif
81#define __CONFIG_H__ 1])
82
76a27922
ILT
83# If we are on a DOS filesystem, we must use gdb.ini rather than
84# .gdbinit.
76a27922 85case "${host}" in
591d4689 86 *-*-msdos* | *-*-go32* | *-*-mingw32* | *-*-windows*)
76a27922 87 GDBINIT="gdb.ini"
13b2be9c
DJ
88 AC_CONFIG_FILES(gdb.ini:gdbinit.in)
89 ;;
90 *)
91 GDBINIT=".gdbinit"
92 AC_CONFIG_FILES(.gdbinit:gdbinit.in)
76a27922
ILT
93 ;;
94esac
95AC_SUBST(GDBINIT)
96
44f2f9d2
AM
97#We need this for the host. BOUT header is in host order.
98AC_C_BIGENDIAN
99
252b5132
RH
100te_file=generic
101
102# Makefile target for installing gas in $(tooldir)/bin.
103install_tooldir=install-exec-tooldir
104
105canon_targets=""
15886821 106all_targets=no
252b5132
RH
107if test -n "$enable_targets" ; then
108 for t in `echo $enable_targets | sed 's/,/ /g'`; do
15886821
L
109 if test $t = "all"; then
110 all_targets=yes
111 continue
112 fi
6d83c84b 113 result=`$ac_config_sub $t 2>/dev/null`
252b5132
RH
114 if test -n "$result" ; then
115 canon_targets="$canon_targets $result"
116# else
117# # Permit "all", etc. We don't support it yet though.
118# canon_targets="$canon_targets $t"
119 fi
120 done
121 GAS_UNIQ(canon_targets)
122fi
123
124emulations=""
125
126for this_target in $target $canon_targets ; do
127
14ee9f48
ILT
128 targ=${this_target}
129 . ${srcdir}/configure.tgt
130
131 case ${target_cpu} in
132 crisv32)
133 AC_DEFINE_UNQUOTED(DEFAULT_CRIS_ARCH, $arch,
134 [Default CRIS architecture.])
135 ;;
252b5132
RH
136 esac
137
138 if test ${this_target} = $target ; then
139 target_cpu_type=${cpu_type}
140 elif test ${target_cpu_type} != ${cpu_type} ; then
141 continue
142 fi
143
14ee9f48 144 generic_target=${cpu_type}-${target_vendor}-${target_os}
252b5132 145 case ${generic_target} in
14ee9f48
ILT
146 i386-*-sco3.2v5*)
147 if test ${this_target} = $target; then
148 AC_DEFINE(SCO_ELF, 1, [Define if defaulting to ELF on SCO 5.])
149 fi
150 ;;
1fe1f39c 151
79500683
AM
152 i386-*-msdosdjgpp* \
153 | i386-*-go32* \
14ee9f48
ILT
154 | i386-go32-rtems*)
155 AC_DEFINE(STRICTCOFF, 1, [Using strict COFF?])
156 ;;
79500683 157
14ee9f48
ILT
158 i860-*-*)
159 AC_MSG_WARN(GAS support for ${generic_target} is preliminary and a work in progress)
160 ;;
79500683 161
7ba29e2a
NC
162 microblaze*)
163 ;;
164
e5231592
RS
165changequote(,)dnl
166 ppc-*-aix[5-9].*)
167changequote([,])dnl
14ee9f48 168 AC_DEFINE(AIX_WEAK_SUPPORT, 1,
f8fc3443 169 [Define if using AIX 5.2 value for C_WEAKEXT.])
14ee9f48 170 ;;
14ee9f48
ILT
171 ppc-*-solaris*)
172 if test ${this_target} = $target; then
173 AC_DEFINE(TARGET_SOLARIS_COMMENT, 1,
174 [Define if default target is PowerPC Solaris.])
175 fi
176 if test x${endian} = xbig; then
177 AC_MSG_ERROR(Solaris must be configured little endian)
178 fi
179 ;;
180
181 sh*-*-symbianelf*)
182 AC_DEFINE(TARGET_SYMBIAN, 1, [Define if target is Symbian OS.])
183 ;;
252b5132
RH
184 esac
185
186 if test ${this_target} = $target ; then
187 endian_def=
188 if test x${endian} = xbig; then
189 endian_def=1
190 elif test x${endian} = xlittle; then
191 endian_def=0
192 fi
193 if test x${endian_def} != x; then
194 AC_DEFINE_UNQUOTED(TARGET_BYTES_BIG_ENDIAN, $endian_def,
195 [Define as 1 if big endian.])
196 fi
197 fi
198
252b5132
RH
199# Other random stuff.
200
316f5878
RS
201 case ${cpu_type} in
202 mips)
203 # Set mips_cpu to the name of the default CPU.
204 case ${target_cpu} in
205 mips | mipsbe | mipseb | mipsle | mipsel | mips64 | mips64el)
206 mips_cpu=from-abi
207 ;;
208 mipsisa32 | mipsisa32el)
209 mips_cpu=mips32
210 ;;
af7ee8bf
CD
211 mipsisa32r2 | mipsisa32r2el)
212 mips_cpu=mips32r2
213 ;;
ae52f483
AB
214 mipsisa32r3 | mipsisa32r3el)
215 mips_cpu=mips32r3
216 ;;
217 mipsisa32r5 | mipsisa32r5el)
218 mips_cpu=mips32r5
219 ;;
316f5878
RS
220 mipsisa64 | mipsisa64el)
221 mips_cpu=mips64
222 ;;
5f74bc13
CD
223 mipsisa64r2 | mipsisa64r2el)
224 mips_cpu=mips64r2
225 ;;
ae52f483
AB
226 mipsisa64r3 | mipsisa64r3el)
227 mips_cpu=mips64r3
228 ;;
229 mipsisa64r5 | mipsisa64r5el)
230 mips_cpu=mips64r5
231 ;;
316f5878
RS
232 mipstx39 | mipstx39el)
233 mips_cpu=r3900
234 ;;
8f6847cb
RS
235 mips64vr | mips64vrel)
236 mips_cpu=vr4100
237 ;;
5f74bc13 238 mipsisa32r2* | mipsisa64r2*)
af7ee8bf
CD
239changequote(,)dnl
240 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..r2//' -e 's/el$//'`
241changequote([,])dnl
242 ;;
316f5878
RS
243 mips64* | mipsisa64* | mipsisa32*)
244changequote(,)dnl
245 mips_cpu=`echo $target_cpu | sed -e 's/[a-z]*..//' -e 's/el$//'`
e407c74b
NC
246changequote([,])dnl
247 ;;
248 mips*)
249changequote(,)dnl
250 mips_cpu=`echo $target_cpu | sed -e 's/^mips//' -e 's/el$//'`
316f5878
RS
251changequote([,])dnl
252 ;;
253 *)
da594c4a 254 AC_MSG_ERROR($target_cpu isn't a supported MIPS CPU name)
316f5878
RS
255 ;;
256 esac
257 # See whether it's appropriate to set E_MIPS_ABI_O32 for o32
258 # binaries. It's a GNU extension that some OSes don't understand.
316f5878
RS
259 case ${target} in
260 *-*-irix*)
261 use_e_mips_abi_o32=0
262 ;;
263 *)
264 use_e_mips_abi_o32=1
265 ;;
266 esac
267 # Decide whether to generate 32-bit or 64-bit code by default.
268 # Used to resolve -march=from-abi when an embedded ABI is selected.
269 case ${target} in
270 mips64*-*-* | mipsisa64*-*-*)
271 mips_default_64bit=1
272 ;;
273 *)
274 mips_default_64bit=0
275 ;;
276 esac
cac012d6
AO
277 # Decide which ABI to target by default.
278 case ${target} in
aeffff67 279 mips64*-linux* | mips-sgi-irix6* | mips64*-freebsd* | mips64*-kfreebsd*-gnu)
cac012d6
AO
280 mips_default_abi=N32_ABI
281 ;;
aeffff67 282 mips*-linux* | mips*-freebsd* | mips*-kfreebsd*-gnu)
cac012d6
AO
283 mips_default_abi=O32_ABI
284 ;;
26eebcf5
MK
285 mips64*-openbsd*)
286 mips_default_abi=N64_ABI
287 ;;
cac012d6
AO
288 *)
289 mips_default_abi=NO_ABI
290 ;;
291 esac
316f5878
RS
292 AC_DEFINE_UNQUOTED(MIPS_CPU_STRING_DEFAULT, "$mips_cpu",
293 [Default CPU for MIPS targets. ])
294 AC_DEFINE_UNQUOTED(USE_E_MIPS_ABI_O32, $use_e_mips_abi_o32,
295 [Allow use of E_MIPS_ABI_O32 on MIPS targets. ])
296 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_64BIT, $mips_default_64bit,
297 [Generate 64-bit code by default on MIPS targets. ])
cac012d6
AO
298 AC_DEFINE_UNQUOTED(MIPS_DEFAULT_ABI, $mips_default_abi,
299 [Choose a default ABI for MIPS targets. ])
316f5878
RS
300 ;;
301 esac
302
252b5132
RH
303 # Do we need the opcodes library?
304 case ${cpu_type} in
0b1cf022 305 vax | tic30)
252b5132
RH
306 ;;
307
308 *)
309 need_opcodes=yes
310
311 case "${enable_shared}" in
312 yes) shared_opcodes=true ;;
313 *opcodes*) shared_opcodes=true ;;
314 *) shared_opcodes=false ;;
315 esac
252b5132
RH
316 ;;
317 esac
318
319 # Any other special object files needed ?
320 case ${cpu_type} in
07c1b327
CM
321
322 bfin)
323 echo ${extra_objects} | grep -s "bfin-parse.o"
324 if test $? -ne 0 ; then
325 extra_objects="$extra_objects bfin-parse.o"
326 fi
327
df7b86aa 328 echo ${extra_objects} | grep -s "bfin-lex-wrapper.o"
07c1b327 329 if test $? -ne 0 ; then
df7b86aa 330 extra_objects="$extra_objects bfin-lex-wrapper.o"
07c1b327
CM
331 fi
332 ;;
333
73589c9d 334 epiphany | fr30 | ip2k | iq2000 | lm32 | m32r | or1k)
252b5132
RH
335 using_cgen=yes
336 ;;
337
49f58d10
JB
338 m32c)
339 using_cgen=yes
340 ;;
0ebb9a87
DB
341 frv)
342 using_cgen=yes
343 ;;
252b5132
RH
344 m68k)
345 case ${extra_objects} in
346 *m68k-parse.o*) ;;
347 *) extra_objects="$extra_objects m68k-parse.o" ;;
348 esac
349 ;;
350
280d71bf
DB
351 mep)
352 using_cgen=yes
353 ;;
354
252b5132 355 mips)
12e64c2c 356 echo ${extra_objects} | grep -s "itbl-parse.o"
252b5132
RH
357 if test $? -ne 0 ; then
358 extra_objects="$extra_objects itbl-parse.o"
359 fi
360
df7b86aa 361 echo ${extra_objects} | grep -s "itbl-lex-wrapper.o"
252b5132 362 if test $? -ne 0 ; then
df7b86aa 363 extra_objects="$extra_objects itbl-lex-wrapper.o"
252b5132
RH
364 fi
365
12e64c2c 366 echo ${extra_objects} | grep -s "itbl-ops.o"
252b5132
RH
367 if test $? -ne 0 ; then
368 extra_objects="$extra_objects itbl-ops.o"
369 fi
370 ;;
371
4970f871 372 mt)
047af9ef
AH
373 using_cgen=yes
374 ;;
375
35c08157
KLC
376 nds32)
377 # Decide BASELINE, REDUCED_REGS, FPU_DP_EXT, FPU_SP_EXT features
378 # based on arch_name.
379 AC_MSG_CHECKING(for default configuration of --with-arch)
380 if test "x${with_arch}" != x; then
381 case ${with_arch} in
382 v2j | v2s | v2f | v2 | v3m | v3j | v3s | v3f | v3 )
383 AC_DEFINE_UNQUOTED(NDS32_DEFAULT_ARCH_NAME, "$with_arch",
384 [Define value for nds32_arch_name])
385 ;;
386 *)
387 AC_MSG_ERROR(This kind of arch name does *NOT* exist!)
388 ;;
389 esac
390 fi
391 AC_MSG_RESULT($with_arch)
392
393 # Decide features one by one.
394 AC_MSG_CHECKING(for default configuration of --enable-dx-regs)
395 if test "x${enable_dx_regs}" == xyes; then
396 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 1,
397 [Define value for nds32_dx_regs])
398 else
399 AC_DEFINE(NDS32_DEFAULT_DX_REGS, 0,
400 [Define default value for nds32_dx_regs])
401 fi
402 AC_MSG_RESULT($enable_dx_regs)
403
404 AC_MSG_CHECKING(for default configuration of --enable-perf-ext)
405 if test "x${enable_perf_ext}" == xno; then
406 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 0,
407 [Define value for nds32_perf_ext])
408 else
409 AC_DEFINE(NDS32_DEFAULT_PERF_EXT, 1,
410 [Define default value for nds32_perf_ext])
411 fi
412 AC_MSG_RESULT($enable_perf_ext)
413
414 AC_MSG_CHECKING(for default configuration of --enable-perf-ext2)
415 if test "x${enable_perf_ext2}" == xno; then
416 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 0,
417 [Define value for nds32_perf_ext2])
418 else
419 AC_DEFINE(NDS32_DEFAULT_PERF_EXT2, 1,
420 [Define default value for nds32_perf_ext2])
421 fi
422 AC_MSG_RESULT($enable_perf_ext2)
423
424 AC_MSG_CHECKING(for default configuration of --enable-string-ext)
425 if test "x${enable_string_ext}" == xno; then
426 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 0,
427 [Define value for nds32_string_ext])
428 else
429 AC_DEFINE(NDS32_DEFAULT_STRING_EXT, 1,
430 [Define default value for nds32_string_ext])
431 fi
432 AC_MSG_RESULT($enable_string_ext)
433
434 AC_MSG_CHECKING(for default configuration of --enable-audio-ext)
435 if test "x${enable_audio_ext}" == xno; then
436 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 0,
437 [Define value for nds32_audio_ext])
438 else
439 AC_DEFINE(NDS32_DEFAULT_AUDIO_EXT, 1,
440 [Define default value for nds32_audio_ext])
441 fi
442 AC_MSG_RESULT($enable_audio_ext)
443 ;;
444
c1e4eef7 445 i386 | s390 | sparc)
252b5132
RH
446 if test $this_target = $target ; then
447 AC_DEFINE_UNQUOTED(DEFAULT_ARCH, "${arch}", [Default architecture.])
448 fi
449 ;;
93fbbb04 450
99c513f6
DD
451 rl78)
452 echo ${extra_objects} | grep -s "rl78-parse.o"
453 if test $? -ne 0 ; then
454 extra_objects="$extra_objects rl78-parse.o"
455 fi
456 ;;
457
c7927a3c
NC
458 rx)
459 echo ${extra_objects} | grep -s "rx-parse.o"
460 if test $? -ne 0 ; then
461 extra_objects="$extra_objects rx-parse.o"
462 fi
463 ;;
464
93fbbb04
GK
465 xstormy16)
466 using_cgen=yes
467 ;;
468
d70c5fc7
NC
469 xc16x)
470 using_cgen=yes
471 ;;
472
e0001a05
NC
473 xtensa)
474 echo ${extra_objects} | grep -s "xtensa-relax.o"
475 if test $? -ne 0 ; then
476 extra_objects="$extra_objects xtensa-relax.o"
477 fi
478 ;;
479
252b5132
RH
480 *)
481 ;;
482 esac
483
484 if test $using_cgen = yes ; then
485 case "x${extra_objects}" in
486 *cgen.o*) ;;
487 *) extra_objects="$extra_objects cgen.o" ;;
488 esac
489 fi
490
491# See if we really can support this configuration with the emulation code.
492
493 if test $this_target = $target ; then
252b5132
RH
494 obj_format=$fmt
495 te_file=$em
252b5132
RH
496 fi
497
b11d79f2
TG
498 case ${te_file} in
499 vms) extra_objects="$extra_objects te-vms.o" ;;
500 esac
58797674 501
252b5132
RH
502# From target name and format, produce a list of supported emulations.
503
504 case ${generic_target}-${fmt} in
e8044f35 505 mips-*-*-*) case "$endian" in
252b5132
RH
506 big) emulation="mipsbelf mipslelf mipself" ;;
507 *) emulation="mipslelf mipsbelf mipself" ;;
252b5132 508 esac ;;
119caedd
L
509 # i386-pc-pe-coff != i386-pc-coff.
510 i386-*-pe-coff) ;;
4c63da97
AM
511 # Uncommenting the next line will turn on support for i386 AOUT
512 # for the default linux configuration
513 # i386-*-linux*-elf) emulation="i386elf i386aout" ;;
514 #
515 i386-*-aout) emulation="i386aout" ;;
4ca72d38 516 i386-*-coff) emulation="i386coff" ;;
4c63da97 517 i386-*-elf) emulation="i386elf" ;;
3bcbcc3d 518
f9c19112
HPN
519 # Always all formats. The first stated emulation becomes the default.
520 cris-*-*aout*) emulation="crisaout criself" ;;
521 cris-*-*) emulation="criself crisaout" ;;
252b5132
RH
522 esac
523
524 emulations="$emulations $emulation"
525
526done
527
15886821
L
528# Turn on all targets if possible
529if test ${all_targets} = "yes"; then
530 case ${target_cpu_type} in
531 i386)
532 case ${obj_format} in
533 aout)
534 emulations="$emulations i386coff i386elf"
535 ;;
536 coff)
537 emulations="$emulations i386aout i386elf"
538 ;;
539 elf)
540 emulations="$emulations i386aout i386coff"
541 ;;
542 esac
543 ;;
99ad8390
NC
544 x86_64)
545 case ${obj_format} in
546 aout)
547 emulations="$emulations i386coff i386elf"
548 ;;
549 coff)
550 emulations="$emulations i386aout i386elf"
551 ;;
552 elf)
553 emulations="$emulations i386aout i386coff"
554 ;;
555 esac
556 ;;
15886821
L
557 esac
558fi
559
39871c07
AM
560# PE code has way too many macros tweaking behaviour
561case ${te_file} in
562 pe*) emulations="" ;;
563esac
564
252b5132
RH
565# Assign floating point type. Most processors with FP support
566# IEEE FP. On those that don't support FP at all, usually IEEE
567# is emulated.
568case ${target_cpu} in
12e64c2c 569 vax | pdp11 ) atof=vax ;;
252b5132
RH
570 *) atof=ieee ;;
571esac
572
573case "${obj_format}" in
574 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
575esac
576
577# Unfortunately the cpu in cpu-opc.h file isn't always $(TARGET_CPU).
578cgen_cpu_prefix=""
579if test $using_cgen = yes ; then
580 case ${target_cpu} in
73589c9d
CS
581 or1knd)
582 cgen_cpu_prefix=or1k ;;
252b5132
RH
583 *) cgen_cpu_prefix=${target_cpu} ;;
584 esac
585 AC_SUBST(cgen_cpu_prefix)
586 AC_DEFINE(USING_CGEN, 1, [Using cgen code?])
587fi
588
589dnl
590dnl Make sure the desired support files exist.
591dnl
592
593if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
594 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
595fi
596
597if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
598 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
599fi
600
252b5132
RH
601# Some COFF configurations want these random other flags set.
602case ${obj_format} in
603 coff)
604 case ${target_cpu_type} in
605 i386) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
606 m68k) AC_DEFINE(M68KCOFF, 1, [Using m68k COFF?]) ;;
607 m88k) AC_DEFINE(M88KCOFF, 1, [Using m88k COFF?]) ;;
99ad8390 608 x86_64) AC_DEFINE(I386COFF, 1, [Using i386 COFF?]) ;;
252b5132
RH
609 esac
610 ;;
611esac
612
613# Getting this done right is going to be a bitch. Each configuration specified
7be1c489
AM
614# with --enable-targets=... should be checked for environment, format, cpu
615# setting.
252b5132
RH
616#
617# For each configuration, the necessary object file support code must be linked
618# in. This might be only one, it might be up to four. The necessary emulation
619# code needs to be provided, too.
620#
621# And then there's "--enable-targets=all"....
622#
e8044f35 623# For now, just always do it for MIPS ELF configurations. Sigh.
252b5132
RH
624
625formats="${obj_format}"
626emfiles=""
627EMULATIONS=""
628GAS_UNIQ(emulations)
629for em in . $emulations ; do
630 case $em in
631 .) continue ;;
97238fbd 632 mipsbelf | mipslelf | mipself)
252b5132 633 fmt=elf file=mipself ;;
0aa5d426
HPN
634 *coff)
635 fmt=coff file=$em ;;
636 *aout)
637 fmt=aout file=$em ;;
638 *elf)
639 fmt=elf file=$em ;;
252b5132
RH
640 esac
641 formats="$formats $fmt"
642 emfiles="$emfiles e-$file.o"
643 EMULATIONS="$EMULATIONS &$em,"
644done
645GAS_UNIQ(formats)
646GAS_UNIQ(emfiles)
647if test `set . $formats ; shift ; echo $#` -gt 1 ; then
648 for fmt in $formats ; do
649 case $fmt in
650 aout) AC_DEFINE(OBJ_MAYBE_AOUT, 1, [a.out support?]) ;;
651 bout) AC_DEFINE(OBJ_MAYBE_BOUT, 1, [b.out support?]) ;;
652 coff) AC_DEFINE(OBJ_MAYBE_COFF, 1, [COFF support?]) ;;
653 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF, 1, [ECOFF support?]) ;;
654 elf) AC_DEFINE(OBJ_MAYBE_ELF, 1, [ELF support?]) ;;
655 generic) AC_DEFINE(OBJ_MAYBE_GENERIC, 1, [generic support?]) ;;
252b5132 656 som) AC_DEFINE(OBJ_MAYBE_SOM, 1, [SOM support?]) ;;
252b5132
RH
657 esac
658 extra_objects="$extra_objects obj-$fmt.o"
659 done
660 obj_format=multi
661fi
662if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
252b5132 663 DEFAULT_EMULATION=`set . $emulations ; echo $2`
e8044f35 664 # e-mipself has more than one emulation per file, e-i386* has just one at the
4ca72d38
AM
665 # moment. If only one emulation is specified, then don't define
666 # USE_EMULATIONS or include any of the e-files as they will only be bloat.
667 case "${obj_format}${emfiles}" in
e8044f35 668 multi* | *mipself*)
4ca72d38
AM
669 extra_objects="$extra_objects $emfiles"
670 AC_DEFINE(USE_EMULATIONS, 1, [Use emulation support?]) ;;
671 esac
252b5132
RH
672fi
673AC_SUBST(extra_objects)
674AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS, [Supported emulations.])
675AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION",
676 [Default emulation.])
677
252b5132
RH
678reject_dev_configs=yes
679
680case ${reject_dev_configs}-${dev} in
681 yes-yes) # Oops.
682 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
683 ;;
684esac
685
686AC_SUBST(target_cpu_type)
687AC_SUBST(obj_format)
688AC_SUBST(te_file)
689AC_SUBST(install_tooldir)
690AC_SUBST(atof)
691dnl AC_SUBST(emulation)
692
252b5132
RH
693# do we need the opcodes library?
694case "${need_opcodes}" in
695yes)
696 OPCODES_LIB=../opcodes/libopcodes.la
697 ;;
698esac
699
252b5132
RH
700AC_SUBST(OPCODES_LIB)
701
252b5132
RH
702AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}", [Target alias.])
703AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}", [Canonical target.])
704AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}", [Target CPU.])
705AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}", [Target vendor.])
706AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}", [Target OS.])
707
252b5132
RH
708AC_PROG_YACC
709AM_PROG_LEX
710
006ad0a1 711ALL_LINGUAS="fr tr es rw id ru fi ja"
20e95c23
DJ
712ZW_GNU_GETTEXT_SISTER_DIR
713AM_PO_SUBDIRS
252b5132
RH
714
715AM_MAINTAINER_MODE
d5fbea21 716AM_CONDITIONAL(GENINSRC_NEVER, false)
252b5132
RH
717AC_EXEEXT
718
58797674 719AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h errno.h sys/types.h limits.h locale.h time.h sys/stat.h)
208a4923 720ACX_HEADER_STRING
252b5132
RH
721
722# Put this here so that autoconf's "cross-compiling" message doesn't confuse
723# people who are not cross-compiling but are compiling cross-assemblers.
724AC_MSG_CHECKING(whether compiling a cross-assembler)
725if test "${host}" = "${target}"; then
726 cross_gas=no
727else
728 cross_gas=yes
729 AC_DEFINE(CROSS_COMPILE, 1, [Compiling cross-assembler?])
730fi
731AC_MSG_RESULT($cross_gas)
732
733dnl ansidecl.h will deal with const
da594c4a 734dnl AC_C_CONST
252b5132
RH
735AC_FUNC_ALLOCA
736AC_C_INLINE
737
738# VMS doesn't have unlink.
739AC_CHECK_FUNCS(unlink remove, break)
4b0296ce 740AC_CHECK_FUNCS(sbrk setlocale)
252b5132 741
44350750
NC
742AM_LC_MESSAGES
743
39bec121
TW
744# do we need the math library?
745case "${need_libm}" in
12e64c2c 746yes)
da594c4a 747 LT_LIB_M
39bec121
TW
748 AC_SUBST(LIBM)
749 ;;
750esac
751
252b5132
RH
752# Some non-ANSI preprocessors botch requoting inside strings. That's bad
753# enough, but on some of those systems, the assert macro relies on requoting
754# working properly!
755GAS_WORKING_ASSERT
756
757# On some systems, the system header files may not declare malloc, realloc,
758# and free. There are places where gas needs these functions to have been
759# declared -- such as when taking their addresses.
760gas_test_headers="
761#ifdef HAVE_MEMORY_H
762#include <memory.h>
763#endif
764#ifdef HAVE_STRING_H
765#include <string.h>
766#else
767#ifdef HAVE_STRINGS_H
768#include <strings.h>
769#endif
770#endif
771#ifdef HAVE_STDLIB_H
772#include <stdlib.h>
773#endif
774#ifdef HAVE_UNISTD_H
775#include <unistd.h>
776#endif
777"
252b5132
RH
778
779# Does errno.h declare errno, or do we have to add a separate declaration
780# for it?
781GAS_CHECK_DECL_NEEDED(errno, f, int f, [
782#ifdef HAVE_ERRNO_H
783#include <errno.h>
784#endif
785])
786
56f36663
NC
787AC_MSG_CHECKING(for a known getopt prototype in unistd.h)
788AC_CACHE_VAL(gas_cv_decl_getopt_unistd_h,
da594c4a 789[AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <unistd.h>], [extern int getopt (int, char *const*, const char *);])],
56f36663
NC
790gas_cv_decl_getopt_unistd_h=yes, gas_cv_decl_getopt_unistd_h=no)])
791AC_MSG_RESULT($gas_cv_decl_getopt_unistd_h)
792if test $gas_cv_decl_getopt_unistd_h = yes; then
793 AC_DEFINE([HAVE_DECL_GETOPT], 1,
794 [Is the prototype for getopt in <unistd.h> in the expected format?])
795fi
796
e8a38df5
AL
797GAS_CHECK_DECL_NEEDED(environ, f, char **f, $gas_test_headers)
798GAS_CHECK_DECL_NEEDED(ffs, f, int (*f)(int), $gas_test_headers)
799GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
800GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
801GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
802GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
803
4b0296ce 804AC_CHECK_DECLS([free, getenv, malloc, mempcpy, realloc, stpcpy, strstr, vsnprintf])
6d74f28b 805
c973bc5c
NC
806BFD_BINARY_FOPEN
807
0acf065b
CC
808# Link in zlib if we can. This allows us to write compressed debug sections.
809AM_ZLIB
810
b11d79f2
TG
811# Support for VMS timestamps via cross compile
812
813if test "$ac_cv_header_time_h" = yes; then
814 GAS_HAVE_TIME_TYPE_MEMBER(struct tm, tm_gmtoff)
815fi
816
817if test "$ac_cv_header_sys_stat_h" = yes; then
818 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_sec)
819 GAS_HAVE_SYS_STAT_TYPE_MEMBER(struct stat, st_mtim, tv_nsec)
820fi
821
822
31dd3154 823dnl Required for html, pdf, install-pdf and install-html targets.
108a6f8e
CD
824AC_SUBST(datarootdir)
825AC_SUBST(docdir)
826AC_SUBST(htmldir)
31dd3154 827AC_SUBST(pdfdir)
108a6f8e 828
252b5132
RH
829dnl This must come last.
830
831dnl We used to make symlinks to files in the source directory, but now
832dnl we just use the right name for .c files, and create .h files in
833dnl the build directory which include the right .h file. Make sure
834dnl the old symlinks don't exist, so that a reconfigure in an existing
835dnl directory behaves reasonably.
836
13b2be9c
DJ
837AC_CONFIG_FILES(Makefile doc/Makefile po/Makefile.in:po/Make-in)
838AC_CONFIG_COMMANDS([default],
252b5132
RH
839[rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
840 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
841 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
842 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
843 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
844 if test "x$cgen_cpu_prefix" != x ; then
845 echo '#include "opcodes/'"${cgen_cpu_prefix}"'-desc.h"' > cgen-desc.h
20e95c23 846 fi],
252b5132
RH
847[target_cpu_type=${target_cpu_type}
848 cgen_cpu_prefix=${cgen_cpu_prefix}
849 obj_format=${obj_format}
850 te_file=${te_file}])
13b2be9c
DJ
851
852AC_OUTPUT
This page took 0.920226 seconds and 4 git commands to generate.