1PHP_ARG_ENABLE(grpc, whether to enable grpc support, 2[ --enable-grpc Enable grpc support]) 3 4PHP_ARG_ENABLE(coverage, whether to include code coverage symbols, 5[ --enable-coverage Enable coverage support], no, no) 6 7PHP_ARG_ENABLE(tests, whether to compile helper methods for tests, 8[ --enable-tests Enable tests methods], no, no) 9 10dnl Check whether to enable tests 11if test "$PHP_TESTS" != "no"; then 12 CPPFLAGS="$CPPFLAGS -DGRPC_PHP_DEBUG" 13fi 14 15if test "$PHP_GRPC" != "no"; then 16 dnl Write more examples of tests here... 17 18 dnl # --with-grpc -> check with-path 19 SEARCH_PATH="/usr/local /usr" # you might want to change this 20 SEARCH_FOR="include/grpc/grpc.h" # you most likely want to change this 21 if test -r $PHP_GRPC/$SEARCH_FOR; then # path given as parameter 22 GRPC_DIR=$PHP_GRPC 23 else # search default path list 24 AC_MSG_CHECKING([for grpc files in default path]) 25 for i in $SEARCH_PATH ; do 26 if test -r $i/$SEARCH_FOR; then 27 GRPC_DIR=$i 28 AC_MSG_RESULT(found in $i) 29 fi 30 done 31 fi 32 if test -z "$GRPC_DIR"; then 33 AC_MSG_RESULT([not found]) 34 AC_MSG_ERROR([Please reinstall the grpc distribution]) 35 fi 36 37 dnl # --with-grpc -> add include path 38 PHP_ADD_INCLUDE($GRPC_DIR/include) 39 40 LIBS="-lpthread $LIBS" 41 42 dnl PHP_ADD_LIBRARY(pthread,,GRPC_SHARED_LIBADD) 43 GRPC_SHARED_LIBADD="-lpthread $GRPC_SHARED_LIBADD" 44 PHP_ADD_LIBRARY(pthread) 45 PHP_ADD_LIBRARY(dl,,GRPC_SHARED_LIBADD) 46 PHP_ADD_LIBRARY(dl) 47 48 case $host in 49 *darwin*) 50 PHP_ADD_LIBRARY(c++,1,GRPC_SHARED_LIBADD) 51 ;; 52 *) 53 PHP_ADD_LIBRARY(stdc++,1,GRPC_SHARED_LIBADD) 54 PHP_ADD_LIBRARY(rt,,GRPC_SHARED_LIBADD) 55 PHP_ADD_LIBRARY(rt) 56 ;; 57 esac 58 59 GRPC_LIBDIR=$GRPC_DIR/${GRPC_LIB_SUBDIR-lib} 60 61 PHP_ADD_LIBPATH($GRPC_LIBDIR) 62 63 PHP_CHECK_LIBRARY(grpc,grpc_channel_destroy, 64 [ 65 PHP_ADD_LIBRARY(grpc,,GRPC_SHARED_LIBADD) 66 dnl PHP_ADD_LIBRARY_WITH_PATH(grpc, $GRPC_DIR/lib, GRPC_SHARED_LIBADD) 67 AC_DEFINE(HAVE_GRPCLIB,1,[ ]) 68 ],[ 69 AC_MSG_ERROR([wrong grpc lib version or lib not found]) 70 ],[ 71 -L$GRPC_LIBDIR 72 ]) 73 74 PHP_SUBST(GRPC_SHARED_LIBADD) 75 76 PHP_NEW_EXTENSION(grpc, byte_buffer.c call.c call_credentials.c channel.c \ 77 channel_credentials.c completion_queue.c timeval.c server.c \ 78 server_credentials.c php_grpc.c, $ext_shared, , -Wall -Werror -std=c11 -DGRPC_POSIX_FORK_ALLOW_PTHREAD_ATFORK=1) 79fi 80 81if test "$PHP_COVERAGE" = "yes"; then 82 83 if test "$GCC" != "yes"; then 84 AC_MSG_ERROR([GCC is required for --enable-coverage]) 85 fi 86 87 dnl Check if ccache is being used 88 case `$php_shtool path $CC` in 89 *ccache*[)] gcc_ccache=yes;; 90 *[)] gcc_ccache=no;; 91 esac 92 93 if test "$gcc_ccache" = "yes" && (test -z "$CCACHE_DISABLE" || test "$CCACHE_DISABLE" != "1"); then 94 AC_MSG_ERROR([ccache must be disabled when --enable-coverage option is used. You can disable ccache by setting environment variable CCACHE_DISABLE=1.]) 95 fi 96 97 lcov_version_list="1.5 1.6 1.7 1.9 1.10 1.11 1.12 1.13" 98 99 AC_CHECK_PROG(LCOV, lcov, lcov) 100 AC_CHECK_PROG(GENHTML, genhtml, genhtml) 101 PHP_SUBST(LCOV) 102 PHP_SUBST(GENHTML) 103 104 if test "$LCOV"; then 105 AC_CACHE_CHECK([for lcov version], php_cv_lcov_version, [ 106 php_cv_lcov_version=invalid 107 lcov_version=`$LCOV -v 2>/dev/null | $SED -e 's/^.* //'` #' 108 for lcov_check_version in $lcov_version_list; do 109 if test "$lcov_version" = "$lcov_check_version"; then 110 php_cv_lcov_version="$lcov_check_version (ok)" 111 fi 112 done 113 ]) 114 else 115 lcov_msg="To enable code coverage reporting you must have one of the following LCOV versions installed: $lcov_version_list" 116 AC_MSG_ERROR([$lcov_msg]) 117 fi 118 119 case $php_cv_lcov_version in 120 ""|invalid[)] 121 lcov_msg="You must have one of the following versions of LCOV: $lcov_version_list (found: $lcov_version)." 122 AC_MSG_ERROR([$lcov_msg]) 123 LCOV="exit 0;" 124 ;; 125 esac 126 127 if test -z "$GENHTML"; then 128 AC_MSG_ERROR([Could not find genhtml from the LCOV package]) 129 fi 130 131 PHP_ADD_MAKEFILE_FRAGMENT 132 133 dnl Remove all optimization flags from CFLAGS 134 changequote({,}) 135 CFLAGS=`echo "$CFLAGS" | $SED -e 's/-O[0-9s]*//g'` 136 CXXFLAGS=`echo "$CXXFLAGS" | $SED -e 's/-O[0-9s]*//g'` 137 changequote([,]) 138 139 dnl Add the special gcc flags 140 CFLAGS="$CFLAGS -O0 -ggdb -fprofile-arcs -ftest-coverage" 141 CXXFLAGS="$CXXFLAGS -ggdb -O0 -fprofile-arcs -ftest-coverage" 142fi 143