config.m4 8.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. PHP_ARG_WITH(xlswriter, xlswriter support,
  2. [ --with-xlswriter Include xlswriter support], yes)
  3. PHP_ARG_WITH(libxlsxwriter, system libxlsxwriter,
  4. [ --with-libxlsxwriter=DIR Use system libxlsxwriter], no, no)
  5. PHP_ARG_WITH(libxlsxio, system libxlsxio,
  6. [ --with-libxlsxio=DIR Use system libxlsxio], no, no)
  7. PHP_ARG_ENABLE(reader, enable xlsx reader support,
  8. [ --enable-reader Enable xlsx reader?], no, no)
  9. if test "$PHP_XLSWRITER" != "no"; then
  10. xls_writer_sources="
  11. xlswriter.c \
  12. kernel/exception.c \
  13. kernel/resource.c \
  14. kernel/common.c \
  15. kernel/excel.c \
  16. kernel/write.c \
  17. kernel/format.c \
  18. kernel/chart.c \
  19. kernel/help.c \
  20. "
  21. xls_read_sources="
  22. kernel/read.c \
  23. kernel/csv.c \
  24. "
  25. minizip_sources="
  26. library/libxlsxwriter/third_party/minizip/ioapi.c \
  27. library/libxlsxwriter/third_party/minizip/mztools.c \
  28. library/libxlsxwriter/third_party/minizip/unzip.c \
  29. library/libxlsxwriter/third_party/minizip/zip.c \
  30. "
  31. libxlsxwriter_sources="
  32. library/libxlsxwriter/third_party/tmpfileplus/tmpfileplus.c \
  33. library/libxlsxwriter/src/app.c \
  34. library/libxlsxwriter/src/chart.c \
  35. library/libxlsxwriter/src/content_types.c \
  36. library/libxlsxwriter/src/core.c \
  37. library/libxlsxwriter/src/custom.c \
  38. library/libxlsxwriter/src/drawing.c \
  39. library/libxlsxwriter/src/format.c \
  40. library/libxlsxwriter/src/hash_table.c \
  41. library/libxlsxwriter/src/packager.c \
  42. library/libxlsxwriter/src/relationships.c \
  43. library/libxlsxwriter/src/shared_strings.c \
  44. library/libxlsxwriter/src/styles.c \
  45. library/libxlsxwriter/src/theme.c \
  46. library/libxlsxwriter/src/utility.c \
  47. library/libxlsxwriter/src/workbook.c \
  48. library/libxlsxwriter/src/worksheet.c \
  49. library/libxlsxwriter/src/xmlwriter.c \
  50. "
  51. libexpat="
  52. library/libexpat/expat/lib/loadlibrary.c \
  53. library/libexpat/expat/lib/xmlparse.c \
  54. library/libexpat/expat/lib/xmlrole.c \
  55. library/libexpat/expat/lib/xmltok.c \
  56. library/libexpat/expat/lib/xmltok_impl.c \
  57. library/libexpat/expat/lib/xmltok_ns.c \
  58. "
  59. libxlsxio="
  60. library/libxlsxio/lib/xlsxio_read.c \
  61. library/libxlsxio/lib/xlsxio_read_sharedstrings.c \
  62. "
  63. AC_MSG_CHECKING([Check libxlsxwriter library])
  64. if test "$PHP_LIBXLSXWRITER" != "no"; then
  65. for i in $PHP_LIBXLSXWRITER /usr/local /usr; do
  66. if test -r $i/include/xlsxwriter.h; then
  67. XLSXWRITER_DIR=$i
  68. AC_MSG_RESULT([found in $i])
  69. break
  70. fi
  71. done
  72. if test -z "$XLSXWRITER_DIR"; then
  73. AC_MSG_ERROR([libxlsxwriter library not found])
  74. else
  75. PHP_ADD_INCLUDE($XLSXWRITER_DIR/include)
  76. PHP_CHECK_LIBRARY(xlsxwriter, worksheet_write_string,
  77. [
  78. PHP_ADD_LIBRARY_WITH_PATH(xlsxwriter, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD)
  79. ],[
  80. AC_MSG_ERROR([Wrong libxlsxwriter version or library not found])
  81. ],[
  82. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  83. ])
  84. PHP_CHECK_LIBRARY(xlsxwriter, lxw_version,
  85. [
  86. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  87. ],[
  88. ],[
  89. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  90. ])
  91. PHP_CHECK_LIBRARY(xlsxwriter, lxw_chartsheet_new,
  92. [
  93. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  94. ],[
  95. ],[
  96. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  97. ])
  98. PHP_CHECK_LIBRARY(xlsxwriter, workbook_add_vba_project,
  99. [
  100. AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
  101. ],[
  102. ],[
  103. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  104. ])
  105. PHP_CHECK_LIBRARY(xlsxwriter, lxw_fopen,
  106. [
  107. AC_DEFINE(HAVE_LXW_OPEN, 1, [ lxw_fopen available in 0.8.8 ])
  108. ],[
  109. ],[
  110. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  111. ])
  112. fi
  113. AC_DEFINE(HAVE_LIBXLSXWRITER, 1, [ use system libxlsxwriter ])
  114. else
  115. AC_MSG_RESULT([use the bundled library])
  116. xls_writer_sources="$xls_writer_sources $libxlsxwriter_sources"
  117. PHP_ADD_INCLUDE([$srcdir/library/libxlsxwriter/include])
  118. XLSXWRITER_VERSION=`$EGREP "define LXW_VERSION" $srcdir/library/include/libxlsxwriter/xlsxwriter.h | $SED -e 's/[[^0-9\.]]//g'`
  119. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 709; then
  120. AC_DEFINE(HAVE_LXW_VERSION, 1, [ lxw_version available in 0.7.9 ])
  121. fi
  122. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 800; then
  123. AC_DEFINE(HAVE_LXW_CHARTSHEET_NEW, 1, [ lxw_chartsheet_new available in 0.8.0 ])
  124. fi
  125. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 807; then
  126. AC_DEFINE(HAVE_WORKBOOK_ADD_VBA_PROJECT, 1, [ workbook_add_vba_project available in 0.8.7 ])
  127. fi
  128. if test `echo $XLSXWRITER_VERSION | $SED -e 's/[[^0-9]]/ /g' | $AWK '{print $1*10000 + $2*100 + $3}'` -ge 808; then
  129. AC_DEFINE(HAVE_LXW_OPEN, 1, [ lxw_fopen available in 0.8.8 ])
  130. fi
  131. dnl see library/CMakeLists.txt
  132. LIBOPT="-DNOCRYPT -DNOUNCRYPT"
  133. fi
  134. if test "$PHP_READER" = "yes"; then
  135. AC_MSG_CHECKING([Check libxlsxwriter library])
  136. if test "$PHP_LIBXLSXIO" != "no"; then
  137. for i in $PHP_LIBXLSXIO /usr/local /usr; do
  138. if test -r $i/include/xlsxio_read.h; then
  139. XLSXIO_DIR=$i
  140. AC_MSG_RESULT([found in $i])
  141. break
  142. fi
  143. done
  144. if test -z "$XLSXIO_DIR"; then
  145. AC_MSG_ERROR([libxlsxio library not found])
  146. else
  147. PHP_ADD_INCLUDE($XLSXIO_DIR/include)
  148. PHP_CHECK_LIBRARY(xlsxio_read, xlsxioread_sheet_open,
  149. [
  150. PHP_ADD_LIBRARY_WITH_PATH(xlsxio_read, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD)
  151. ],[
  152. AC_MSG_ERROR([Wrong libxlsxio version or library not found])
  153. ],[
  154. -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm
  155. ])
  156. fi
  157. AC_DEFINE(HAVE_LIBXLSXIO, 1, [ use system libxlsxwriter ])
  158. else
  159. AC_MSG_RESULT([use the bundled library])
  160. xls_writer_sources="$xls_writer_sources $libexpat"
  161. PHP_ADD_INCLUDE([$srcdir/library/libexpat/expat/lib])
  162. PHP_ADD_BUILD_DIR([$abs_builddir/library/libexpat/expat/lib])
  163. LIBOPT="$LIBOPT -DXML_POOR_ENTROPY"
  164. xls_writer_sources="$xls_writer_sources $libxlsxio"
  165. PHP_ADD_INCLUDE([$srcdir/library/libxlsxio/include])
  166. PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxio/lib])
  167. LIBOPT="$LIBOPT -DUSE_MINIZIP"
  168. fi
  169. xls_writer_sources="$xls_writer_sources $xls_read_sources"
  170. AC_DEFINE(ENABLE_READER, 1, [enable reader])
  171. fi
  172. if test "$PHP_LIBXLSXIO" = "no" || test "$PHP_LIBXLSXWRITER" = "no"; then
  173. xls_writer_sources="$xls_writer_sources $minizip_sources"
  174. fi
  175. if test -z "$PHP_DEBUG"; then
  176. AC_ARG_ENABLE(debug, [--enable-debug compile with debugging system], [PHP_DEBUG=$enableval],[PHP_DEBUG=no])
  177. fi
  178. PHP_SUBST(XLSWRITER_SHARED_LIBADD)
  179. PHP_NEW_EXTENSION(xlswriter, $xls_writer_sources, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 $LIBOPT)
  180. PHP_ADD_INCLUDE([$srcdir])
  181. PHP_ADD_INCLUDE([$srcdir/include])
  182. PHP_ADD_BUILD_DIR([$abs_builddir/kernel])
  183. PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/src])
  184. PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/third_party/minizip])
  185. PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxwriter/third_party/tmpfileplus])
  186. PHP_ADD_BUILD_DIR([$abs_builddir/library/libexpat/expat/lib])
  187. PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxio/lib])
  188. fi