config.m4 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. PHP_ARG_WITH([mhash],
  2. [for mhash support],
  3. [AS_HELP_STRING([[--with-mhash]],
  4. [Include mhash support])])
  5. if test "$PHP_MHASH" != "no"; then
  6. if test "$PHP_HASH" = "no"; then
  7. PHP_HASH="yes"
  8. fi
  9. AC_DEFINE(PHP_MHASH_BC, 1, [ ])
  10. fi
  11. if test $ac_cv_c_bigendian_php = yes; then
  12. EXT_HASH_SHA3_SOURCES="hash_sha3.c"
  13. AC_DEFINE(HAVE_SLOW_HASH3, 1, [Define is hash3 algo is available])
  14. AC_MSG_WARN("Use SHA3 slow implementation on bigendian")
  15. else
  16. AC_CHECK_SIZEOF([long])
  17. AC_MSG_CHECKING([if we're at 64-bit platform])
  18. AS_IF([test "$ac_cv_sizeof_long" -eq 4],[
  19. AC_MSG_RESULT([no])
  20. SHA3_DIR="sha3/generic32lc"
  21. SHA3_OPT_SRC="$SHA3_DIR/KeccakP-1600-inplace32BI.c"
  22. ],[
  23. AC_MSG_RESULT([yes])
  24. SHA3_DIR="sha3/generic64lc"
  25. SHA3_OPT_SRC="$SHA3_DIR/KeccakP-1600-opt64.c"
  26. ])
  27. EXT_HASH_SHA3_SOURCES="$SHA3_OPT_SRC $SHA3_DIR/KeccakHash.c $SHA3_DIR/KeccakSponge.c hash_sha3.c"
  28. dnl Add -Wno-implicit-fallthrough flag as it happens on 32 bit builds
  29. PHP_HASH_CFLAGS="-Wno-implicit-fallthrough -I@ext_srcdir@/$SHA3_DIR -DKeccakP200_excluded -DKeccakP400_excluded -DKeccakP800_excluded -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1"
  30. PHP_ADD_BUILD_DIR(ext/hash/$SHA3_DIR, 1)
  31. fi
  32. PHP_ADD_BUILD_DIR(ext/hash/murmur, 1)
  33. PHP_HASH_CFLAGS="$PHP_HASH_CFLAGS -I@ext_srcdir@/xxhash"
  34. EXT_HASH_SOURCES="hash.c hash_md.c hash_sha.c hash_ripemd.c hash_haval.c \
  35. hash_tiger.c hash_gost.c hash_snefru.c hash_whirlpool.c hash_adler32.c \
  36. hash_crc32.c hash_fnv.c hash_joaat.c $EXT_HASH_SHA3_SOURCES
  37. murmur/PMurHash.c murmur/PMurHash128.c hash_murmur.c hash_xxhash.c"
  38. EXT_HASH_HEADERS="php_hash.h php_hash_md.h php_hash_sha.h php_hash_ripemd.h \
  39. php_hash_haval.h php_hash_tiger.h php_hash_gost.h php_hash_snefru.h \
  40. php_hash_whirlpool.h php_hash_adler32.h php_hash_crc32.h \
  41. php_hash_fnv.h php_hash_joaat.h php_hash_sha3.h php_hash_murmur.h \
  42. php_hash_xxhash.h"
  43. PHP_NEW_EXTENSION(hash, $EXT_HASH_SOURCES, 0,,$PHP_HASH_CFLAGS)
  44. PHP_INSTALL_HEADERS(ext/hash, $EXT_HASH_HEADERS)