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