config.m4 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. if test "$PHP_XLSWRITER" != "no"; then
  6. xls_writer_sources="
  7. xlswriter.c \
  8. kernel/exception.c \
  9. kernel/resource.c \
  10. kernel/common.c \
  11. kernel/excel.c \
  12. kernel/write.c \
  13. kernel/format.c \
  14. kernel/chart.c \
  15. kernel/read.c \
  16. "
  17. libxlsxwriter_sources="
  18. library/libxlsxwriter/third_party/minizip/ioapi.c \
  19. library/libxlsxwriter/third_party/minizip/mztools.c \
  20. library/libxlsxwriter/third_party/minizip/unzip.c \
  21. library/libxlsxwriter/third_party/minizip/zip.c \
  22. library/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c \
  23. library/libxlsxwriter/src/app.c \
  24. library/libxlsxwriter/src/chart.c \
  25. library/libxlsxwriter/src/content_types.c \
  26. library/libxlsxwriter/src/core.c \
  27. library/libxlsxwriter/src/custom.c \
  28. library/libxlsxwriter/src/drawing.c \
  29. library/libxlsxwriter/src/format.c \
  30. library/libxlsxwriter/src/hash_table.c \
  31. library/libxlsxwriter/src/packager.c \
  32. library/libxlsxwriter/src/relationships.c \
  33. library/libxlsxwriter/src/shared_strings.c \
  34. library/libxlsxwriter/src/styles.c \
  35. library/libxlsxwriter/src/theme.c \
  36. library/libxlsxwriter/src/utility.c \
  37. library/libxlsxwriter/src/workbook.c \
  38. library/libxlsxwriter/src/worksheet.c \
  39. library/libxlsxwriter/src/xmlwriter.c \
  40. "
  41. libexpat="
  42. library/libexpat/expat/lib/loadlibrary.c \
  43. library/libexpat/expat/lib/xmlparse.c \
  44. library/libexpat/expat/lib/xmlrole.c \
  45. library/libexpat/expat/lib/xmltok.c \
  46. library/libexpat/expat/lib/xmltok_impl.c \
  47. library/libexpat/expat/lib/xmltok_ns.c \
  48. "
  49. libxlsxio="
  50. library/libxlsxio/lib/xlsxio_read.c \
  51. library/libxlsxio/lib/xlsxio_read_sharedstrings.c \
  52. "
  53. AC_MSG_CHECKING([Check libxlsxwriter library])
  54. if test "$PHP_LIBXLSXWRITER" != "no"; then
  55. for i in $PHP_LIBXLSXWRITER /usr/local /usr; do
  56. if test -r $i/include/xlsxwriter.h; then
  57. XLSXWRITER_DIR=$i
  58. AC_MSG_RESULT([found in $i])
  59. break
  60. fi
  61. done
  62. if test -z "$XLSXWRITER_DIR"; then
  63. AC_MSG_ERROR([libxlsxwriter library not found])
  64. else
  65. PHP_ADD_INCLUDE($XLSXWRITER_DIR/include)
  66. PHP_CHECK_LIBRARY(xlsxwriter, worksheet_write_string,
  67. [
  68. PHP_ADD_LIBRARY_WITH_PATH(xlsxwriter, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD)
  69. ],[
  70. AC_MSG_ERROR([Wrong libxlsxwriter version or library not found])
  71. ],[
  72. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  73. ])
  74. PHP_CHECK_LIBRARY(xlsxwriter, lxw_version,
  75. [
  76. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  77. ],[
  78. ],[
  79. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  80. ])
  81. PHP_CHECK_LIBRARY(xlsxwriter, lxw_chartsheet_new,
  82. [
  83. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  84. ],[
  85. ],[
  86. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  87. ])
  88. PHP_CHECK_LIBRARY(xlsxwriter, workbook_add_vba_project,
  89. [
  90. AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
  91. ],[
  92. ],[
  93. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  94. ])
  95. fi
  96. AC_DEFINE(HAVE_LIBXLSXWRITER, 1, [ use system libxlsxwriter ])
  97. else
  98. AC_MSG_RESULT([use the bundled library])
  99. xls_writer_sources="$xls_writer_sources $libxlsxwriter_sources"
  100. PHP_ADD_INCLUDE([$srcdir/library/libxlsxwriter/include])
  101. XLSXWRITER_VERSION=`$EGREP "define LXW_VERSION" $srcdir/library/include/libxlsxwriter/xlsxwriter.h | $SED -e 's/[[^0-9\.]]//g'`
  102. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 709; then
  103. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  104. fi
  105. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 800; then
  106. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  107. fi
  108. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 807; then
  109. AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
  110. fi
  111. dnl see library/CMakeLists.txt
  112. LIBOPT="-DNOCRYPT -DNOUNCRYPT"
  113. fi
  114. xls_writer_sources="$xls_writer_sources $libexpat"
  115. PHP_ADD_INCLUDE([$srcdir/library/libexpat/expat/lib])
  116. PHP_ADD_BUILD_DIR([$ext_builddir/library/libexpat/expat/lib])
  117. LIBOPT="$LIBOPT -DXML_POOR_ENTROPY"
  118. xls_writer_sources="$xls_writer_sources $libxlsxio"
  119. PHP_ADD_INCLUDE([$srcdir/library/libxlsxio/include])
  120. PHP_ADD_BUILD_DIR([$ext_builddir/library/libxlsxio/lib])
  121. LIBOPT="$LIBOPT -DUSE_MINIZIP"
  122. if test -z "$PHP_DEBUG"; then
  123. AC_ARG_ENABLE(debug, [--enable-debug compile with debugging system], [PHP_DEBUG=$enableval],[PHP_DEBUG=no])
  124. fi
  125. PHP_SUBST(XLSWRITER_SHARED_LIBADD)
  126. PHP_NEW_EXTENSION(xlswriter, $xls_writer_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 $LIBOPT)
  127. PHP_ADD_INCLUDE([$srcdir])
  128. PHP_ADD_INCLUDE([$srcdir/include])
  129. PHP_ADD_BUILD_DIR([$ext_builddir/kernel])
  130. PHP_ADD_BUILD_DIR([$ext_builddir/library/libxlsxwriter/src])
  131. PHP_ADD_BUILD_DIR([$ext_builddir/library/libxlsxwriter/third_party/minizip])
  132. PHP_ADD_BUILD_DIR([$ext_builddir/library/libxlsxwriter/third_party/tmpfileplus])
  133. fi