Return to config.m4 CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / sqlite |
1.1 ! misho 1: dnl $Id: config.m4 311041 2011-05-15 05:49:34Z rasmus $ ! 2: dnl config.m4 for extension sqlite ! 3: dnl vim:et:ts=2:sw=2 ! 4: ! 5: PHP_ARG_WITH(sqlite, for sqlite support, ! 6: [ --without-sqlite=DIR Do not include sqlite support. DIR is the sqlite base ! 7: install directory [BUNDLED]], yes) ! 8: ! 9: PHP_ARG_ENABLE(sqlite-utf8, whether to enable UTF-8 support in sqlite (default: ISO-8859-1), ! 10: [ --enable-sqlite-utf8 SQLite: Enable UTF-8 support for SQLite], no, no) ! 11: ! 12: ! 13: ! 14: dnl ! 15: dnl PHP_PROG_LEMON ! 16: dnl ! 17: dnl Search for lemon binary and check its version ! 18: dnl ! 19: AC_DEFUN([PHP_PROG_LEMON],[ ! 20: # we only support certain lemon versions ! 21: lemon_version_list="1.0" ! 22: ! 23: AC_CHECK_PROG(LEMON, lemon, lemon) ! 24: if test "$LEMON"; then ! 25: AC_CACHE_CHECK([for lemon version], php_cv_lemon_version, [ ! 26: lemon_version=`$LEMON -x 2>/dev/null | $SED -e 's/^.* //'` ! 27: php_cv_lemon_version=invalid ! 28: for lemon_check_version in $lemon_version_list; do ! 29: if test "$lemon_version" = "$lemon_check_version"; then ! 30: php_cv_lemon_version="$lemon_check_version (ok)" ! 31: fi ! 32: done ! 33: ]) ! 34: else ! 35: lemon_version=none ! 36: fi ! 37: case $php_cv_lemon_version in ! 38: ""|invalid[)] ! 39: lemon_msg="lemon versions supported for regeneration of libsqlite parsers: $lemon_version_list (found: $lemon_version)." ! 40: AC_MSG_WARN([$lemon_msg]) ! 41: LEMON="exit 0;" ! 42: ;; ! 43: esac ! 44: PHP_SUBST(LEMON) ! 45: ]) ! 46: ! 47: ! 48: if test "$PHP_SQLITE" != "no"; then ! 49: if test "$PHP_PDO" != "no"; then ! 50: PHP_CHECK_PDO_INCLUDES([], [AC_MSG_WARN([Cannot find php_pdo_driver.h.])]) ! 51: if test -n "$pdo_inc_path"; then ! 52: AC_DEFINE([PHP_SQLITE2_HAVE_PDO], [1], [Have PDO]) ! 53: pdo_inc_path="-I$pdo_inc_path" ! 54: fi ! 55: fi ! 56: ! 57: if test "$PHP_SQLITE" != "yes"; then ! 58: SEARCH_PATH="/usr/local /usr" ! 59: SEARCH_FOR="/include/sqlite.h" ! 60: if test -r $PHP_SQLITE/; then # path given as parameter ! 61: SQLITE_DIR=$PHP_SQLITE ! 62: else # search default path list ! 63: AC_MSG_CHECKING([for sqlite files in default path]) ! 64: for i in $SEARCH_PATH ; do ! 65: if test -r $i/$SEARCH_FOR; then ! 66: SQLITE_DIR=$i ! 67: AC_MSG_RESULT(found in $i) ! 68: fi ! 69: done ! 70: fi ! 71: ! 72: if test -z "$SQLITE_DIR"; then ! 73: AC_MSG_RESULT([not found]) ! 74: AC_MSG_ERROR([Please reinstall the sqlite distribution from http://www.sqlite.org]) ! 75: fi ! 76: ! 77: PHP_CHECK_LIBRARY(sqlite, sqlite_open, [ ! 78: PHP_ADD_LIBRARY_WITH_PATH(sqlite, $SQLITE_DIR/$PHP_LIBDIR, SQLITE_SHARED_LIBADD) ! 79: PHP_ADD_INCLUDE($SQLITE_DIR/include) ! 80: ],[ ! 81: AC_MSG_ERROR([wrong sqlite lib version or lib not found]) ! 82: ],[ ! 83: -L$SQLITE_DIR/$PHP_LIBDIR -lm ! 84: ]) ! 85: SQLITE_MODULE_TYPE=external ! 86: PHP_SQLITE_CFLAGS=$pdo_inc_path ! 87: sqlite_extra_sources="libsqlite/src/encode.c" ! 88: else ! 89: # use bundled library ! 90: PHP_PROG_LEMON ! 91: SQLITE_MODULE_TYPE=builtin ! 92: PHP_SQLITE_CFLAGS="-I@ext_srcdir@/libsqlite/src -I@ext_builddir@/libsqlite/src $pdo_inc_path" ! 93: sqlite_extra_sources="libsqlite/src/opcodes.c \ ! 94: libsqlite/src/parse.c libsqlite/src/encode.c \ ! 95: libsqlite/src/auth.c libsqlite/src/btree.c libsqlite/src/build.c \ ! 96: libsqlite/src/delete.c libsqlite/src/expr.c libsqlite/src/func.c \ ! 97: libsqlite/src/hash.c libsqlite/src/insert.c libsqlite/src/main.c \ ! 98: libsqlite/src/os.c libsqlite/src/pager.c \ ! 99: libsqlite/src/printf.c libsqlite/src/random.c \ ! 100: libsqlite/src/select.c libsqlite/src/table.c libsqlite/src/tokenize.c \ ! 101: libsqlite/src/update.c libsqlite/src/util.c libsqlite/src/vdbe.c \ ! 102: libsqlite/src/attach.c libsqlite/src/btree_rb.c libsqlite/src/pragma.c \ ! 103: libsqlite/src/vacuum.c libsqlite/src/copy.c \ ! 104: libsqlite/src/vdbeaux.c libsqlite/src/date.c \ ! 105: libsqlite/src/where.c libsqlite/src/trigger.c" ! 106: fi ! 107: dnl ! 108: dnl Common for both bundled/external ! 109: dnl ! 110: sqlite_sources="sqlite.c sess_sqlite.c pdo_sqlite2.c $sqlite_extra_sources" ! 111: PHP_NEW_EXTENSION(sqlite, $sqlite_sources, $ext_shared,,$PHP_SQLITE_CFLAGS) ! 112: PHP_ADD_EXTENSION_DEP(sqlite, spl, true) ! 113: PHP_ADD_EXTENSION_DEP(sqlite, pdo, true) ! 114: ! 115: PHP_ADD_MAKEFILE_FRAGMENT ! 116: PHP_SUBST(SQLITE_SHARED_LIBADD) ! 117: PHP_INSTALL_HEADERS([$ext_builddir/libsqlite/src/sqlite.h]) ! 118: ! 119: if test "$SQLITE_MODULE_TYPE" = "builtin"; then ! 120: PHP_ADD_BUILD_DIR($ext_builddir/libsqlite/src, 1) ! 121: AC_CHECK_SIZEOF(char *, 4) ! 122: AC_DEFINE(SQLITE_PTR_SZ, SIZEOF_CHAR_P, [Size of a pointer]) ! 123: dnl use latin 1 for SQLite older than 2.8.9; the utf-8 handling ! 124: dnl in funcs.c uses assert(), which is a bit silly and something ! 125: dnl we want to avoid. This assert() was removed in SQLite 2.8.9. ! 126: if test "$PHP_SQLITE_UTF8" = "yes"; then ! 127: SQLITE_ENCODING="UTF8" ! 128: AC_DEFINE(SQLITE_UTF8, 1, [ ]) ! 129: else ! 130: SQLITE_ENCODING="ISO8859" ! 131: fi ! 132: PHP_SUBST(SQLITE_ENCODING) ! 133: ! 134: SQLITE_VERSION=`cat $ext_srcdir/libsqlite/VERSION` ! 135: PHP_SUBST(SQLITE_VERSION) ! 136: ! 137: sed -e s/--VERS--/$SQLITE_VERSION/ -e s/--ENCODING--/$SQLITE_ENCODING/ $ext_srcdir/libsqlite/src/sqlite.h.in > $ext_builddir/libsqlite/src/sqlite.h ! 138: ! 139: if test "$ext_shared" = "no" || test "$ext_srcdir" != "$abs_srcdir"; then ! 140: echo '#include <php_config.h>' > $ext_builddir/libsqlite/src/config.h ! 141: else ! 142: echo "#include \"$abs_builddir/config.h\"" > $ext_builddir/libsqlite/src/config.h ! 143: fi ! 144: ! 145: cat >> $ext_builddir/libsqlite/src/config.h <<EOF ! 146: #if ZTS ! 147: # define THREADSAFE 1 ! 148: #endif ! 149: #if !ZEND_DEBUG ! 150: # define NDEBUG ! 151: #endif ! 152: EOF ! 153: fi ! 154: ! 155: AC_CHECK_FUNCS(usleep nanosleep) ! 156: AC_CHECK_HEADERS(time.h) ! 157: fi