forked from axs-mvd/libcassandra
-
Notifications
You must be signed in to change notification settings - Fork 0
/
bitfield.m4
51 lines (46 loc) · 1.24 KB
/
bitfield.m4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
AC_DEFUN([DETECT_BITFIELD],
[
AC_CACHE_CHECK([for working bitfield],[ac_cv_have_bitfield],[
AC_LANG_PUSH([C])
save_CFLAGS="${CFLAGS}"
CFLAGS="${AM_CFLAGS} ${NO_WERROR}"
AC_RUN_IFELSE([
AC_LANG_PROGRAM([[
#include <stdbool.h>
]],[[
struct flags { bool b0:1; bool b1:1; bool b2:1; bool b3:1;
bool b4:1; bool b5:1; bool b6:1; bool b7:1;
} f = { .b0 = false, .b1 = false, .b2 = false, .b3 = false,
.b4 = false, .b5 = false, .b6 = false, .b7 = false };
f.b0 = true;
f.b1 = false;
f.b2 = true;
f.b3 = false;
f.b4 = true;
f.b5 = false;
f.b6 = true;
f.b7 = false;
if (f.b0 && !f.b1 && f.b2 && !f.b3 && f.b4 && !f.b5 && f.b6 && !f.b7) {
return 0;
}
return 1;
]])
], [
ac_cv_have_bitfield=yes
],[
ac_cv_have_bitfield=no
])])
CFLAGS=${save_CFLAGS}
AS_IF([test "x$ac_cv_have_bitfield" = "xyes"],
[
MEMCACHED_BITFIELD="#define MEMCACHED_BITFIELD :1"
HASHKIT_BITFIELD="#define HASHKIT_BITFIELD :1"
],
[
MEMCACHED_BITFIELD="#define MEMCACHED_BITFIELD"
HASHKIT_BITFIELD="#define HASHKIT_BITFIELD"
])
AC_SUBST([MEMCACHED_BITFIELD])
AC_SUBST([HASHKIT_BITFIELD])
AC_LANG_POP()
])