From 397bedcc7c3545510a22b7db8dc6444e0a05b085 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Wed, 16 Nov 2016 10:45:59 +0100 Subject: [PATCH] Fixed bug #73512 Fails to find firebird headers - use fb_config output instead of relying on hardoded path --- NEWS | 4 ++++ ext/interbase/config.m4 | 55 ++++++++++++++++++++++++++++---------------- ext/pdo_firebird/config.m4 | 57 ++++++++++++++++++++++++++++------------------ 3 files changed, 74 insertions(+), 42 deletions(-) diff --git a/ext/interbase/config.m4 b/ext/interbase/config.m4 index ace3047..5b4cde5 100644 --- a/ext/interbase/config.m4 +++ b/ext/interbase/config.m4 @@ -3,39 +3,54 @@ PHP_ARG_WITH(interbase,for Firebird support, install directory [/opt/firebird]]) if test "$PHP_INTERBASE" != "no"; then - if test "$PHP_INTERBASE" = "yes"; then - IBASE_INCDIR=/opt/firebird/include - IBASE_LIBDIR=/opt/firebird/lib + + AC_PATH_PROG(FB_CONFIG, fb_config, no) + + if test -x "$FB_CONFIG" && test "$PHP_INTERBASE" = "yes"; then + AC_MSG_CHECKING(for libfbconfig) + FB_CFLAGS=`$FB_CONFIG --cflags` + FB_LIBDIR=`$FB_CONFIG --libs` + FB_VERSION=`$FB_CONFIG --version` + AC_MSG_RESULT(version $FB_VERSION) + PHP_EVAL_LIBLINE($FB_LIBDIR, INTERBASE_SHARED_LIBADD) + PHP_EVAL_INCLINE($FB_CFLAGS) + else - IBASE_INCDIR=$PHP_INTERBASE/include - IBASE_LIBDIR=$PHP_INTERBASE/$PHP_LIBDIR - fi + if test "$PHP_INTERBASE" = "yes"; then + IBASE_INCDIR=/opt/firebird/include + IBASE_LIBDIR=/opt/firebird/lib + else + IBASE_INCDIR=$PHP_INTERBASE/include + IBASE_LIBDIR=$PHP_INTERBASE/$PHP_LIBDIR + fi - PHP_CHECK_LIBRARY(fbclient, isc_detach_database, - [ - IBASE_LIBNAME=fbclient - ], [ - PHP_CHECK_LIBRARY(gds, isc_detach_database, + PHP_CHECK_LIBRARY(fbclient, isc_detach_database, [ - IBASE_LIBNAME=gds + IBASE_LIBNAME=fbclient ], [ - PHP_CHECK_LIBRARY(ib_util, isc_detach_database, + PHP_CHECK_LIBRARY(gds, isc_detach_database, [ - IBASE_LIBNAME=ib_util + IBASE_LIBNAME=gds ], [ - AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.]) + PHP_CHECK_LIBRARY(ib_util, isc_detach_database, + [ + IBASE_LIBNAME=ib_util + ], [ + AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.]) + ], [ + -L$IBASE_LIBDIR + ]) ], [ -L$IBASE_LIBDIR ]) ], [ -L$IBASE_LIBDIR ]) - ], [ - -L$IBASE_LIBDIR - ]) - PHP_ADD_LIBRARY_WITH_PATH($IBASE_LIBNAME, $IBASE_LIBDIR, INTERBASE_SHARED_LIBADD) - PHP_ADD_INCLUDE($IBASE_INCDIR) + PHP_ADD_LIBRARY_WITH_PATH($IBASE_LIBNAME, $IBASE_LIBDIR, INTERBASE_SHARED_LIBADD) + PHP_ADD_INCLUDE($IBASE_INCDIR) + fi + AC_DEFINE(HAVE_IBASE,1,[ ]) PHP_NEW_EXTENSION(interbase, interbase.c ibase_query.c ibase_service.c ibase_events.c ibase_blobs.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1) PHP_SUBST(INTERBASE_SHARED_LIBADD) diff --git a/ext/pdo_firebird/config.m4 b/ext/pdo_firebird/config.m4 index f9188a0..e6362cd 100644 --- a/ext/pdo_firebird/config.m4 +++ b/ext/pdo_firebird/config.m4 @@ -8,43 +8,56 @@ if test "$PHP_PDO_FIREBIRD" != "no"; then AC_MSG_ERROR([PDO is not enabled! Add --enable-pdo to your configure line.]) fi - if test "$PHP_PDO_FIREBIRD" = "yes"; then - FIREBIRD_INCDIR= - FIREBIRD_LIBDIR= - FIREBIRD_LIBDIR_FLAG= + AC_PATH_PROG(FB_CONFIG, fb_config, no) + + if test -x "$FB_CONFIG" && test "$PHP_PDO_FIREBIRD" = "yes"; then + AC_MSG_CHECKING(for libfbconfig) + FB_CFLAGS=`$FB_CONFIG --cflags` + FB_LIBDIR=`$FB_CONFIG --libs` + FB_VERSION=`$FB_CONFIG --version` + AC_MSG_RESULT(version $FB_VERSION) + PHP_EVAL_LIBLINE($FB_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD) + PHP_EVAL_INCLINE($FB_CFLAGS) + else - FIREBIRD_INCDIR=$PHP_PDO_FIREBIRD/include - FIREBIRD_LIBDIR=$PHP_PDO_FIREBIRD/$PHP_LIBDIR - FIREBIRD_LIBDIR_FLAG=-L$FIREBIRD_LIBDIR - fi + if test "$PHP_PDO_FIREBIRD" = "yes"; then + FIREBIRD_INCDIR= + FIREBIRD_LIBDIR= + FIREBIRD_LIBDIR_FLAG= + else + FIREBIRD_INCDIR=$PHP_PDO_FIREBIRD/include + FIREBIRD_LIBDIR=$PHP_PDO_FIREBIRD/$PHP_LIBDIR + FIREBIRD_LIBDIR_FLAG=-L$FIREBIRD_LIBDIR + fi - PHP_CHECK_LIBRARY(fbclient, isc_detach_database, - [ - FIREBIRD_LIBNAME=fbclient - ], [ - PHP_CHECK_LIBRARY(gds, isc_detach_database, + PHP_CHECK_LIBRARY(fbclient, isc_detach_database, [ - FIREBIRD_LIBNAME=gds + FIREBIRD_LIBNAME=fbclient ], [ - PHP_CHECK_LIBRARY(ib_util, isc_detach_database, + PHP_CHECK_LIBRARY(gds, isc_detach_database, [ - FIREBIRD_LIBNAME=ib_util + FIREBIRD_LIBNAME=gds ], [ - AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.]) + PHP_CHECK_LIBRARY(ib_util, isc_detach_database, + [ + FIREBIRD_LIBNAME=ib_util + ], [ + AC_MSG_ERROR([libfbclient, libgds or libib_util not found! Check config.log for more information.]) + ], [ + $FIREBIRD_LIBDIR_FLAG + ]) ], [ $FIREBIRD_LIBDIR_FLAG ]) ], [ $FIREBIRD_LIBDIR_FLAG ]) - ], [ - $FIREBIRD_LIBDIR_FLAG - ]) + PHP_ADD_LIBRARY_WITH_PATH($FIREBIRD_LIBNAME, $FIREBIRD_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD) + PHP_ADD_INCLUDE($FIREBIRD_INCDIR) + fi PHP_CHECK_PDO_INCLUDES - PHP_ADD_LIBRARY_WITH_PATH($FIREBIRD_LIBNAME, $FIREBIRD_LIBDIR, PDO_FIREBIRD_SHARED_LIBADD) - PHP_ADD_INCLUDE($FIREBIRD_INCDIR) AC_DEFINE(HAVE_PDO_FIREBIRD,1,[ ]) PHP_NEW_EXTENSION(pdo_firebird, pdo_firebird.c firebird_driver.c firebird_statement.c, $ext_shared,,-I$pdo_cv_inc_path) PHP_SUBST(PDO_FIREBIRD_SHARED_LIBADD) -- 2.1.4