From 18943c345dc7661a26fa119b65613e5f8a44e662 Mon Sep 17 00:00:00 2001 From: foobar Date: Fri, 14 Jun 2002 00:01:49 +0000 Subject: - Fixed bug #15803 (and propably others related too) . Changed the compile so that it doesn't "pollute" the INCLUDES anymore and thus cause trouble with other extensions which might use the same header files. (e.g. ODBC) . Some fixes for Informix compile problems (with the new build system) . Removed unnecessary stub.c file. --- ext/informix/Makefile.frag | 4 +- ext/informix/config.m4 | 16 +++---- ext/informix/ifx.ec | 1 + ext/informix/php_informix.h | 56 ----------------------- ext/informix/php_informix_includes.h | 87 ++++++++++++++++++++++++++++++++++++ ext/informix/stub.c | 0 6 files changed, 98 insertions(+), 66 deletions(-) create mode 100644 ext/informix/php_informix_includes.h delete mode 100644 ext/informix/stub.c diff --git a/ext/informix/Makefile.frag b/ext/informix/Makefile.frag index 815a9e2c3c..e95934fc3f 100644 --- a/ext/informix/Makefile.frag +++ b/ext/informix/Makefile.frag @@ -1,5 +1,5 @@ -$(builddir)/ifx.c: $(srcdir)/ifx.ec $(builddir)/libphpifx.a +$(srcdir)/ifx.c: $(srcdir)/ifx.ec $(builddir)/libphpifx.a (if test -d $(INFORMIXDIR); then \ THREADLIB=POSIX $(INFORMIXDIR)/bin/esql -e $(IFX_ESQL_FLAGS) $(srcdir)/ifx.ec; mv ifx.c $@; \ else \ @@ -7,4 +7,4 @@ $(builddir)/ifx.c: $(srcdir)/ifx.ec $(builddir)/libphpifx.a fi) $(builddir)/libphpifx.a: - $(LINK) $(IFX_LIBOBJS) + $(LIBTOOL) --mode=link $(CC) $(IFX_LIBOBJS) -o $@ diff --git a/ext/informix/config.m4 b/ext/informix/config.m4 index 07aac3a010..d2fc08666d 100644 --- a/ext/informix/config.m4 +++ b/ext/informix/config.m4 @@ -8,23 +8,19 @@ PHP_ARG_WITH(informix,for Informix support, if test "$PHP_INFORMIX" != "no"; then - PHP_NEW_EXTENSION(informix, ifx.c, $ext_shared) - PHP_ADD_MAKEFILE_FRAGMENT - PHP_SUBST(INFORMIX_SHARED_LIBADD) - if test "$INFORMIXDIR" = ""; then AC_MSG_ERROR([INFORMIXDIR environment variable is not set.]) fi if test "$PHP_INFORMIX" = "yes"; then - PHP_ADD_INCLUDE($INFORMIXDIR/incl/esql) + IFX_INCLUDE=-I$INFORMIXDIR/incl/esql PHP_ADD_LIBPATH($INFORMIXDIR/lib, INFORMIX_SHARED_LIBADD) PHP_ADD_LIBPATH($INFORMIXDIR/lib/esql, INFORMIX_SHARED_LIBADD) else if test "$PHP_INFORMIX" != "$INFORMIXDIR"; then AC_MSG_ERROR([Specified Informix base install directory is different than your INFORMIXDIR environment variable.]) fi - PHP_ADD_INCLUDE($PHP_INFORMIX/incl/esql) + IFX_INCLUDE=-I$PHP_INFORMIX/incl/esql PHP_ADD_LIBPATH($PHP_INFORMIX/lib, INFORMIX_SHARED_LIBADD) PHP_ADD_LIBPATH($PHP_INFORMIX/lib/esql, INFORMIX_SHARED_LIBADD) fi @@ -58,7 +54,9 @@ if test "$PHP_INFORMIX" != "no"; then else IFX_ESQL_FLAGS="$IFX_ESQL_FLAGS -EUHAVE_IFX_IUS" fi - PHP_SUBST(IFX_ESQL_FLAGS) + + PHP_NEW_EXTENSION(informix, ifx.c, $ext_shared,, $IFX_INCLUDE) + PHP_ADD_MAKEFILE_FRAGMENT for i in $IFX_LIBS; do case "$i" in @@ -90,7 +88,9 @@ if test "$PHP_INFORMIX" != "no"; then esac done - AC_DEFINE(HAVE_IFX,1,[ ]) + PHP_SUBST(INFORMIX_SHARED_LIBADD) PHP_SUBST(INFORMIXDIR) PHP_SUBST(IFX_LIBOBJS) + PHP_SUBST(IFX_ESQL_FLAGS) + AC_DEFINE(HAVE_IFX,1,[ ]) fi diff --git a/ext/informix/ifx.ec b/ext/informix/ifx.ec index b5402fa071..c68407d444 100644 --- a/ext/informix/ifx.ec +++ b/ext/informix/ifx.ec @@ -41,6 +41,7 @@ #include "ext/standard/php_standard.h" #include "php_open_temporary_file.h" #include "php_informix.h" +#include "php_informix_includes.h" #include "php_globals.h" #include "php_ini.h" diff --git a/ext/informix/php_informix.h b/ext/informix/php_informix.h index 53fed68427..6956da5e39 100644 --- a/ext/informix/php_informix.h +++ b/ext/informix/php_informix.h @@ -43,12 +43,6 @@ extern zend_module_entry ifx_module_entry; #define ifx_module_ptr &ifx_module_entry -#undef TYPEMAX -#undef CHAR - -#include "locator.h" -#include "sqltypes.h" - /* user functions */ PHP_MINIT_FUNCTION(ifx); PHP_RINIT_FUNCTION(ifx); @@ -123,56 +117,6 @@ ZEND_END_MODULE_GLOBALS(ifx) # define IFXG(v) (ifx_globals.v) #endif -#define MAX_RESID 64 -#define BLOBINFILE 0 /* 0=in memory, 1=in file */ - -/* query result set data */ -typedef struct ifx_res { - char connecid[16]; - char cursorid[16]; - char descrpid[16]; - char statemid[16]; - int isscroll; - int ishold; - int iscursory; - int paramquery; - int numcols; - int rowid; - int affected_rows; - long sqlerrd[6]; - int res_id[MAX_RESID]; -} IFX_RES; - -typedef struct _IFX_IDRES { - int type; - union { - struct { - int mode; - loc_t blob_data; - } BLOBRES; - - struct { - char *char_data; - int len; - } CHARRES; - -#if HAVE_IFX_IUS - struct { - ifx_lo_t slob_data; - ifx_lo_create_spec_t *createspec; - int lofd; - } SLOBRES; -#endif - } DATARES; -} IFX_IDRES; - -#define BLOB DATARES.BLOBRES -#define CHAR DATARES.CHARRES - -#if HAVE_IFX_IUS -#define SLOB DATARES.SLOBRES -#endif - #else /* not HAVE_IFX */ #define ifx_module_ptr NULL #endif diff --git a/ext/informix/php_informix_includes.h b/ext/informix/php_informix_includes.h new file mode 100644 index 0000000000..5c1d9aae85 --- /dev/null +++ b/ext/informix/php_informix_includes.h @@ -0,0 +1,87 @@ +/* + +----------------------------------------------------------------------+ + | PHP Version 4 | + +----------------------------------------------------------------------+ + | Copyright (c) 1997-2002 The PHP Group | + +----------------------------------------------------------------------+ + | This source file is subject to version 2.02 of the PHP license, | + | that is bundled with this package in the file LICENSE, and is | + | available at through the world-wide-web at | + | http://www.php.net/license/2_02.txt. | + | If you did not receive a copy of the PHP license and are unable to | + | obtain it through the world-wide-web, please send a note to | + | license@php.net so we can mail you a copy immediately. | + +----------------------------------------------------------------------+ + | Authors: Danny Heijl , initial cut (ODS 7) | + | Christian Cartus , blobs, and IUS 9 | + | Jouni Ahto , configuration stuff | + | based on mysql code by: Zeev Suraski | + +----------------------------------------------------------------------+ +*/ + +/* $Id$ */ + +#ifndef PHP_INFORMIX_INCLUDES_H +#define PHP_INFORMIX_INCLUDES_H + +#if HAVE_IFX /* with Informix */ + +#undef TYPEMAX +#undef CHAR + +#include "locator.h" +#include "sqltypes.h" + +#define MAX_RESID 64 +#define BLOBINFILE 0 /* 0=in memory, 1=in file */ + +/* query result set data */ +typedef struct ifx_res { + char connecid[16]; + char cursorid[16]; + char descrpid[16]; + char statemid[16]; + int isscroll; + int ishold; + int iscursory; + int paramquery; + int numcols; + int rowid; + int affected_rows; + long sqlerrd[6]; + int res_id[MAX_RESID]; +} IFX_RES; + +typedef struct _IFX_IDRES { + int type; + union { + struct { + int mode; + loc_t blob_data; + } BLOBRES; + + struct { + char *char_data; + int len; + } CHARRES; + +#if HAVE_IFX_IUS + struct { + ifx_lo_t slob_data; + ifx_lo_create_spec_t *createspec; + int lofd; + } SLOBRES; +#endif + } DATARES; +} IFX_IDRES; + +#define BLOB DATARES.BLOBRES +#define CHAR DATARES.CHARRES + +#if HAVE_IFX_IUS +#define SLOB DATARES.SLOBRES +#endif + +#endif /* HAVE_IFX */ + +#endif /* PHP_INFORMIX_INCLUDES_H */ diff --git a/ext/informix/stub.c b/ext/informix/stub.c deleted file mode 100644 index e69de29bb2..0000000000 -- cgit v1.2.1