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