diff options
-rw-r--r-- | ext/sqlite/Makefile.frag | 31 | ||||
-rw-r--r-- | ext/sqlite/config.m4 | 97 | ||||
-rw-r--r-- | ext/sqlite/package.xml | 47 |
3 files changed, 142 insertions, 33 deletions
diff --git a/ext/sqlite/Makefile.frag b/ext/sqlite/Makefile.frag new file mode 100644 index 0000000000..50859e0f5f --- /dev/null +++ b/ext/sqlite/Makefile.frag @@ -0,0 +1,31 @@ + +LEMON="@LEMON@" + +# sqlite has some generated source files; this specifies how to +# build them + +$(srcdir)/libsqlite/src/sqlite.h: $(srcdir)/libsqlite/src/sqlite.h.in $(srcdir)/libsqlite/VERSION + $(SED) -e s/--VERS--/`cat $(srcdir)/libsqlite/VERSION`/ \ + -e s/--ENCODING--/$(SQLITE_ENCODING)/ \ + $(srcdir)/libsqlite/src/sqlite.h.in >$(srcdir)/libsqlite/src/sqlite.h + +# We avoid building these last three by bundling the generated versions +# in our release packages + +$(srcdir)/libsqlite/src/opcodes.c: $(srcdir)/libsqlite/src/vdbe.c + echo '/* Automatically generated file. Do not edit */' >$@ + echo 'char *sqliteOpcodeNames[] = { "???", ' >>$@ + grep '^case OP_' $< | \ + sed -e 's/^.*OP_/ "/' -e 's/:.*$$/", /' >>$@ + echo '};' >>$@ + +$(srcdir)/libsqlite/src/opcodes.h: $(srcdir)/libsqlite/src/vdbe.c + echo '/* Automatically generated file. Do not edit */' >$@ + grep '^case OP_' $< | \ + sed -e 's/://' | \ + awk '{printf "#define %-30s %3d\n", $$2, ++cnt}' >>$@ + +$(srcdir)/libsqlite/src/parse.c: $(srcdir)/libsqlite/src/parse.y + $(LEMON) $(srcdir)/libsqlite/src/parse.y + + diff --git a/ext/sqlite/config.m4 b/ext/sqlite/config.m4 index 05bb43d7da..74c742ad85 100644 --- a/ext/sqlite/config.m4 +++ b/ext/sqlite/config.m4 @@ -5,41 +5,76 @@ PHP_ARG_WITH(sqlite, for sqlite support, [ --with-sqlite Include sqlite support]) if test "$PHP_SQLITE" != "no"; 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 "$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]) - 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_ADD_INCLUDE($SQLITE_DIR/include) + PHP_ADD_INCLUDE($SQLITE_DIR/include) - LIBNAME=sqlite - LIBSYMBOL=sqlite_open + LIBNAME=sqlite + LIBSYMBOL=sqlite_open - PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, - [ - PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $SQLITE_DIR/lib, SQLITE_SHARED_LIBADD) - AC_DEFINE(HAVE_SQLITELIB,1,[ ]) - ],[ - AC_MSG_ERROR([wrong sqlite lib version or lib not found]) - ],[ - -L$SQLITE_DIR/lib -lm -ldl - ]) + PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, + [ + PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $SQLITE_DIR/lib, SQLITE_SHARED_LIBADD) + AC_DEFINE(HAVE_SQLITELIB,1,[ ]) + ],[ + AC_MSG_ERROR([wrong sqlite lib version or lib not found]) + ],[ + -L$SQLITE_DIR/lib -lm -ldl + ]) - PHP_SUBST(SQLITE_SHARED_LIBADD) + PHP_SUBST(SQLITE_SHARED_LIBADD) + PHP_NEW_EXTENSION(sqlite, sqlite.c, $ext_shared) + else + # use bundled library + 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/where.c libsqlite/src/trigger.c" + + PHP_NEW_EXTENSION(sqlite, sqlite.c $sources, $ext_shared,,-I@ext_srcdir@/libsqlite/src) + PHP_ADD_BUILD_DIR($ext_builddir/libsqlite) + PHP_ADD_BUILD_DIR($ext_builddir/libsqlite/src) + AC_CHECK_SIZEOF(char *,4) + AC_DEFINE(SQLITE_PTR_SZ, SIZEOF_CHAR_P, [Size of a pointer]) + AC_DEFINE(OS_UNIX, 1, [if this is unix]) + AC_DEFINE(OS_WIN, 0, [if this is windows]) + AC_CHECK_FUNCS(usleep) + dnl use latin 1 for now; the utf-8 handling in funcs.c uses assert(), + dnl which is a bit silly and something we want to avoid + SQLITE_ENCODING="iso8859" + dnl SQLITE_ENCODING="UTF-8" + dnl AC_DEFINE(SQLITE_UTF8,1,[if SQLite should use utf-8 encoding]) + AC_SUBST(SQLITE_ENCODING) + + AC_PATH_PROG(LEMON,lemon,no) + AC_SUBST(LEMON) + + PHP_ADD_MAKEFILE_FRAGMENT + fi - PHP_NEW_EXTENSION(sqlite, sqlite.c, $ext_shared) fi diff --git a/ext/sqlite/package.xml b/ext/sqlite/package.xml index d9516dd780..db9b456fc0 100644 --- a/ext/sqlite/package.xml +++ b/ext/sqlite/package.xml @@ -20,8 +20,8 @@ <license>PHP</license> <release> <state>beta</state> - <version>0.5</version> - <date>2003-04-17</date> + <version>0.6</version> + <date>2003-04-18</date> <notes> Initial release. Should be quite stable. @@ -30,11 +30,54 @@ <file role="src" name="config.m4"/> <file role="src" name="sqlite.c"/> <file role="src" name="php_sqlite.h"/> + <file role="src" name="Makefile.frag"/> <file role="doc" name="CREDITS"/> <file role="doc" name="README"/> <file role="doc" name="TODO"/> <file role="doc" name="sqlite.php"/> <file role="test" name="tests/001.phpt"/> + + <dir name="libsqlite"> + <file role="doc" name="README"/> + <file role="src" name="VERSION"/> + + <dir name="src"> + <file role="src" name="parse.c"/> + <file role="src" name="parse.y"/> + <file role="src" name="auth.c"/> + <file role="src" name="btree.c"/> + <file role="src" name="encode.c"/> + <file role="src" name="build.c"/> + <file role="src" name="delete.c"/> + <file role="src" name="expr.c"/> + <file role="src" name="func.c"/> + <file role="src" name="hash.c"/> + <file role="src" name="insert.c"/> + <file role="src" name="main.c"/> + <file role="src" name="os.c"/> + <file role="src" name="pager.c"/> + <file role="src" name="printf.c"/> + <file role="src" name="random.c"/> + <file role="src" name="select.c"/> + <file role="src" name="table.c"/> + <file role="src" name="tokenize.c"/> + <file role="src" name="update.c"/> + <file role="src" name="util.c"/> + <file role="src" name="vdbe.c"/> + <file role="src" name="where.c"/> + <file role="src" name="trigger.c"/> + + <file role="src" name="opcodes.h"/> + <file role="src" name="btree.h"/> + <file role="src" name="hash.h"/> + <file role="src" name="os.h"/> + <file role="src" name="pager.h"/> + <file role="src" name="parse.h"/> + <file role="src" name="sqliteInt.h"/> + <file role="src" name="vdbe.h"/> + </dir> + + </dir> </filelist> </release> </package> |