aclocal.m4 revision 33965
1dnl GAS_CHECK_DECL_NEEDED(name, typedefname, typedef, headers)
2AC_DEFUN(GAS_CHECK_DECL_NEEDED,[
3AC_MSG_CHECKING(whether declaration is required for $1)
4AC_CACHE_VAL(gas_cv_decl_needed_$1,
5AC_TRY_LINK([$4],
6[
7typedef $3;
8$2 x;
9x = ($2) $1;
10], gas_cv_decl_needed_$1=no, gas_cv_decl_needed_$1=yes))dnl
11AC_MSG_RESULT($gas_cv_decl_needed_$1)
12test $gas_cv_decl_needed_$1 = no || {
13 ifelse(index($1,[$]),-1,
14    [AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]))],
15    [gas_decl_name_upcase=`echo $1 | tr '[a-z]' '[A-Z]'`
16     AC_DEFINE_UNQUOTED(NEED_DECLARATION_$gas_decl_name_upcase)])
17}
18])dnl
19dnl
20dnl Some non-ANSI preprocessors botch requoting inside strings.  That's bad
21dnl enough, but on some of those systems, the assert macro relies on requoting
22dnl working properly!
23dnl GAS_WORKING_ASSERT
24AC_DEFUN(GAS_WORKING_ASSERT,
25[AC_MSG_CHECKING([for working assert macro])
26AC_CACHE_VAL(gas_cv_assert_ok,
27AC_TRY_LINK([#include <assert.h>
28#include <stdio.h>], [
29/* check for requoting problems */
30static int a, b, c, d;
31static char *s;
32assert (!strcmp(s, "foo bar baz quux"));
33/* check for newline handling */
34assert (a == b
35        || c == d);
36], gas_cv_assert_ok=yes, gas_cv_assert_ok=no))dnl
37AC_MSG_RESULT($gas_cv_assert_ok)
38test $gas_cv_assert_ok = yes || AC_DEFINE(BROKEN_ASSERT)
39])dnl
40dnl
41dnl Since many Bourne shell implementations lack subroutines, use this
42dnl hack to simplify the code in configure.in.
43dnl GAS_UNIQ(listvar)
44AC_DEFUN(GAS_UNIQ,
45[_gas_uniq_list="[$]$1"
46_gas_uniq_newlist=""
47dnl Protect against empty input list.
48for _gas_uniq_i in _gas_uniq_dummy [$]_gas_uniq_list ; do
49  case [$]_gas_uniq_i in
50  _gas_uniq_dummy) ;;
51  *) case " [$]_gas_uniq_newlist " in
52       *" [$]_gas_uniq_i "*) ;;
53       *) _gas_uniq_newlist="[$]_gas_uniq_newlist [$]_gas_uniq_i" ;;
54     esac ;;
55  esac
56done
57$1=[$]_gas_uniq_newlist
58])dnl
59