dnl Copyright 2019 Google Inc. All Rights Reserved.
dnl
dnl Licensed under the Apache License, Version 2.0 (the "License");
dnl you may not use this file except in compliance with the License.
dnl You may obtain a copy of the License at
dnl
dnl http://www.apache.org/licenses/LICENSE-2.0
dnl
dnl Unless required by applicable law or agreed to in writing, software
dnl distributed under the License is distributed on an "AS-IS" BASIS,
dnl WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
dnl See the License for the specific language governing permissions and
dnl limitations under the License.
dnl
PHP_ARG_WITH(crc32c, for crc32c support,
[ --with-crc32c[=DIR] Include crc32c support. File is the optional path to google/crc32c])
if test "$PHP_CRC32C" != "no"; then
PHP_REQUIRE_CXX() # The external crc32c library uses C++.
if test -r $PHP_CRC32C/; then
SEARCH_PATH=$PHP_CRC32C
else
SEARCH_PATH="$PWD/crc32c/build /usr/local /usr"
fi
AC_MSG_CHECKING([for crc32c files])
SEARCH_FOR="include/crc32c/crc32c.h"
for i in $SEARCH_PATH ; do
if test -r $i/$SEARCH_FOR; then
CRC32C_DIR=$i
AC_MSG_RESULT(found in $i)
fi
done
# --with-crc32c -> check with-path
if test -z "$CRC32C_DIR"; then
AC_MSG_RESULT([not found])
AC_MSG_ERROR([Please install the google/crc32c package, and use --with-crc32c])
fi
# --with-crc32c -> add include path
PHP_ADD_INCLUDE($CRC32C_DIR/include)
# --with-crc32c -> check for lib and symbol presence
LIBNAME=crc32c
LIBSYMBOL=crc32c_extend
PHP_CHECK_LIBRARY($LIBNAME, $LIBSYMBOL,
[
PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $CRC32C_DIR/$PHP_LIBDIR, CRC32C_SHARED_LIBADD)
],[
AC_MSG_FAILURE([wrong crc32c lib version or lib not found])
],[
-L$CRC32C_DIR/$PHP_LIBDIR -lm
])
PHP_SUBST(CRC32C_SHARED_LIBADD)
PHP_NEW_EXTENSION(crc32c, hash_crc32c.c php_crc32c.c, $ext_shared, , -Wall -Werror)
fi