11PHP_ARG_WITH(cassandra, Enable Cassandra extension,
22[ --with-cassandra[ =DIR] Enable the Cassandra extension.] )
33
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+
413if test -z "$PHP_UV"; then
514 PHP_ARG_WITH(uv, libuv install dir,
615 [ --with-uv=DIR Specify libuv install dir.] )
1423if test "$PHP_CASSANDRA" != "no"; then
1524 CASSANDRA_CLASSES="\
1625 src/Cassandra.c \
26+ src/Cassandra/Aggregate.c \
27+ src/Cassandra/BatchStatement.c \
28+ src/Cassandra/Bigint.c \
29+ src/Cassandra/Blob.c \
1730 src/Cassandra/Cluster.c \
1831 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 \
1936 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 \
2045 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 \
4549 src/Cassandra/Future.c \
50+ src/Cassandra/FutureClose.c \
4651 src/Cassandra/FuturePreparedStatement.c \
4752 src/Cassandra/FutureRows.c \
4853 src/Cassandra/FutureSession.c \
4954 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 \
5165 src/Cassandra/Session.c \
52- src/Cassandra/DefaultSession.c \
66+ src/Cassandra/Set.c \
67+ src/Cassandra/SimpleStatement.c \
5368 src/Cassandra/SSLOptions.c \
5469 src/Cassandra/SSLOptions/Builder.c \
5570 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 \
6871 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 \
8273 src/Cassandra/TimestampGenerator.c \
8374 src/Cassandra/TimestampGenerator/Monotonic.c \
8475 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 \
9776 src/Cassandra/Timeuuid.c \
98- src/Cassandra/Varint.c \
99- src/Cassandra/Set.c \
100- src/Cassandra/Map.c \
101- src/Cassandra/Collection.c \
10277 src/Cassandra/Tuple.c \
78+ src/Cassandra/Type.c \
10379 src/Cassandra/UserTypeValue.c \
80+ src/Cassandra/Uuid.c \
81+ src/Cassandra/UuidInterface.c \
10482 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
105128 ";
106129
107130 CASSANDRA_UTIL="\
@@ -127,8 +150,14 @@ if test "$PHP_CASSANDRA" != "no"; then
127150 ;;
128151 esac
129152
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)
132161 PHP_ADD_BUILD_DIR($ext_builddir/src)
133162 PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra)
134163 PHP_ADD_BUILD_DIR($ext_builddir/src/Cassandra/Cluster)
@@ -233,6 +262,15 @@ if test "$PHP_CASSANDRA" != "no"; then
233262 done
234263 fi
235264
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+
236274 if test -z "$CPP_DRIVER_DIR"; then
237275 ac_extra=
238276 else
0 commit comments