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