diff --git a/src/interfaces/ecpg/include/Makefile b/src/interfaces/ecpg/include/Makefile index 50d31dd8a8..d8f311e4c6 100644 --- a/src/interfaces/ecpg/include/Makefile +++ b/src/interfaces/ecpg/include/Makefile @@ -2,16 +2,22 @@ subdir = src/interfaces/ecpg/include top_builddir = ../../../.. include $(top_builddir)/src/Makefile.global +informix_esql_dir = $(pkgincludedir)/informix/esql + install: all installdirs install-headers .PHONY: install-headers -ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informix.h pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h datetime.h decimal.h pgtypes_interval.h sqltypes.h compatlib.h sqlda.h +ecpg_headers = ecpgerrno.h ecpglib.h ecpgtype.h sqlca.h sql3types.h ecpg_informix.h \ + pgtypes_error.h pgtypes_numeric.h pgtypes_timestamp.h pgtypes_date.h pgtypes_interval.h +informix_headers = datetime.h decimal.h sqltypes.h sqlda.h -install-headers: $(ecpg_headers) - for i in $^; do $(INSTALL_DATA) $$i $(DESTDIR)$(includedir); done +install-headers: $(ecpg_headers) $(informix_headers) + for i in $(ecpg_headers); do $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(includedir) || exit; done + for i in $(informix_headers); do $(INSTALL_DATA) $(srcdir)/$$i $(DESTDIR)$(informix_esql_dir) || exit; done installdirs: - $(mkinstalldirs) $(DESTDIR)$(includedir) + $(mkinstalldirs) $(DESTDIR)$(includedir) $(DESTDIR)$(informix_esql_dir) uninstall: rm -f $(addprefix $(DESTDIR)$(includedir)/, $(ecpg_headers)) + rm -f $(addprefix $(DESTDIR)$(informix_esql_dir)/, $(informix_headers)) diff --git a/src/interfaces/ecpg/include/compatlib.h b/src/interfaces/ecpg/include/compatlib.h deleted file mode 100644 index 2cb85fdf1a..0000000000 --- a/src/interfaces/ecpg/include/compatlib.h +++ /dev/null @@ -1,82 +0,0 @@ -#ifndef _COMPATLIB_H -#define _COMPATLIB_H -/* - * This file contains stuff needed to be as compatible to other DBMS as possible. - */ - -#include -#include -#include -#include -#include - -/* The following stuff is for Informix compatibility */ - -#define SQLNOTFOUND 100 - -#define ECPG_INFORMIX_NUM_OVERFLOW -1200 -#define ECPG_INFORMIX_NUM_UNDERFLOW -1201 -#define ECPG_INFORMIX_DIVIDE_ZERO -1202 -#define ECPG_INFORMIX_BAD_YEAR -1204 -#define ECPG_INFORMIX_BAD_MONTH -1205 -#define ECPG_INFORMIX_BAD_DAY -1206 -#define ECPG_INFORMIX_ENOSHORTDATE -1209 -#define ECPG_INFORMIX_DATE_CONVERT -1210 -#define ECPG_INFORMIX_OUT_OF_MEMORY -1211 -#define ECPG_INFORMIX_ENOTDMY -1212 -#define ECPG_INFORMIX_BAD_NUMERIC -1213 -#define ECPG_INFORMIX_BAD_EXPONENT -1216 -#define ECPG_INFORMIX_BAD_DATE -1218 -#define ECPG_INFORMIX_EXTRA_CHARS -1264 - -extern int rdatestr(date, char *); -extern void rtoday(date *); -extern int rjulmdy(date, short *); -extern int rdefmtdate(date *, char *, char *); -extern int rfmtdate(date, char *, char *); -extern int rmdyjul(short *, date *); -extern int rstrdate(char *, date *); -extern int rdayofweek(date); - -extern int rfmtlong(long, char *, char *); -extern int rgetmsg(int, char *, int); -extern int risnull(int, char *); -extern int rsetnull(int, char *); -extern int rtypalign(int, int); -extern int rtypmsize(int, int); -extern int rtypwidth(int, int); -extern void rupshift(char *); - -extern int byleng(char *, int); -extern void ldchar(char *, int, char *); - -extern void ECPG_informix_set_var(int, void *, int); -extern void *ECPG_informix_get_var(int); - -/* Informix defines these in decimal.h */ -int decadd(decimal *, decimal *, decimal *); -int deccmp(decimal *, decimal *); -void deccopy(decimal *, decimal *); -int deccvasc(char *, int, decimal *); -int deccvdbl(double, decimal *); -int deccvint(int, decimal *); -int deccvlong(long, decimal *); -int decdiv(decimal *, decimal *, decimal *); -int decmul(decimal *, decimal *, decimal *); -int decsub(decimal *, decimal *, decimal *); -int dectoasc(decimal *, char *, int, int); -int dectodbl(decimal *, double *); -int dectoint(decimal *, int *); -int dectolong(decimal *, long *); - -/* Informix defines these in datetime.h */ - -extern void dtcurrent(timestamp *); -extern int dtcvasc(char *, timestamp *); -extern int dtsub(timestamp *, timestamp *, interval *); -extern int dttoasc(timestamp *, char *); -extern int dttofmtasc(timestamp *, char *, int, char *); -extern int intoasc(interval *, char *); -extern int dtcvfmtasc(char *, char *, timestamp *); - -#endif /* ndef _COMPATLIB_H */ diff --git a/src/interfaces/ecpg/include/datetime.h b/src/interfaces/ecpg/include/datetime.h index dd5824a466..13940cda39 100644 --- a/src/interfaces/ecpg/include/datetime.h +++ b/src/interfaces/ecpg/include/datetime.h @@ -1,7 +1,7 @@ #ifndef _ECPG_DATETIME_H #define _ECPG_DATETIME_H -#include +#include typedef timestamp dtime_t; typedef interval intrvl_t; diff --git a/src/interfaces/ecpg/include/decimal.h b/src/interfaces/ecpg/include/decimal.h index 96901927cd..111a97a9da 100644 --- a/src/interfaces/ecpg/include/decimal.h +++ b/src/interfaces/ecpg/include/decimal.h @@ -1,7 +1,7 @@ #ifndef _ECPG_DECIMAL_H #define _ECPG_DECIMAL_H -#include +#include typedef decimal dec_t; diff --git a/src/interfaces/ecpg/include/ecpg_informix.h b/src/interfaces/ecpg/include/ecpg_informix.h index 7f8ee28adf..ccf4dd1123 100644 --- a/src/interfaces/ecpg/include/ecpg_informix.h +++ b/src/interfaces/ecpg/include/ecpg_informix.h @@ -1,11 +1,81 @@ -#ifndef _ECPG_INFORMIX_H -#define _ECPG_INFORMIX_H /* * This file contains stuff needed to be as compatible to Informix as possible. + * + * $PostgreSQL: pgsql/src/interfaces/ecpg/include/ecpg_informix.h,v 1.14 2003/12/18 18:55:09 petere Exp $ */ +#ifndef _ECPG_INFORMIX_H +#define _ECPG_INFORMIX_H -#include -#include -#include +#include +#include +#include +#include +#include + +#define SQLNOTFOUND 100 + +#define ECPG_INFORMIX_NUM_OVERFLOW -1200 +#define ECPG_INFORMIX_NUM_UNDERFLOW -1201 +#define ECPG_INFORMIX_DIVIDE_ZERO -1202 +#define ECPG_INFORMIX_BAD_YEAR -1204 +#define ECPG_INFORMIX_BAD_MONTH -1205 +#define ECPG_INFORMIX_BAD_DAY -1206 +#define ECPG_INFORMIX_ENOSHORTDATE -1209 +#define ECPG_INFORMIX_DATE_CONVERT -1210 +#define ECPG_INFORMIX_OUT_OF_MEMORY -1211 +#define ECPG_INFORMIX_ENOTDMY -1212 +#define ECPG_INFORMIX_BAD_NUMERIC -1213 +#define ECPG_INFORMIX_BAD_EXPONENT -1216 +#define ECPG_INFORMIX_BAD_DATE -1218 +#define ECPG_INFORMIX_EXTRA_CHARS -1264 + +extern int rdatestr(date, char *); +extern void rtoday(date *); +extern int rjulmdy(date, short *); +extern int rdefmtdate(date *, char *, char *); +extern int rfmtdate(date, char *, char *); +extern int rmdyjul(short *, date *); +extern int rstrdate(char *, date *); +extern int rdayofweek(date); + +extern int rfmtlong(long, char *, char *); +extern int rgetmsg(int, char *, int); +extern int risnull(int, char *); +extern int rsetnull(int, char *); +extern int rtypalign(int, int); +extern int rtypmsize(int, int); +extern int rtypwidth(int, int); +extern void rupshift(char *); + +extern int byleng(char *, int); +extern void ldchar(char *, int, char *); + +extern void ECPG_informix_set_var(int, void *, int); +extern void *ECPG_informix_get_var(int); + +/* Informix defines these in decimal.h */ +int decadd(decimal *, decimal *, decimal *); +int deccmp(decimal *, decimal *); +void deccopy(decimal *, decimal *); +int deccvasc(char *, int, decimal *); +int deccvdbl(double, decimal *); +int deccvint(int, decimal *); +int deccvlong(long, decimal *); +int decdiv(decimal *, decimal *, decimal *); +int decmul(decimal *, decimal *, decimal *); +int decsub(decimal *, decimal *, decimal *); +int dectoasc(decimal *, char *, int, int); +int dectodbl(decimal *, double *); +int dectoint(decimal *, int *); +int dectolong(decimal *, long *); + +/* Informix defines these in datetime.h */ +extern void dtcurrent(timestamp *); +extern int dtcvasc(char *, timestamp *); +extern int dtsub(timestamp *, timestamp *, interval *); +extern int dttoasc(timestamp *, char *); +extern int dttofmtasc(timestamp *, char *, int, char *); +extern int intoasc(interval *, char *); +extern int dtcvfmtasc(char *, char *, timestamp *); #endif /* ndef _ECPG_INFORMIX_H */ diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile index 01390ea72f..c30db1f200 100644 --- a/src/interfaces/ecpg/preproc/Makefile +++ b/src/interfaces/ecpg/preproc/Makefile @@ -1,4 +1,4 @@ -# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.96 2003/11/30 06:09:47 momjian Exp $ +# $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/Makefile,v 1.97 2003/12/18 18:55:09 petere Exp $ subdir = src/interfaces/ecpg/preproc top_builddir = ../../../.. @@ -11,7 +11,8 @@ PATCHLEVEL=0 override CPPFLAGS := -I$(srcdir)/../include -I$(srcdir) $(CPPFLAGS) $(THREAD_CPPFLAGS) \ -DMAJOR_VERSION=$(MAJOR_VERSION) \ -DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \ - -DINCLUDE_PATH=\"$(includedir)\" + -DINCLUDEDIR=\"$(includedir)\" \ + -DPKGINCLUDEDIR=\"$(pkgincludedir)\" ifeq ($(GCC), yes) override CFLAGS += -Wno-error diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 98cfd1df26..3c6e1c31b3 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -1,4 +1,4 @@ -/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.82 2003/11/29 19:52:08 pgsql Exp $ */ +/* $PostgreSQL: pgsql/src/interfaces/ecpg/preproc/ecpg.c,v 1.83 2003/12/18 18:55:09 petere Exp $ */ /* New main for ecpg, the PostgreSQL embedded SQL precompiler. */ /* (C) Michael Meskes Feb 5th, 1998 */ @@ -174,6 +174,7 @@ main(int argc, char *const argv[]) add_preprocessor_define("dec_t=decimal"); add_preprocessor_define("intrvl_t=interval"); add_preprocessor_define("dtime_t=timestamp"); + add_include_path(PKGINCLUDEDIR "/informix/esql"); } else { @@ -209,7 +210,7 @@ main(int argc, char *const argv[]) add_include_path("."); add_include_path("/usr/local/include"); - add_include_path(INCLUDE_PATH); + add_include_path(INCLUDEDIR); add_include_path("/usr/include"); if (verbose)