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