@@ -267,31 +267,51 @@ if test "$PHP_CASSANDRA" != "no"; then
267267 PHP_ADD_LIBRARY(uv,, CASSANDRA_SHARED_LIBADD)
268268 PHP_ADD_LIBRARY(m,, CASSANDRA_SHARED_LIBADD)
269269
270- if test "$PHP_CASSANDRA" != "yes"; then
271- if test -f $PHP_CASSANDRA/include/cassandra.h; then
272- CPP_DRIVER_DIR=$PHP_CASSANDRA
270+ AC_PATH_PROG ( PKG_CONFIG , pkg-config , no )
271+
272+ AC_MSG_CHECKING ( [ for supported DataStax C/C++ driver version] )
273+ if test "$PHP_CASSANDRA" = "yes" -a -x $PKG_CONFIG; then
274+ CPP_DRIVER_VERSION=`$PKG_CONFIG cassandra --modversion`
275+ if $PKG_CONFIG cassandra --atleast-version 2.7.0; then
276+ CPP_DRIVER_INCDIR=`$PKG_CONFIG cassandra --variable=includedir`
277+ CPP_DRIVER_LIBDIR=`$PKG_CONFIG cassandra --variable=libdir`
278+ AC_MSG_RESULT ( [ supported ($CPP_DRIVER_VERSION from pkg-config)] )
279+ else
280+ AC_MSG_ERROR ( [ not supported. Driver version 2.7.0+ required (found $CPP_DRIVER_VERSION)] )
273281 fi
282+
274283 else
275- for i in /usr/local /usr; do
276- if test -f $i/include/cassandra.h; then
277- CPP_DRIVER_DIR=$i
284+ if test "$PHP_CASSANDRA" != "yes"; then
285+ if test -f $PHP_CASSANDRA/include/cassandra.h; then
286+ CPP_DRIVER_INCDIR=$PHP_CASSANDRA/include
287+ CPP_DRIVER_LIBDIR=$PHP_CASSANDRA/$PHP_LIBDIR
278288 fi
279- done
280- fi
289+ if test -f $PHP_CASSANDRA/include/cassandra/cassandra.h; then
290+ CPP_DRIVER_INCDIR=$PHP_CASSANDRA/include/cassandra
291+ CPP_DRIVER_LIBDIR=$PHP_CASSANDRA/$PHP_LIBDIR
292+ fi
293+ else
294+ for i in /usr/local /usr; do
295+ if test -f $i/include/cassandra.h; then
296+ CPP_DRIVER_INCDIR=$i/include
297+ CPP_DRIVER_LIBDIR=$i/$PHP_LIBDIR
298+ fi
299+ done
300+ fi
281301
282- AC_MSG_CHECKING ( [ for supported DataStax C/C++ driver version ] )
283- 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 `
284- PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_CASSANDRA_VERSION}" | $AWK 'BEGIN { FS = "."; } { printf "%d", ( [ $ ] 1 * 100 + [ $ ] 2) * 100 + [ $ ] 3;}'`
285- if test "$PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER" -lt "20700"; then
286- AC_MSG_ERROR ( [ not supported. Driver version 2.7.0+ required (found $PHP_CASSANDRA_FOUND_CASSANDRA_VERSION) ] )
287- else
288- AC_MSG_RESULT ( [ supported ($PHP_CASSANDRA_FOUND_CASSANDRA_VERSION) ] )
302+ PHP_CASSANDRA_FOUND_CASSANDRA_VERSION=`$AWK '/CASS_VERSION_MAJOR/ {printf $3"."} /CASS_VERSION_MINOR/ {printf $3"."} /CASS_VERSION_PATCH/ {printf $3}' $CPP_DRIVER_INCDIR/cassandra.h`
303+ PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER=`echo "${PHP_CASSANDRA_FOUND_CASSANDRA_VERSION}" | $ AWK 'BEGIN { FS = "."; } { printf "%d", ( [ $ ] 1 * 100 + [ $ ] 2) * 100 + [ $ ] 3;}' `
304+ if test "$PHP_CASSANDRA_FOUND_CASSANDRA_VERSION_NUMBER" -lt "20700"; then
305+ AC_MSG_ERROR ( [ not supported. Driver version 2.7.0+ required (found $PHP_CASSANDRA_FOUND_CASSANDRA_VERSION) ] )
306+ else
307+ AC_MSG_RESULT ( [ supported ($PHP_CASSANDRA_FOUND_CASSANDRA_VERSION) ] )
308+ fi
289309 fi
290310
291- if test -z "$CPP_DRIVER_DIR "; then
311+ if test -z "$CPP_DRIVER_LIBDIR "; then
292312 ac_extra=
293313 else
294- ac_extra=-L$CPP_DRIVER_DIR /$PHP_LIBDIR
314+ ac_extra=-L$CPP_DRIVER_LIBDIR /$PHP_LIBDIR
295315 fi
296316
297317 PHP_CHECK_LIBRARY(cassandra, cass_cluster_new,
@@ -306,9 +326,9 @@ if test "$PHP_CASSANDRA" != "no"; then
306326 ]
307327 )
308328
309- if test -n "$CPP_DRIVER_DIR "; then
310- PHP_ADD_LIBPATH($CPP_DRIVER_DIR/$PHP_LIBDIR , CASSANDRA_SHARED_LIBADD)
311- PHP_ADD_INCLUDE($CPP_DRIVER_DIR/include )
329+ if test -n "$CPP_DRIVER_INCDIR "; then
330+ PHP_ADD_LIBPATH($CPP_DRIVER_LIBDIR , CASSANDRA_SHARED_LIBADD)
331+ PHP_ADD_INCLUDE($CPP_DRIVER_INCDIR )
312332 fi
313333
314334 PHP_ADD_LIBRARY(cassandra,, CASSANDRA_SHARED_LIBADD)
0 commit comments