xref: /netbsd-src/crypto/external/bsd/heimdal/dist/cf/have-struct-field.m4 (revision b40995a48bd40728880cac5a8845521b57dccf8c)
1*b40995a4Selricdnl Id
2ca1c9b0cSelricdnl
3ca1c9b0cSelricdnl check for fields in a structure
4ca1c9b0cSelricdnl
5ca1c9b0cSelricdnl AC_HAVE_STRUCT_FIELD(struct, field, headers)
6ca1c9b0cSelric
7ca1c9b0cSelricAC_DEFUN([AC_HAVE_STRUCT_FIELD], [
8ca1c9b0cSelricdefine(cache_val, translit(ac_cv_type_$1_$2, [A-Z ], [a-z_]))
9ca1c9b0cSelricAC_CACHE_CHECK([for $2 in $1], cache_val,[
10ca1c9b0cSelricAC_COMPILE_IFELSE([AC_LANG_PROGRAM([[$3]],
11ca1c9b0cSelric	[[$1 x; memset(&x, 0, sizeof(x)); x.$2]])],
12ca1c9b0cSelric	[cache_val=yes],
13ca1c9b0cSelric	[cache_val=no])
14ca1c9b0cSelric])
15ca1c9b0cSelricif test "$cache_val" = yes; then
16ca1c9b0cSelric	define(foo, translit(HAVE_$1_$2, [a-z ], [A-Z_]))
17ca1c9b0cSelric	AC_DEFINE(foo, 1, [Define if $1 has field $2.])
18ca1c9b0cSelric	undefine([foo])
19ca1c9b0cSelricfi
20ca1c9b0cSelricundefine([cache_val])
21ca1c9b0cSelric])
22