From 47350ba6e7cb7b92fda0ca3f8082247b109226f9 Mon Sep 17 00:00:00 2001 From: Peter Kokot Date: Thu, 9 May 2019 23:23:39 +0200 Subject: [PATCH] Use pkg-config for sqlite3 and pdo_sqlite Following other migrations to pkg-config usage for the *nix build system this migrates also sqlite3 and pdo_sqlite extensions. --- ext/pdo_sqlite/config.m4 | 61 ++++++++++++---------------------------- ext/sqlite3/config0.m4 | 54 +++++++++++------------------------ 2 files changed, 35 insertions(+), 80 deletions(-) diff --git a/ext/pdo_sqlite/config.m4 b/ext/pdo_sqlite/config.m4 index ad955947cf..32bc60fa9a 100644 --- a/ext/pdo_sqlite/config.m4 +++ b/ext/pdo_sqlite/config.m4 @@ -1,8 +1,7 @@ PHP_ARG_WITH([pdo-sqlite], [for sqlite 3 support for PDO], - [AS_HELP_STRING([[--without-pdo-sqlite[=DIR]]], - [PDO: sqlite 3 support. DIR is the sqlite base install directory - [BUNDLED]])], + [AS_HELP_STRING([--without-pdo-sqlite], + [PDO: sqlite 3 support.])], [$PHP_PDO]) if test "$PHP_PDO_SQLITE" != "no"; then @@ -28,56 +27,32 @@ if test "$PHP_PDO_SQLITE" != "no"; then AC_MSG_RESULT($pdo_cv_inc_path) ]) - php_pdo_sqlite_sources_core="pdo_sqlite.c sqlite_driver.c sqlite_statement.c" + PKG_CHECK_MODULES([SQLITE], [sqlite3 > 3.7.4]) - dnl you might want to change this - SEARCH_PATH="$PHP_PDO_SQLITE /usr/local /usr" - dnl you most likely want to change this - SEARCH_FOR="/include/sqlite3.h" - if test -r $PHP_PDO_SQLITE/$SEARCH_FOR; then - dnl path given as parameter - PDO_SQLITE_DIR=$PHP_PDO_SQLITE - else - dnl search default path list - AC_MSG_CHECKING([for sqlite3 files in default path]) - for i in $SEARCH_PATH ; do - if test -r $i/$SEARCH_FOR; then - PDO_SQLITE_DIR=$i - AC_MSG_RESULT(found in $i) - fi - done - fi - if test -z "$PDO_SQLITE_DIR"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([Please reinstall the sqlite3 distribution]) - fi - - PHP_ADD_INCLUDE($PDO_SQLITE_DIR/include) - - LIBNAME=sqlite3 - LIBSYMBOL=sqlite3_open_v2 - - PHP_CHECK_LIBRARY($LIBNAME,$LIBSYMBOL, + PHP_CHECK_LIBRARY(sqlite3, sqlite3_open_v2, [ - PHP_ADD_LIBRARY_WITH_PATH($LIBNAME, $PDO_SQLITE_DIR/$PHP_LIBDIR, PDO_SQLITE_SHARED_LIBADD) - AC_DEFINE(HAVE_PDO_SQLITELIB,1,[ ]) - ],[ - AC_MSG_ERROR([wrong sqlite lib version (< 3.5.0) or lib not found]) - ],[ - -L$PDO_SQLITE_DIR/$PHP_LIBDIR -lm + PHP_EVAL_INCLINE($SQLITE_CFLAGS) + PHP_EVAL_LIBLINE($SQLITE_LIBS, PDO_SQLITE_SHARED_LIBADD) + AC_DEFINE(HAVE_PDO_SQLITELIB, 1, [Define to 1 if you have the pdo_sqlite extension enabled.]) + ], [ + AC_MSG_ERROR([Please install SQLite 3.7.4 first or check libsqlite3 is present]) ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_key,[ - AC_DEFINE(HAVE_SQLITE3_KEY,1, [have commercial sqlite3 with crypto support]) + + PHP_CHECK_LIBRARY(sqlite3, sqlite3_key, [ + AC_DEFINE(HAVE_SQLITE3_KEY, 1, [have commercial sqlite3 with crypto support]) ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_close_v2,[ + + PHP_CHECK_LIBRARY(sqlite3, sqlite3_close_v2, [ AC_DEFINE(HAVE_SQLITE3_CLOSE_V2, 1, [have sqlite3_close_v2]) ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_column_table_name,[ + + PHP_CHECK_LIBRARY(sqlite3, sqlite3_column_table_name, [ AC_DEFINE(HAVE_SQLITE3_COLUMN_TABLE_NAME, 1, [have sqlite3_column_table_name]) ]) PHP_SUBST(PDO_SQLITE_SHARED_LIBADD) - PHP_NEW_EXTENSION(pdo_sqlite, $php_pdo_sqlite_sources_core, $ext_shared,,-I$pdo_cv_inc_path) + PHP_NEW_EXTENSION(pdo_sqlite, pdo_sqlite.c sqlite_driver.c sqlite_statement.c, + $ext_shared,,-I$pdo_cv_inc_path) dnl Solaris fix PHP_CHECK_LIBRARY(rt, fdatasync, [PHP_ADD_LIBRARY(rt,, PDO_SQLITE_SHARED_LIBADD)]) diff --git a/ext/sqlite3/config0.m4 b/ext/sqlite3/config0.m4 index 57f8884bfb..5fff973c4e 100644 --- a/ext/sqlite3/config0.m4 +++ b/ext/sqlite3/config0.m4 @@ -1,12 +1,10 @@ PHP_ARG_WITH([sqlite3], [whether to enable the SQLite3 extension], - [AS_HELP_STRING([[--without-sqlite3[=DIR]]], - [Do not include SQLite3 support. DIR is the prefix to SQLite3 installation - directory.])], + [AS_HELP_STRING([--without-sqlite3], + [Do not include SQLite3 support.])], [yes]) if test $PHP_SQLITE3 != "no"; then - PHP_SQLITE3_CFLAGS=" -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 " dnl when running phpize enable_maintainer_zts is not available if test -z "$enable_maintainer_zts"; then @@ -18,52 +16,34 @@ if test $PHP_SQLITE3 != "no"; then fi fi - AC_MSG_CHECKING([for sqlite3 files in default path]) - for i in $PHP_SQLITE3 /usr/local /usr; do - if test -r $i/include/sqlite3.h; then - SQLITE3_DIR=$i - AC_MSG_RESULT(found in $i) - break - fi - done - - if test -z "$SQLITE3_DIR"; then - AC_MSG_RESULT([not found]) - AC_MSG_ERROR([Please reinstall the sqlite distribution from http://www.sqlite.org]) - fi + PKG_CHECK_MODULES([SQLITE], [sqlite3 > 3.7.4]) - AC_MSG_CHECKING([for SQLite 3.7.4+]) - PHP_CHECK_LIBRARY(sqlite3, sqlite3_stmt_readonly, [ - AC_MSG_RESULT(found) - PHP_ADD_LIBRARY_WITH_PATH(sqlite3, $SQLITE3_DIR/$PHP_LIBDIR, SQLITE3_SHARED_LIBADD) - PHP_ADD_INCLUDE($SQLITE3_DIR/include) - ],[ - AC_MSG_RESULT([not found]) + PHP_CHECK_LIBRARY(sqlite3, sqlite3_stmt_readonly, + [ + PHP_EVAL_INCLINE($SQLITE_CFLAGS) + PHP_EVAL_LIBLINE($SQLITE_LIBS, SQLITE_SHARED_LIBADD) + AC_DEFINE(HAVE_SQLITE3, 1, [Define to 1 if you have the sqlite3 extension enabled.]) + ], [ AC_MSG_ERROR([Please install SQLite 3.7.4 first or check libsqlite3 is present]) - ],[ - -L$SQLITE3_DIR/$PHP_LIBDIR -lm ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_key,[ + PHP_CHECK_LIBRARY(sqlite3, sqlite3_key, [ AC_DEFINE(HAVE_SQLITE3_KEY, 1, [have commercial sqlite3 with crypto support]) ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_column_table_name,[ + + PHP_CHECK_LIBRARY(sqlite3, sqlite3_column_table_name, [ AC_DEFINE(SQLITE_ENABLE_COLUMN_METADATA, 1, [have sqlite3 with column metadata enabled]) ]) - PHP_CHECK_LIBRARY(sqlite3,sqlite3_errstr,[ + + PHP_CHECK_LIBRARY(sqlite3, sqlite3_errstr, [ AC_DEFINE(HAVE_SQLITE3_ERRSTR, 1, [have sqlite3_errstr function]) ]) PHP_CHECK_LIBRARY(sqlite3,sqlite3_load_extension, - [], - [AC_DEFINE(SQLITE_OMIT_LOAD_EXTENSION, 1, [have sqlite3 with extension support]) + [], + [AC_DEFINE(SQLITE_OMIT_LOAD_EXTENSION, 1, [have sqlite3 with extension support]) ]) - AC_DEFINE(HAVE_SQLITE3,1,[ ]) - - sqlite3_sources="sqlite3.c" - - PHP_NEW_EXTENSION(sqlite3, $sqlite3_sources, $ext_shared,,$PHP_SQLITE3_CFLAGS) - PHP_ADD_BUILD_DIR([$ext_builddir/libsqlite]) + PHP_NEW_EXTENSION(sqlite3, sqlite3.c, $ext_shared,,-DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_SUBST(SQLITE3_SHARED_LIBADD) fi -- 2.40.0