1
1
PHP_ARG_WITH(cassandra, Enable Cassandra extension,
2
2
[ --with-cassandra[ =DIR] Enable the Cassandra extension.] )
3
3
4
+ AC_MSG_CHECKING ( [ for supported PHP version] )
5
+ PHP_CASSANDRA_FOUND_PHP_VERSION=`${PHP_CONFIG} --version`
6
+ PHP_CASSANDRA_FOUND_PHP_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_PHP_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([ $] 1 * 100 + [ $] 2) * 100 + [ $] 3;}'`
7
+ if test "$PHP_CASSANDRA_FOUND_PHP_VERSION_NUMBER" -lt "50500"; then
8
+ AC_MSG_ERROR ( [ not supported. PHP version 5.5.0+ required (found $PHP_CASSANDRA_FOUND_PHP_VERSION)] )
9
+ else
10
+ AC_MSG_RESULT ( [ supported ($PHP_CASSANDRA_FOUND_PHP_VERSION)] )
11
+ fi
12
+
4
13
if test -z "$PHP_UV"; then
5
14
PHP_ARG_WITH(uv, libuv install dir,
6
15
[ --with-uv=DIR Specify libuv install dir.] )
14
23
if test "$PHP_CASSANDRA" != "no"; then
15
24
CASSANDRA_CLASSES="\
16
25
src/Cassandra.c \
26
+ src/Cassandra/Aggregate.c \
27
+ src/Cassandra/BatchStatement.c \
28
+ src/Cassandra/Bigint.c \
29
+ src/Cassandra/Blob.c \
17
30
src/Cassandra/Cluster.c \
18
31
src/Cassandra/Cluster/Builder.c \
32
+ src/Cassandra/Collection.c \
33
+ src/Cassandra/Column.c \
34
+ src/Cassandra/Decimal.c \
35
+ src/Cassandra/DefaultAggregate.c \
19
36
src/Cassandra/DefaultCluster.c \
37
+ src/Cassandra/DefaultColumn.c \
38
+ src/Cassandra/DefaultFunction.c \
39
+ src/Cassandra/DefaultIndex.c \
40
+ src/Cassandra/DefaultKeyspace.c \
41
+ src/Cassandra/DefaultMaterializedView.c \
42
+ src/Cassandra/DefaultSchema.c \
43
+ src/Cassandra/DefaultSession.c \
44
+ src/Cassandra/DefaultTable.c \
20
45
src/Cassandra/Exception.c \
21
- src/Cassandra/Exception/DomainException.c \
22
- src/Cassandra/Exception/InvalidArgumentException.c \
23
- src/Cassandra/Exception/LogicException.c \
24
- src/Cassandra/Exception/RuntimeException.c \
25
- src/Cassandra/Exception/TimeoutException.c \
26
- src/Cassandra/Exception/ExecutionException.c \
27
- src/Cassandra/Exception/ReadTimeout.c \
28
- src/Cassandra/Exception/WriteTimeoutException.c \
29
- src/Cassandra/Exception/UnavailableException.c \
30
- src/Cassandra/Exception/TruncateException.c \
31
- src/Cassandra/Exception/ValidationException.c \
32
- src/Cassandra/Exception/InvalidQueryException.c \
33
- src/Cassandra/Exception/InvalidSyntaxException.c \
34
- src/Cassandra/Exception/UnauthorizedException.c \
35
- src/Cassandra/Exception/UnpreparedException.c \
36
- src/Cassandra/Exception/ConfigurationException.c \
37
- src/Cassandra/Exception/AlreadyExistsException.c \
38
- src/Cassandra/Exception/AuthenticationException.c \
39
- src/Cassandra/Exception/ProtocolException.c \
40
- src/Cassandra/Exception/ServerException.c \
41
- src/Cassandra/Exception/IsBootstrappingException.c \
42
- src/Cassandra/Exception/OverloadedException.c \
43
- src/Cassandra/Exception/DivideByZeroException.c \
44
- src/Cassandra/Exception/RangeException.c \
46
+ src/Cassandra/ExecutionOptions.c \
47
+ src/Cassandra/Float.c \
48
+ src/Cassandra/Function.c \
45
49
src/Cassandra/Future.c \
50
+ src/Cassandra/FutureClose.c \
46
51
src/Cassandra/FuturePreparedStatement.c \
47
52
src/Cassandra/FutureRows.c \
48
53
src/Cassandra/FutureSession.c \
49
54
src/Cassandra/FutureValue.c \
50
- src/Cassandra/FutureClose.c \
55
+ src/Cassandra/Index.c \
56
+ src/Cassandra/Inet.c \
57
+ src/Cassandra/Keyspace.c \
58
+ src/Cassandra/Map.c \
59
+ src/Cassandra/MaterializedView.c \
60
+ src/Cassandra/Numeric.c \
61
+ src/Cassandra/PreparedStatement.c \
62
+ src/Cassandra/RetryPolicy.c \
63
+ src/Cassandra/Rows.c \
64
+ src/Cassandra/Schema.c \
51
65
src/Cassandra/Session.c \
52
- src/Cassandra/DefaultSession.c \
66
+ src/Cassandra/Set.c \
67
+ src/Cassandra/SimpleStatement.c \
53
68
src/Cassandra/SSLOptions.c \
54
69
src/Cassandra/SSLOptions/Builder.c \
55
70
src/Cassandra/Statement.c \
56
- src/Cassandra/ExecutionOptions.c \
57
- src/Cassandra/SimpleStatement.c \
58
- src/Cassandra/PreparedStatement.c \
59
- src/Cassandra/BatchStatement.c \
60
- src/Cassandra/Rows.c \
61
- src/Cassandra/Column.c \
62
- src/Cassandra/DefaultColumn.c \
63
- src/Cassandra/DefaultKeyspace.c \
64
- src/Cassandra/DefaultSchema.c \
65
- src/Cassandra/DefaultTable.c \
66
- src/Cassandra/Keyspace.c \
67
- src/Cassandra/Schema.c \
68
71
src/Cassandra/Table.c \
69
- src/Cassandra/Type.c \
70
- src/Cassandra/Type/Collection.c \
71
- src/Cassandra/Type/Map.c \
72
- src/Cassandra/Type/Scalar.c \
73
- src/Cassandra/Type/Set.c \
74
- src/Cassandra/Type/Tuple.c \
75
- src/Cassandra/Type/UserType.c \
76
- src/Cassandra/Type/Custom.c \
77
- src/Cassandra/RetryPolicy.c \
78
- src/Cassandra/RetryPolicy/DefaultPolicy.c \
79
- src/Cassandra/RetryPolicy/DowngradingConsistency.c \
80
- src/Cassandra/RetryPolicy/Fallthrough.c \
81
- src/Cassandra/RetryPolicy/Logging.c \
72
+ src/Cassandra/Timestamp.c \
82
73
src/Cassandra/TimestampGenerator.c \
83
74
src/Cassandra/TimestampGenerator/Monotonic.c \
84
75
src/Cassandra/TimestampGenerator/ServerSide.c \
85
- ";
86
-
87
- CASSANDRA_TYPES="\
88
- src/Cassandra/Float.c \
89
- src/Cassandra/Bigint.c \
90
- src/Cassandra/Blob.c \
91
- src/Cassandra/Decimal.c \
92
- src/Cassandra/Inet.c \
93
- src/Cassandra/Numeric.c \
94
- src/Cassandra/UuidInterface.c \
95
- src/Cassandra/Uuid.c \
96
- src/Cassandra/Timestamp.c \
97
76
src/Cassandra/Timeuuid.c \
98
- src/Cassandra/Varint.c \
99
- src/Cassandra/Set.c \
100
- src/Cassandra/Map.c \
101
- src/Cassandra/Collection.c \
102
77
src/Cassandra/Tuple.c \
78
+ src/Cassandra/Type.c \
103
79
src/Cassandra/UserTypeValue.c \
80
+ src/Cassandra/Uuid.c \
81
+ src/Cassandra/UuidInterface.c \
104
82
src/Cassandra/Value.c \
83
+ src/Cassandra/Varint.c \
84
+ ";
85
+
86
+ CASSANDRA_EXCEPTIONS="\
87
+ src/Cassandra/Exception/AlreadyExistsException.c \
88
+ src/Cassandra/Exception/AuthenticationException.c \
89
+ src/Cassandra/Exception/ConfigurationException.c \
90
+ src/Cassandra/Exception/DivideByZeroException.c \
91
+ src/Cassandra/Exception/DomainException.c \
92
+ src/Cassandra/Exception/ExecutionException.c \
93
+ src/Cassandra/Exception/InvalidArgumentException.c \
94
+ src/Cassandra/Exception/InvalidQueryException.c \
95
+ src/Cassandra/Exception/InvalidSyntaxException.c \
96
+ src/Cassandra/Exception/IsBootstrappingException.c \
97
+ src/Cassandra/Exception/LogicException.c \
98
+ src/Cassandra/Exception/OverloadedException.c \
99
+ src/Cassandra/Exception/ProtocolException.c \
100
+ src/Cassandra/Exception/RangeException.c \
101
+ src/Cassandra/Exception/ReadTimeout.c \
102
+ src/Cassandra/Exception/RuntimeException.c \
103
+ src/Cassandra/Exception/ServerException.c \
104
+ src/Cassandra/Exception/TimeoutException.c \
105
+ src/Cassandra/Exception/TruncateException.c \
106
+ src/Cassandra/Exception/UnauthorizedException.c \
107
+ src/Cassandra/Exception/UnavailableException.c \
108
+ src/Cassandra/Exception/UnpreparedException.c \
109
+ src/Cassandra/Exception/ValidationException.c \
110
+ src/Cassandra/Exception/WriteTimeoutException.c
111
+ ";
112
+
113
+ CASSANDRA_RETRY_POLICIES="\
114
+ src/Cassandra/RetryPolicy/DefaultPolicy.c \
115
+ src/Cassandra/RetryPolicy/DowngradingConsistency.c \
116
+ src/Cassandra/RetryPolicy/Fallthrough.c \
117
+ src/Cassandra/RetryPolicy/Logging.c
118
+ ";
119
+
120
+ CASSANDRA_TYPES="\
121
+ src/Cassandra/Type/Collection.c \
122
+ src/Cassandra/Type/Custom.c \
123
+ src/Cassandra/Type/Map.c \
124
+ src/Cassandra/Type/Scalar.c \
125
+ src/Cassandra/Type/Set.c \
126
+ src/Cassandra/Type/Tuple.c \
127
+ src/Cassandra/Type/UserType.c
105
128
";
106
129
107
130
CASSANDRA_UTIL="\
@@ -127,8 +150,14 @@ if test "$PHP_CASSANDRA" != "no"; then
127
150
;;
128
151
esac
129
152
130
- PHP_NEW_EXTENSION(cassandra, php_cassandra.c $CASSANDRA_CLASSES \
131
- $CASSANDRA_TYPES $CASSANDRA_UTIL, $ext_shared, , $CASSANDRA_CFLAGS)
153
+ PHP_NEW_EXTENSION(cassandra,
154
+ php_cassandra.c \
155
+ $CASSANDRA_CLASSES \
156
+ $CASSANDRA_EXCEPTIONS \
157
+ $CASSANDRA_RETRY_POLICIES \
158
+ $CASSANDRA_TYPES \
159
+ $CASSANDRA_UTIL,
160
+ $ext_shared, , $CASSANDRA_CFLAGS)
132
161
PHP_ADD_BUILD_DIR($ext_builddir/src)
133
162
PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra)
134
163
PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra/Cluster)
@@ -233,6 +262,15 @@ if test "$PHP_CASSANDRA" != "no"; then
233
262
done
234
263
fi
235
264
265
+ AC_MSG_CHECKING ( [ for supported DataStax C/C++ driver version] )
266
+ PHP_CASSANDRA_FOUND_CASSANDRA_VERSION=`$AWK '/CASS_VERSION_MAJOR/ {printf $3"."} /CASS_VERSION_MINOR/ {printf $3"."} /CASS_VERSION_PATCH/ {printf $3}' $CPP_DRIVER_DIR/include/cassandra.h`
267
+ PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_CASSANDRA_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ([ $] 1 * 100 + [ $] 2) * 100 + [ $] 3;}'`
268
+ if test "$PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER" -lt "20402"; then
269
+ AC_MSG_ERROR ( [ not supported. Driver version 2.4.2+ required (found $PHP_CASSANDRA_FOUND_CASSANDRA_VERSION)] )
270
+ else
271
+ AC_MSG_RESULT ( [ supported ($PHP_CASSANDRA_FOUND_CASSANDRA_VERSION)] )
272
+ fi
273
+
236
274
if test -z "$CPP_DRIVER_DIR"; then
237
275
ac_extra=
238
276
else
0 commit comments