1 dnl Process this file with autoconf to produce a configure script.
3 dnl And be careful when changing it! If you must add tests with square
4 dnl brackets, be sure changequote invocations surround it.
7 AC_PREREQ(2.5)dnl v2.5 needed for --bindir et al
11 AC_ARG_ENABLE(bfd-assembler,
12 [ --enable-bfd-assembler use BFD back end for writing object files],
13 [case "${enableval}" in
14 yes) need_bfd=yes user_bfd_gas=yes ;;
15 no) user_bfd_gas=no ;;
16 *) AC_MSG_ERROR(bad value ${enableval} given for bfd-assembler option) ;;
18 AC_ARG_ENABLE(targets,
19 [ targets alternative target configurations besides the primary],
20 [case "${enableval}" in
21 yes | "") AC_ERROR(enable-targets option must specify target names or 'all')
23 no) enable_targets= ;;
24 *) enable_targets=$enableval ;;
27 [ --enable-shared build shared BFD library],
28 [case "${enableval}" in
29 yes) shared=true shared_bfd=true shared_opcodes=true ;;
31 *bfd*opcodes*) shared=true shared_bfd=true shared_opcodes=true ;;
32 *opcodes*bfd*) shared=true shared_bfd=true shared_opcodes=true ;;
33 *bfd*) shared=true shared_bfd=true ;;
34 *opcodes*) shared=true shared_opcodes=true ;;
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]) ;;
45 # Generate a header file -- gets more post-processing by Makefile later.
46 AC_CONFIG_HEADER(conf)
48 dnl For recursion to work right, this must be an absolute pathname.
49 AC_CONFIG_AUX_DIR(`cd $srcdir;pwd`/..)
56 if test -n "$enable_targets" ; then
57 for t in `echo $enable_targets | sed 's/,/ /g'`; do
58 result=`${CONFIG_SHELL-/bin/sh} $ac_config_sub $t 2>/dev/null`
59 if test -n "$result" ; then
60 canon_targets="$canon_targets $result"
62 # # Permit "all", etc. We don't support it yet though.
63 # canon_targets="$canon_targets $t"
66 GAS_UNIQ(canon_targets)
71 for this_target in $target $canon_targets ; do
74 eval `echo $this_target | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/cpu=\1 vendor=\2 os=\3/'`
77 # check for architecture variants
79 armeb) cpu_type=arm endian=big ;;
80 arm*) cpu_type=arm endian=little ;;
81 thumb*) cpu_type=arm endian=little ;;
82 hppa*) cpu_type=hppa ;;
84 i[456]86) cpu_type=i386 ;;
85 m680[012346]0) cpu_type=m68k ;;
86 m68008) cpu_type=m68k ;;
87 m683??) cpu_type=m68k ;;
90 mips*el) cpu_type=mips endian=little ;;
91 mips*) cpu_type=mips endian=big ;;
92 powerpcle*) cpu_type=ppc endian=little ;;
93 powerpc*) cpu_type=ppc endian=big ;;
94 rs6000*) cpu_type=ppc ;;
95 sparc64) cpu_type=sparc want_sparc_v9=true ;;
96 sparc*) cpu_type=sparc ;;
100 if test ${this_target} = $target ; then
101 target_cpu_type=${cpu_type}
102 elif test ${target_cpu_type} != ${cpu_type} ; then
107 generic_target=${cpu_type}-$vendor-$os
112 # assign object format
113 case ${generic_target} in
114 a29k-*-coff) fmt=coff targ=ebmon29k ;;
115 a29k-amd-udi) fmt=coff targ=ebmon29k ;;
116 a29k-amd-ebmon) fmt=coff targ=ebmon29k ;;
117 a29k-nyu-sym1) fmt=coff targ=ebmon29k ;;
118 a29k-*-vxworks*) fmt=coff ;;
120 alpha-*-*vms*) fmt=evax ;;
121 alpha-*-netware*) fmt=ecoff ;;
122 alpha-*-openbsd*) fmt=ecoff ;;
123 alpha-*-osf*) fmt=ecoff ;;
124 alpha-*-linuxecoff*) fmt=ecoff ;;
125 alpha-*-linux*) fmt=elf em=linux ;;
128 arc-*-elf*) fmt=elf bfd_gas=yes ;;
131 arm-*-riscix*) fmt=aout targ=arm-lit em=riscix ;;
138 arm-*-coff | thumb-*-coff) fmt=coff ;;
139 arm-*-riscix*) fmt=aout ;;
140 arm-*-pe) fmt=coff targ=armcoff em=pe ;;
142 d10v-*-*) fmt=elf bfd_gas=yes ;;
143 # start-sanitize-d30v
144 d30v-*-*) fmt=elf bfd_gas=yes ;;
147 hppa-*-*elf*) fmt=elf em=hppa ;;
148 hppa-*-lites*) fmt=elf em=hppa ;;
149 hppa-*-osf*) fmt=som em=hppa ;;
150 hppa-*-rtems*) fmt=elf em=hppa ;;
151 hppa-*-hpux*) fmt=som em=hppa ;;
152 hppa-*-bsd*) fmt=som em=hppa ;;
153 hppa-*-hiux*) fmt=som em=hppa ;;
155 h8300-*-coff) fmt=coff ;;
157 i386-ibm-aix*) fmt=coff targ=i386coff
159 i386-sequent-bsd*) fmt=aout em=dynix bfd_gas=yes ;;
160 i386-*-bsd*) fmt=aout em=386bsd ;;
161 i386-*-netbsd0.8) fmt=aout em=386bsd ;;
162 i386-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes;;
163 i386-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes;;
164 i386-*-linux*aout* | i386-*-linuxoldld) fmt=aout em=linux ;;
165 i386-*-linux*coff*) fmt=coff em=linux
167 i386-*-linux*) fmt=elf em=linux ;;
168 i386-*-lynxos*) fmt=coff targ=i386coff
170 i386-*-sysv4* | i386-*-solaris* | i386-*-elf | i386-*-freebsdelf*)
172 i386-*-sco*elf*) fmt=elf targ=sco5 ;;
173 i386-*-coff | i386-*-sysv* | i386-*-sco* | i386-*-isc*)
174 fmt=coff targ=i386coff ;;
175 i386-*-vsta) fmt=aout ;;
176 i386-*-go32) fmt=coff targ=i386coff ;;
177 i386-*-rtems*) fmt=coff targ=i386coff ;;
178 i386-*-gnu*) fmt=elf ;;
180 fmt=aout em=mach bfd_gas=yes ;;
181 i386-*-msdos*) fmt=aout ;;
182 i386-*-moss*) fmt=elf ;;
183 i386-*-pe) fmt=coff targ=i386coff em=pe ;;
184 i386-*-cygwin32) fmt=coff targ=i386coff em=pe bfd_gas=yes ;;
185 i386-*-*nt) fmt=coff targ=i386coff em=pe ;;
186 i960-*-bout) fmt=bout ;;
187 i960-*-coff) fmt=coff em=ic960 targ=ic960coff ;;
188 i960-*-rtems*) fmt=coff em=ic960 targ=ic960coff ;;
189 i960-*-nindy*) fmt=bout ;;
190 i960-*-vxworks4*) fmt=bout ;;
191 i960-*-vxworks5.0) fmt=bout ;;
192 i960-*-vxworks5.*) fmt=coff em=ic960 targ=ic960coff ;;
193 i960-*-vxworks*) fmt=bout ;;
195 m32r-*-*) fmt=elf bfd_gas=yes ;;
197 m68k-*-vxworks* | m68k-ericsson-ose | m68k-*-sunos*)
199 m68k-motorola-sysv*) fmt=coff targ=m68kcoff em=delta ;;
200 m68k-bull-sysv3*) fmt=coff targ=m68kcoff em=dpx2 ;;
201 m68k-apollo-*) fmt=coff targ=apollo em=apollo ;;
202 m68k-*-sysv4*) # must be before -sysv*
204 m68k-*-elf*) fmt=elf ;;
205 m68k-*-coff | m68k-*-sysv* | m68k-*-rtems*)
206 fmt=coff targ=m68kcoff ;;
207 m68k-*-hpux*) fmt=hp300 em=hp300 ;;
208 m68k-*-linux*aout*) fmt=aout em=linux ;;
209 m68k-*-linux*) fmt=elf em=linux ;;
210 m68k-*-lynxos*) fmt=coff targ=m68kcoff
212 m68k-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
213 m68k-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
214 m68k-apple-aux*) fmt=coff targ=m68kcoff em=aux ;;
215 m68k-*-psos*) fmt=elf em=psos;;
217 m88k-motorola-sysv3*) fmt=coff targ=m88kcoff em=delt88 ;;
218 m88k-*-coff*) fmt=coff targ=m88kcoff ;;
220 # don't change em like *-*-bsd does
221 mips-dec-netbsd*) fmt=elf targ=mips-lit endian=little ;;
222 mips-dec-openbsd*) fmt=elf targ=mips-lit endian=little ;;
223 mips-dec-bsd*) fmt=aout targ=mips-lit ;;
224 mips-sony-bsd*) fmt=ecoff targ=mips-big ;;
225 mips-*-bsd*) AC_MSG_ERROR(Unknown vendor for mips-bsd configuration.) ;;
226 mips-*-ultrix*) fmt=ecoff targ=mips-lit endian=little ;;
227 mips-*-osf*) fmt=ecoff targ=mips-lit endian=little ;;
228 mips-*-ecoff*) fmt=ecoff
230 big) targ=mips-big ;;
234 mips-*-ecoff*) fmt=ecoff targ=mips-big ;;
235 mips-*-irix6*) fmt=elf targ=mips-big ;;
236 mips-*-irix5*) fmt=elf targ=mips-big ;;
237 mips-*-irix*) fmt=ecoff targ=mips-big ;;
238 mips-*-lnews*) fmt=ecoff targ=mips-lit em=lnews ;;
239 mips-*-riscos*) fmt=ecoff targ=mips-big ;;
240 mips-*-sysv*) fmt=ecoff targ=mips-big ;;
241 mips-*-elf* | mips-*-rtems* | mips-*-linux* | mips-*-gnu* | mips-*-openbsd*)
244 big) targ=mips-big ;;
248 mn10200-*-*) fmt=elf bfd_gas=yes ;;
249 mn10300-*-*) fmt=elf bfd_gas=yes ;;
250 ppc-*-pe | ppc-*-cygwin32 | ppc-*-winnt*)
257 ppc-*-aix*) fmt=coff ;;
258 ppc-*-beos*) fmt=coff ;;
259 ppc-*-*bsd* | ppc-*-elf* | ppc-*-eabi* | ppc-*-sysv4*)
266 ppc-*-linux*) fmt=elf
269 *) AC_MSG_ERROR(Linux must be configured big endian) ;;
272 ppc-*-solaris*) fmt=elf
274 big) AC_MSG_ERROR(Solaris must be configured little endian) ;;
285 ppc-*-macos* | ppc-*-mpw*)
287 ppc-*-netware*) fmt=elf em=ppcnw ;;
289 sh-*-elf*) fmt=elf ;;
290 sh-*-coff*) fmt=coff ;;
292 ns32k-pc532-mach* | ns32k-pc532-ux*) fmt=aout em=pc532mach ;;
293 ns32k-pc532-netbsd* | ns32k-pc532-lites*) fmt=aout em=nbsd532 ;;
294 ns32k-pc532-openbsd*) fmt=aout em=nbsd532 ;;
296 sparc-*-rtems*) fmt=aout ;;
297 sparc-*-sunos4*) fmt=aout em=sun3 ;;
298 sparc-*-aout | sparc*-*-vxworks*)
299 fmt=aout em=sparcaout ;;
300 sparc-*-coff) fmt=coff ;;
301 sparc-*-linux*aout*) fmt=aout em=linux ;;
302 sparc-*-linux*) fmt=elf em=linux ;;
303 sparc-*-lynxos*) fmt=coff em=lynx ;;
304 sparc-fujitsu-none) fmt=aout ;;
305 sparc-*-elf | sparc-*-sysv4* | sparc-*-solaris*)
307 sparc-*-netbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
308 sparc-*-openbsd*) fmt=aout em=nbsd bfd_gas=yes ;;
310 # start-sanitize-tic80
311 tic80-*-*) fmt=coff targ=tic80coff;;
313 # start-sanitize-v850
314 v850-*-*) fmt=elf bfd_gas=yes ;;
317 vax-*-bsd* | vax-*-ultrix*)
319 vax-*-vms) fmt=vms ;;
321 z8k-*-coff | z8k-*-sim)
326 *-*-aout | *-*-scout)
332 *-*-generic) fmt=generic ;;
333 *-*-xray | *-*-hms) fmt=coff ;;
335 *-*-elf | *-*-sysv4* | *-*-solaris*)
336 AC_MSG_WARN(GAS support for ${generic_target} is incomplete.)
338 *-*-vxworks) fmt=aout ;;
339 *-*-netware) fmt=elf ;;
342 case ${cpu_type}-${fmt} in
343 alpha-*) bfd_gas=yes ;;
344 arm-*) bfd_gas=yes ;;
346 # i386-aout) bfd_gas=preferred ;;
347 mips-*) bfd_gas=yes ;;
348 ns32k-*) bfd_gas=yes ;;
349 ppc-*) bfd_gas=yes ;;
350 sparc-*) bfd_gas=yes ;;
351 *-elf) bfd_gas=yes ;;
352 *-ecoff) bfd_gas=yes ;;
353 *-som) bfd_gas=yes ;;
357 # Other random stuff.
359 # do we need the opcodes library?
365 if test "${shared_opcodes}" = "true"; then
366 # A shared libopcodes must be linked against libbfd.
372 test -n "$want_sparc_v9" && AC_DEFINE(SPARC_V9)
374 case ${cpu}-${vendor}-${os} in
375 sparc64-*-elf*) AC_DEFINE(SPARC_ARCH64) ;;
380 case ${extra_objects} in
382 *) extra_objects="$extra_objects cgen.o"
383 AC_DEFINE(USING_CGEN)
389 case ${extra_objects} in
391 *) extra_objects="$extra_objects m68k-parse.o" ;;
396 echo ${extra_objects} | grep -s "itbl-parse.o"
397 if test $? -ne 0 ; then
398 extra_objects="$extra_objects itbl-parse.o"
401 echo ${extra_objects} | grep -s "itbl-lex.o"
402 if test $? -ne 0 ; then
403 extra_objects="$extra_objects itbl-lex.o"
406 echo ${extra_objects} | grep -s "itbl-ops.o"
407 if test $? -ne 0 ; then
408 extra_objects="$extra_objects itbl-ops.o"
416 # See if we really can support this configuration with the emulation code.
418 if test $this_target = $target ; then
419 primary_bfd_gas=$bfd_gas
424 if test $bfd_gas = no ; then
425 # Can't support other configurations this way.
428 elif test $bfd_gas = no ; then
429 # Can't support this configuration.
433 # From target name and format, produce a list of supported emulations.
435 case ${generic_target}-${fmt} in
436 mips-*-irix5*-*) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
437 mips-*-linux*-*) case "$endian" in
438 big) emulation="mipsbelf mipslelf mipself mipsbecoff mipslecoff mipsecoff" ;;
439 *) emulation="mipslelf mipsbelf mipself mipslecoff mipsbecoff mipsecoff" ;;
441 mips-*-lnews*-ecoff) ;;
442 mips-*-*-ecoff) case "$endian" in
443 big) emulation="mipsbecoff mipslecoff mipsecoff" ;;
444 *) emulation="mipslecoff mipsbecoff mipsecoff" ;;
446 mips-*-*-elf) case "$endian" in
447 big) emulation="mipsbelf mipslelf mipself" ;;
448 *) emulation="mipslelf mipsbelf mipself" ;;
449 # Uncommenting the next line will turn on support for i386 COFF
450 # in any i386 ELF configuration. This probably doesn't work
452 # i386-*-*-elf) emulation="i386coff i386elf" ;;
456 emulations="$emulations $emulation"
460 # Assign floating point type. Most processors with FP support
461 # IEEE FP. On those that don't support FP at all, usually IEEE
463 case ${target_cpu} in
464 vax | tahoe ) atof=${target_cpu} ;;
468 case "${obj_format}" in
469 "") AC_MSG_ERROR(GAS does not know what format to use for target ${target}) ;;
473 dnl Make sure the desired support files exist.
476 if test ! -r ${srcdir}/config/tc-${target_cpu_type}.c; then
477 AC_MSG_ERROR(GAS does not support target CPU ${target_cpu_type})
480 if test ! -r ${srcdir}/config/obj-${obj_format}.c; then
481 AC_MSG_ERROR(GAS does not have support for object file format ${obj_format})
484 # and target makefile frag
486 target_frag=${srcdir}/config/${gas_target}.mt
487 if test ! -r ${target_frag}; then
488 target_frag=/dev/null # ick! but subst_file can't be conditionalized
490 AC_SUBST_FILE(target_frag)
492 case ${user_bfd_gas}-${primary_bfd_gas} in
494 # We didn't override user's choice.
497 AC_MSG_WARN(Use of BFD is required for ${target}; overriding config options.)
509 # User specified nothing.
513 # Some COFF configurations want these random other flags set.
514 case ${obj_format} in
516 case ${target_cpu_type} in
517 i386) AC_DEFINE(I386COFF) ;;
518 m68k) AC_DEFINE(M68KCOFF) ;;
519 m88k) AC_DEFINE(M88KCOFF) ;;
524 # Getting this done right is going to be a bitch. Each configuration specified
525 # with --enable-targets=... should be checked for environment, format, cpu, and
528 # For each configuration, the necessary object file support code must be linked
529 # in. This might be only one, it might be up to four. The necessary emulation
530 # code needs to be provided, too.
532 # And then there's "--enable-targets=all"....
534 # For now, just always do it for MIPS ELF or ECOFF configurations. Sigh.
536 formats="${obj_format}"
540 for em in . $emulations ; do
544 fmt=elf file=mipself ;;
545 mipsbecoff | mipslecoff)
546 fmt=ecoff file=mipsecoff ;;
548 fmt=coff file=i386coff ;;
550 fmt=elf file=i386elf ;;
552 formats="$formats $fmt"
553 emfiles="$emfiles e-$file.o"
554 EMULATIONS="$EMULATIONS &$em,"
558 if test `set . $formats ; shift ; echo $#` -gt 1 ; then
559 for fmt in $formats ; do
561 aout) AC_DEFINE(OBJ_MAYBE_AOUT) ;;
562 bout) AC_DEFINE(OBJ_MAYBE_BOUT) ;;
563 coff) AC_DEFINE(OBJ_MAYBE_COFF) ;;
564 ecoff) AC_DEFINE(OBJ_MAYBE_ECOFF) ;;
565 elf) AC_DEFINE(OBJ_MAYBE_ELF) ;;
566 generic) AC_DEFINE(OBJ_MAYBE_GENERIC) ;;
567 hp300) AC_DEFINE(OBJ_MAYBE_HP300) ;;
568 ieee) AC_DEFINE(OBJ_MAYBE_IEEE) ;;
569 som) AC_DEFINE(OBJ_MAYBE_SOM) ;;
570 vms) AC_DEFINE(OBJ_MAYBE_VMS) ;;
572 extra_objects="$extra_objects obj-$fmt.o"
576 if test `set . $emfiles ; shift ; echo $#` -gt 0 ; then
578 extra_objects="$extra_objects $emfiles"
579 DEFAULT_EMULATION=`set . $emulations ; echo $2`
580 AC_DEFINE(USE_EMULATIONS)
582 AC_SUBST(extra_objects)
583 AC_DEFINE_UNQUOTED(EMULATIONS, $EMULATIONS)
584 AC_DEFINE_UNQUOTED(DEFAULT_EMULATION, "$DEFAULT_EMULATION")
586 case ${primary_bfd_gas}-${target_cpu_type}-${obj_format} in
587 yes-*-coff) need_bfd=yes ;;
588 no-*-coff) need_bfd=yes
589 AC_DEFINE(MANY_SEGMENTS) ;;
592 reject_dev_configs=yes
594 case ${reject_dev_configs}-${dev} in
596 AC_MSG_ERROR(GAS does not support the ${generic_target} configuration.)
600 AC_SUBST(target_cpu_type)
604 dnl AC_SUBST(emulation)
606 case "${primary_bfd_gas}" in
607 yes) AC_DEFINE(BFD_ASSEMBLER)
611 # do we need the opcodes library?
612 case "${need_opcodes}" in
614 OPCODES_DEP=../opcodes/libopcodes.a
615 OPCODES_LIB='-L../opcodes -lopcodes'
617 # We need to handle some special cases for shared libraries.
620 # On SunOS, we must link against the name we are going to install,
621 # not -lbfd, since SunOS does not support SONAME.
622 if test "${shared_opcodes}" = "true"; then
623 OPCODES_LIB='-L../opcodes -l`echo opcodes | sed '"'"'$(program_transform_name)'"'"'`'
627 # On Alpha OSF/1, the native linker searches all the -L
628 # directories for any LIB.so files, and only then searches for any
629 # LIB.a files. That means that if there is an installed
630 # libbfd.so, but this build is not done with --enable-shared, the
631 # link will wind up being against the install libbfd.so rather
632 # than the newly built libbfd. To avoid this, we must explicitly
633 # link against libbfd.a when --enable-shared is not used.
634 if test "${shared_opcodes}" != "true"; then
635 OPCODES_LIB='../opcodes/libopcodes.a'
642 case "${need_bfd}" in
644 BFDDEP=../bfd/libbfd.a
645 BFDLIB='-L../bfd -lbfd'
646 ALL_OBJ_DEPS="$ALL_OBJ_DEPS ../bfd/bfd.h"
648 # We need to handle some special cases for shared libraries
651 # On SunOS, we must link against the name we are going to install,
652 # not -lbfd, since SunOS does not support SONAME.
653 if test "${shared_bfd}" = "true"; then
654 BFDLIB='-L../bfd -l`echo bfd | sed '"'"'$(program_transform_name)'"'"'`'
658 # On Alpha OSF/1, the native linker searches all the -L
659 # directories for any LIB.so files, and only then searches for any
660 # LIB.a files. That means that if there is an installed
661 # libbfd.so, but this build is not done with --enable-shared, the
662 # link will wind up being against the install libbfd.so rather
663 # than the newly built libbfd. To avoid this, we must explicitly
664 # link against libbfd.a when --enable-shared is not used.
665 if test "${shared_bfd}" != "true"; then
666 BFDLIB='../bfd/libbfd.a'
671 if test "${commonbfdlib}" = "true"; then
672 # when a shared libbfd is built with --enable-commonbfdlib,
673 # all of libopcodes is available in libbfd.so
681 AC_SUBST(OPCODES_DEP)
682 AC_SUBST(OPCODES_LIB)
684 AC_SUBST(ALL_OBJ_DEPS)
686 AC_DEFINE_UNQUOTED(TARGET_ALIAS, "${target_alias}")
687 AC_DEFINE_UNQUOTED(TARGET_CANONICAL, "${target}")
688 AC_DEFINE_UNQUOTED(TARGET_CPU, "${target_cpu}")
689 AC_DEFINE_UNQUOTED(TARGET_VENDOR, "${target_vendor}")
690 AC_DEFINE_UNQUOTED(TARGET_OS, "${target_os}")
695 AC_CHECK_HEADERS(string.h stdlib.h memory.h strings.h unistd.h stdarg.h varargs.h errno.h sys/types.h)
697 # Put this here so that autoconf's "cross-compiling" message doesn't confuse
698 # people who are not cross-compiling but are compiling cross-assemblers.
699 AC_MSG_CHECKING(whether compiling a cross-assembler)
700 if test "${host}" = "${target}"; then
704 AC_DEFINE(CROSS_COMPILE)
706 AC_MSG_RESULT($cross_gas)
708 dnl ansidecl.h will deal with const
713 # VMS doesn't have unlink.
714 AC_CHECK_FUNCS(unlink remove, break)
716 # Some systems don't have sbrk().
719 # Some non-ANSI preprocessors botch requoting inside strings. That's bad
720 # enough, but on some of those systems, the assert macro relies on requoting
724 # On some systems, the system header files may not declare malloc, realloc,
725 # and free. There are places where gas needs these functions to have been
726 # declared -- such as when taking their addresses.
734 #ifdef HAVE_STRINGS_H
745 GAS_CHECK_DECL_NEEDED(strstr, f, char *(*f)(), $gas_test_headers)
746 GAS_CHECK_DECL_NEEDED(malloc, f, char *(*f)(), $gas_test_headers)
747 GAS_CHECK_DECL_NEEDED(free, f, void (*f)(), $gas_test_headers)
748 GAS_CHECK_DECL_NEEDED(sbrk, f, char *(*f)(), $gas_test_headers)
750 # Does errno.h declare errno, or do we have to add a separate declaration
752 GAS_CHECK_DECL_NEEDED(errno, f, int f, [
760 RPATH_ENVVAR=LD_LIBRARY_PATH
761 # If we have shared libraries, try to set rpath reasonably.
762 if test "${shared}" = "true"; then
765 HLDFLAGS='-Wl,+s,+b,$(libdir)'
766 RPATH_ENVVAR=SHLIB_PATH
768 *-*-irix5* | *-*-irix6*)
769 HLDFLAGS='-Wl,-rpath,$(libdir)'
774 HLDFLAGS='-Wl,-rpath,$(libdir)'
777 HLDFLAGS='-R $(libdir)'
780 HLDENV='if test -z "$${LD_RUN_PATH}"; then LD_RUN_PATH=$(libdir); else LD_RUN_PATH=$${LD_RUN_PATH}:$(libdir); fi; export LD_RUN_PATH;'
785 # On SunOS, if the linker supports the -rpath option, use it to
786 # prevent ../bfd and ../opcodes from being included in the run time
790 echo 'main () { }' > conftest.c
791 ${CC} -o conftest -Wl,-rpath= conftest.c >/dev/null 2>conftest.t
792 if grep 'unrecognized' conftest.t >/dev/null 2>&1; then
794 elif grep 'No such file' conftest.t >/dev/null 2>&1; then
796 elif grep 'do not mix' conftest.t >/dev/null 2>&1; then
798 elif test "${shared}" = "true"; then
799 HLDFLAGS='-Wl,-rpath=$(libdir)'
801 HLDFLAGS='-Wl,-rpath='
803 rm -f conftest.t conftest.c conftest
808 AC_SUBST(RPATH_ENVVAR)
810 dnl This must come last.
812 dnl We used to make symlinks to files in the source directory, but now
813 dnl we just use the right name for .c files, and create .h files in
814 dnl the build directory which include the right .h file. Make sure
815 dnl the old symlinks don't exist, so that a reconfigure in an existing
816 dnl directory behaves reasonably.
818 AC_OUTPUT(Makefile doc/Makefile .gdbinit:gdbinit.in,
819 [rm -f targ-cpu.c targ-cpu.h obj-format.h obj-format.c targ-env.h atof-targ.c itbl-cpu.h
820 echo '#include "tc-'"${target_cpu_type}"'.h"' > targ-cpu.h
821 echo '#include "obj-'"${obj_format}"'.h"' > obj-format.h
822 echo '#include "te-'"${te_file}"'.h"' > targ-env.h
823 echo '#include "itbl-'"${target_cpu_type}"'.h"' > itbl-cpu.h
824 case ${target_cpu_type} in
825 m32r) echo '#include "opcodes/'"${target_cpu_type}"'-opc.h"' > cgen-opc.h ;;
827 [target_cpu_type=${target_cpu_type}
828 obj_format=${obj_format}