Skip to content

Commit cda6e5a

Browse files
Merge pull request #28 from remicollet/issue-pkgc
use pkg-config and allow build when cpp-driver use CASS_INSTALL_HEADE…
2 parents 7f871a5 + 659f253 commit cda6e5a

File tree

1 file changed

+40
-20
lines changed

1 file changed

+40
-20
lines changed

ext/config.m4

Lines changed: 40 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)