Home | History | Annotate | Download | only in gas
      1 dnl GAS_CHECK_DECL_NEEDED(name, typedefname, typedef, headers)
      2 AC_DEFUN([GAS_CHECK_DECL_NEEDED],[
      3 AC_MSG_CHECKING(whether declaration is required for $1)
      4 AC_CACHE_VAL(gas_cv_decl_needed_$1,
      5 AC_TRY_LINK([$4],
      6 [
      7 typedef $3;
      8 $2 x;
      9 x = ($2) $1;
     10 ], gas_cv_decl_needed_$1=no, gas_cv_decl_needed_$1=yes))dnl
     11 AC_MSG_RESULT($gas_cv_decl_needed_$1)
     12 if test $gas_cv_decl_needed_$1 = yes; then
     13  AC_DEFINE([NEED_DECLARATION_]translit($1, [a-z], [A-Z]), 1,
     14 	   [Define if $1 is not declared in system header files.])
     15 fi
     16 ])dnl
     17 dnl
     18 dnl Some non-ANSI preprocessors botch requoting inside strings.  That's bad
     19 dnl enough, but on some of those systems, the assert macro relies on requoting
     20 dnl working properly!
     21 dnl GAS_WORKING_ASSERT
     22 AC_DEFUN([GAS_WORKING_ASSERT],
     23 [AC_MSG_CHECKING([for working assert macro])
     24 AC_CACHE_VAL(gas_cv_assert_ok,
     25 AC_TRY_LINK([#include <assert.h>
     26 #include <stdio.h>], [
     27 /* check for requoting problems */
     28 static int a, b, c, d;
     29 static char *s;
     30 assert (!strcmp(s, "foo bar baz quux"));
     31 /* check for newline handling */
     32 assert (a == b
     33         || c == d);
     34 ], gas_cv_assert_ok=yes, gas_cv_assert_ok=no))dnl
     35 AC_MSG_RESULT($gas_cv_assert_ok)
     36 test $gas_cv_assert_ok = yes || AC_DEFINE(BROKEN_ASSERT, 1, [assert broken?])
     37 ])dnl
     38 dnl
     39 dnl Since many Bourne shell implementations lack subroutines, use this
     40 dnl hack to simplify the code in configure.ac.
     41 dnl GAS_UNIQ(listvar)
     42 AC_DEFUN([GAS_UNIQ],
     43 [_gas_uniq_list="[$]$1"
     44 _gas_uniq_newlist=""
     45 dnl Protect against empty input list.
     46 for _gas_uniq_i in _gas_uniq_dummy [$]_gas_uniq_list ; do
     47   case [$]_gas_uniq_i in
     48   _gas_uniq_dummy) ;;
     49   *) case " [$]_gas_uniq_newlist " in
     50        *" [$]_gas_uniq_i "*) ;;
     51        *) _gas_uniq_newlist="[$]_gas_uniq_newlist [$]_gas_uniq_i" ;;
     52      esac ;;
     53   esac
     54 done
     55 $1=[$]_gas_uniq_newlist
     56 ])dnl
     57 dnl
     58 dnl Check for existence of member $2 in type $1 in time.h
     59 dnl
     60 AC_DEFUN([GAS_HAVE_TIME_TYPE_MEMBER],
     61 [AC_MSG_CHECKING([for $1.$2 in time.h])
     62  AC_CACHE_VAL(gas_cv_have_time_type_member_$2,
     63    [AC_TRY_COMPILE([
     64 #define _BSD_SOURCE 1
     65 #include <time.h>],
     66       [$1 avar; void* aref = (void*) &avar.$2],
     67       gas_cv_have_time_type_member_$2=yes,
     68       gas_cv_have_time_type_member_$2=no
     69    )])
     70  if test $gas_cv_have_time_type_member_$2 = yes; then
     71    AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z]), 1,
     72 	     [Define if <time.h> has $1.$2.])
     73  fi
     74  AC_MSG_RESULT($gas_cv_have_time_type_member_$2)
     75 ])dnl
     76 dnl
     77 dnl Check for existence of member $2.$3 in type $1 in sys/stat.h
     78 dnl
     79 AC_DEFUN([GAS_HAVE_SYS_STAT_TYPE_MEMBER],
     80 [AC_MSG_CHECKING([for $1.$2.$3 in sys/stat.h])
     81  AC_CACHE_VAL(gas_cv_have_sys_stat_type_member_$2_$3,
     82    [AC_TRY_COMPILE([
     83 #define _BSD_SOURCE 1
     84 #include <sys/stat.h>],
     85       [$1 avar; void* aref = (void*) &avar.$2.$3],
     86       gas_cv_have_sys_stat_type_member_$2_$3=yes,
     87       gas_cv_have_sys_stat_type_member_$2_$3=no
     88    )])
     89  if test $gas_cv_have_sys_stat_type_member_$2_$3 = yes; then
     90    AC_DEFINE([HAVE_]translit($2, [a-z], [A-Z])[_]translit($3, [a-z], [A-Z]), 1,
     91 	     [Define if <sys/stat.h> has $1.$2.$3])
     92  fi
     93  AC_MSG_RESULT($gas_cv_have_sys_stat_type_member_$2_$3)
     94 ])dnl
     95