| PHP_ARG_ENABLE(grpc, whether to enable grpc support, |
| [ --enable-grpc Enable grpc support]) |
| |
| PHP_ARG_ENABLE(coverage, whether to include code coverage symbols, |
| [ --enable-coverage Enable coverage support], no, no) |
| |
| if test "$PHP_GRPC" != "no"; then |
| dnl Write more examples of tests here... |
| |
| dnl # --with-grpc -> check with-path |
| SEARCH_PATH="/usr/local /usr" # you might want to change this |
| SEARCH_FOR="include/grpc/grpc.h" # you most likely want to change this |
| if test -r $PHP_GRPC/$SEARCH_FOR; then # path given as parameter |
| GRPC_DIR=$PHP_GRPC |
| else # search default path list |
| AC_MSG_CHECKING([for grpc files in default path]) |
| for i in $SEARCH_PATH ; do |
| if test -r $i/$SEARCH_FOR; then |
| GRPC_DIR=$i |
| AC_MSG_RESULT(found in $i) |
| fi |
| done |
| fi |
| if test -z "$GRPC_DIR"; then |
| AC_MSG_RESULT([not found]) |
| AC_MSG_ERROR([Please reinstall the grpc distribution]) |
| fi |
| |
| dnl # --with-grpc -> add include path |
| PHP_ADD_INCLUDE($GRPC_DIR/include) |
| |
| LIBS="-lpthread $LIBS" |
| |
| dnl PHP_ADD_LIBRARY(pthread,,GRPC_SHARED_LIBADD) |
| GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" |
| PHP_ADD_LIBRARY(pthread) |
| |
| PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD) |
| PHP_ADD_LIBRARY(dl) |
| |
| case $host in |
| *darwin*) ;; |
| *) |
| PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD) |
| PHP_ADD_LIBRARY(rt) |
| ;; |
| esac |
| |
| GRPC_LIBDIR=$GRPC_DIR/${GRPC_LIB_SUBDIR-lib} |
| |
| PHP_ADD_LIBPATH($GRPC_LIBDIR) |
| |
| PHP_CHECK_LIBRARY(gpr,gpr_now, |
| [ |
| PHP_ADD_LIBRARY(gpr,,GRPC_SHARED_LIBADD) |
| PHP_ADD_LIBRARY(gpr) |
| AC_DEFINE(HAVE_GPRLIB,1,[ ]) |
| ],[ |
| AC_MSG_ERROR([wrong gpr lib version or lib not found]) |
| ],[ |
| -L$GRPC_LIBDIR |
| ]) |
| |
| PHP_CHECK_LIBRARY(grpc,grpc_channel_destroy, |
| [ |
| PHP_ADD_LIBRARY(grpc,,GRPC_SHARED_LIBADD) |
| dnl PHP_ADD_LIBRARY_WITH_PATH(grpc, $GRPC_DIR/lib, GRPC_SHARED_LIBADD) |
| AC_DEFINE(HAVE_GRPCLIB,1,[ ]) |
| ],[ |
| AC_MSG_ERROR([wrong grpc lib version or lib not found]) |
| ],[ |
| -L$GRPC_LIBDIR |
| ]) |
| |
| PHP_SUBST(GRPC_SHARED_LIBADD) |
| |
| PHP_NEW_EXTENSION(grpc, byte_buffer.c call.c call_credentials.c channel.c \ |
| channel_credentials.c completion_queue.c timeval.c server.c \ |
| server_credentials.c php_grpc.c, $ext_shared, , -Wall -Werror -std=c11) |
| fi |
| |
| if test "$PHP_COVERAGE" = "yes"; then |
| |
| if test "$GCC" != "yes"; then |
| AC_MSG_ERROR([GCC is required for --enable-coverage]) |
| fi |
| |
| dnl Check if ccache is being used |
| case `$php_shtool path $CC` in |
| *ccache*[)] gcc_ccache=yes;; |
| *[)] gcc_ccache=no;; |
| esac |
| |
| if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then |
| AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) |
| fi |
| |
| lcov_version_list="1.5 1.6 1.7 1.9 1.10 1.11" |
| |
| AC_CHECK_PROG(LCOV, lcov, lcov) |
| AC_CHECK_PROG(GENHTML, genhtml, genhtml) |
| PHP_SUBST(LCOV) |
| PHP_SUBST(GENHTML) |
| |
| if test "$LCOV"; then |
| AC_CACHE_CHECK([for lcov version], php_cv_lcov_version, [ |
| php_cv_lcov_version=invalid |
| lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #' |
| for lcov_check_version in $lcov_version_list; do |
| if test "$lcov_version" = "$lcov_check_version"; then |
| php_cv_lcov_version="$lcov_check_version (ok)" |
| fi |
| done |
| ]) |
| else |
| lcov_msg="To enable code coverage reporting you must have one of the following LCOV versions installed: $lcov_version_list" |
| AC_MSG_ERROR([$lcov_msg]) |
| fi |
| |
| case $php_cv_lcov_version in |
| ""|invalid[)] |
| lcov_msg="You must have one of the following versions of LCOV: $lcov_version_list (found: $lcov_version)." |
| AC_MSG_ERROR([$lcov_msg]) |
| LCOV="exit 0;" |
| ;; |
| esac |
| |
| if test -z "$GENHTML"; then |
| AC_MSG_ERROR([Could not find genhtml from the LCOV package]) |
| fi |
| |
| PHP_ADD_MAKEFILE_FRAGMENT |
| |
| dnl Remove all optimization flags from CFLAGS |
| changequote({,}) |
| CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'` |
| CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'` |
| changequote([,]) |
| |
| dnl Add the special gcc flags |
| CFLAGS="$CFLAGS -O0 -ggdb -fprofile-arcs -ftest-coverage" |
| CXXFLAGS="$CXXFLAGS -ggdb -O0 -fprofile-arcs -ftest-coverage" |
| fi |