summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2002-06-14 00:01:49 +0000
committerfoobar <sniper@php.net>2002-06-14 00:01:49 +0000
commit18943c345dc7661a26fa119b65613e5f8a44e662 (patch)
tree24304002a4f8dc4620a4d7f27f477907abfb07bd
parentfd3b919abfeae7491950eb51f417b3b2ecb6bbe1 (diff)
downloadphp-git-18943c345dc7661a26fa119b65613e5f8a44e662.tar.gz
- 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.
-rw-r--r--ext/informix/Makefile.frag4
-rw-r--r--ext/informix/config.m416
-rw-r--r--ext/informix/ifx.ec1
-rw-r--r--ext/informix/php_informix.h56
-rw-r--r--ext/informix/php_informix_includes.h87
-rw-r--r--ext/informix/stub.c0
6 files changed, 98 insertions, 66 deletions
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 <Danny.Heijl@cevi.be>, initial cut (ODS 7) |
+ | Christian Cartus <chc@idgruppe.de>, blobs, and IUS 9 |
+ | Jouni Ahto <jouni.ahto@exdec.fi>, configuration stuff |
+ | based on mysql code by: Zeev Suraski <zeev@php.net> |
+ +----------------------------------------------------------------------+
+*/
+
+/* $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
--- a/ext/informix/stub.c
+++ /dev/null