config.m4 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. PHP_ARG_WITH(xlsxwriter, xlswriter support,
  2. [ --with-xlswriter Include xlswriter support], yes)
  3. PHP_ARG_WITH(libxlsxwriter, system libxlsswriter,
  4. [ --with-libxlsxwriter=DIR Use system library], no, no)
  5. PHP_ARG_WITH(zlib-dir,if the location of ZLIB install directory is defined,
  6. [ --with-zlib-dir=<DIR> Define the location of zlib install directory], no, no)
  7. if test "$PHP_XLSWRITER" != "no" || $PHP_ZLIB_DIR != "no"; then
  8. for i in /usr/local /usr $PHP_ZLIB_DIR; do
  9. if test -f $i/include/zlib/zlib.h; then
  10. ZLIB_DIR=$i
  11. ZLIB_INCDIR=$i/include/zlib
  12. elif test -f $i/include/zlib.h; then
  13. ZLIB_DIR=$i
  14. ZLIB_INCDIR=$i/include
  15. fi
  16. done
  17. if test -z "$ZLIB_DIR"; then
  18. AC_MSG_ERROR(Cannot find zlib)
  19. fi
  20. AC_MSG_CHECKING([for zlib version >= 1.2.8])
  21. ZLIB_VERSION=`$EGREP "define ZLIB_VERSION" $ZLIB_INCDIR/zlib.h | $SED -e 's/[[^0-9\.]]//g'`
  22. if test `echo $ZLIB_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*1000000 + $2*10000 + $3*100}'` -lt 1020800; then
  23. AC_MSG_ERROR([zlib version greater or equal to 1.2.8 required])
  24. fi
  25. xls_writer_sources="
  26. xls_writer.c \
  27. kernel/exception.c \
  28. kernel/resource.c \
  29. kernel/common.c \
  30. kernel/excel.c \
  31. kernel/write.c \
  32. kernel/format.c \
  33. "
  34. libxlsxwriter_sources="
  35. library/third_party/minizip/ioapi.c \
  36. library/third_party/minizip/mztools.c \
  37. library/third_party/minizip/unzip.c \
  38. library/third_party/minizip/zip.c \
  39. library/third_party/tmpfileplus/tmpfileplus.c \
  40. library/src/app.c \
  41. library/src/chart.c \
  42. library/src/content_types.c \
  43. library/src/core.c \
  44. library/src/custom.c \
  45. library/src/drawing.c \
  46. library/src/format.c \
  47. library/src/hash_table.c \
  48. library/src/packager.c \
  49. library/src/relationships.c \
  50. library/src/shared_strings.c \
  51. library/src/styles.c \
  52. library/src/theme.c \
  53. library/src/utility.c \
  54. library/src/workbook.c \
  55. library/src/worksheet.c \
  56. library/src/xmlwriter.c \
  57. "
  58. AC_MSG_CHECKING([Check libxlsxwriter library])
  59. if test "$PHP_LIBXLSXWRITER" != "no"; then
  60. for i in $PHP_LIBXLSXWRITER /usr/local /usr; do
  61. if test -r $i/include/xlsxwriter.h; then
  62. XLSXWRITER_DIR=$i
  63. AC_MSG_RESULT([found in $i])
  64. break
  65. fi
  66. done
  67. if test -z "$XLSXWRITER_DIR"; then
  68. AC_MSG_ERROR([libxlsxwriter library not found])
  69. else
  70. PHP_ADD_INCLUDE($XLSXWRITER_DIR/include)
  71. PHP_CHECK_LIBRARY(xlsxwriter, worksheet_write_string,
  72. [
  73. PHP_ADD_LIBRARY_WITH_PATH(xlsxwriter, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD)
  74. ],[
  75. AC_MSG_ERROR([Wrong libxlsxwriter version or library not found])
  76. ],[
  77. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  78. ])
  79. PHP_CHECK_LIBRARY(xlsxwriter, lxw_version,
  80. [
  81. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  82. ],[
  83. ],[
  84. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  85. ])
  86. PHP_CHECK_LIBRARY(xlsxwriter, lxw_chartsheet_new,
  87. [
  88. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  89. ],[
  90. ],[
  91. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  92. ])
  93. fi
  94. AC_DEFINE(HAVE_LIBXLSXWRITER, 1, [ use system libxlsxwriter ])
  95. else
  96. AC_MSG_RESULT([use the bundled library])
  97. xls_writer_sources="$xls_writer_sources $libxlsxwriter_sources"
  98. PHP_ADD_INCLUDE([$srcdir/library/include])
  99. XLSXWRITER_VERSION=`$EGREP "define LXW_VERSION" $srcdir/library/include/xlsxwriter.h | $SED -e 's/[[^0-9\.]]//g'`
  100. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -lt 800; then
  101. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  102. fi
  103. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 800; then
  104. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  105. fi
  106. fi
  107. if test -z "$PHP_DEBUG"; then
  108. AC_ARG_ENABLE(debug, [--enable-debug compile with debugging system], [PHP_DEBUG=$enableval],[PHP_DEBUG=no])
  109. fi
  110. PHP_SUBST(XLSWRITER_SHARED_LIBADD)
  111. PHP_NEW_EXTENSION(xlswriter, $xls_writer_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1)
  112. PHP_ADD_BUILD_DIR([$ext_builddir/kernel])
  113. fi