summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian2004-04-30 04:14:06 +0000
committerBruce Momjian2004-04-30 04:14:06 +0000
commitd68386a86275c2a4685c010d266663524ff57a2b (patch)
tree106c34b8922b160dcea27239c24e335d6657ba8f
parent1bd27e9b8e1f35eba9b71b4777a20da64bd842c7 (diff)
Minor adjustments to enable public-domain timezone library to be called
from our code.
-rw-r--r--src/include/c.h4
-rw-r--r--src/include/port.h34
-rw-r--r--src/interfaces/ecpg/compatlib/Makefile3
-rw-r--r--src/interfaces/ecpg/ecpglib/Makefile3
-rw-r--r--src/interfaces/ecpg/pgtypeslib/Makefile5
-rw-r--r--src/interfaces/ecpg/preproc/Makefile3
-rw-r--r--src/interfaces/ecpg/test/Makefile3
-rw-r--r--src/timezone/README2
8 files changed, 51 insertions, 6 deletions
diff --git a/src/include/c.h b/src/include/c.h
index d7f0f87d3c..7631ca4fd4 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -310,12 +310,16 @@ typedef unsigned long int uint64;
#endif
/* Global variable holding time zone information. */
+#ifdef USE_PGTZ
+#define TIMEZONE_GLOBAL pg_timezone
+#else
#ifndef HAVE_UNDERSCORE_TIMEZONE
#define TIMEZONE_GLOBAL timezone
#else
#define TIMEZONE_GLOBAL _timezone
#define tzname _tzname /* should be in time.h? */
#endif
+#endif
/* sig_atomic_t is required by ANSI C, but may be missing on old platforms */
#ifndef HAVE_SIG_ATOMIC_T
diff --git a/src/include/port.h b/src/include/port.h
index fa9a9c76ca..588dea12c8 100644
--- a/src/include/port.h
+++ b/src/include/port.h
@@ -177,3 +177,37 @@ extern int pqGethostbyname(const char *name,
#define WIFSIGNALED(w) (((w) & 0x7f) > 0 && (((w) & 0x7f) < 0x7f))
#define WTERMSIG(w) ((w) & 0x7f)
#endif
+
+/*
+ * Internal timezone library
+ */
+#ifdef USE_PGTZ
+#ifndef FRONTEND
+#undef localtime
+#undef gmtime
+#undef asctime
+#undef ctime
+#undef difftime
+#undef mktime
+#undef tzset
+
+#define localtime(timep) pg_localtime(timep)
+#define gmtime(timep) pg_gmtime(timep)
+#define asctime(timep) pg_asctime(timep)
+#define ctime(timep) pg_ctime(timep)
+#define difftime(t1,t2) pg_difftime(t1,t2)
+#define mktime(tm) pg_mktime(tm)
+#define tzset pg_tzset
+
+
+extern struct tm *pg_localtime(const time_t *);
+extern struct tm *gg_gmtime(const time_t *);
+extern char *pg_asctime(const struct tm *);
+extern char *pg_ctime(const time_t *);
+extern double pg_difftime(const time_t, const time_t);
+extern time_t pg_mktime(struct tm *);
+extern void pg_tzset(void);
+extern time_t pg_timezone;
+
+#endif
+#endif
diff --git a/src/interfaces/ecpg/compatlib/Makefile b/src/interfaces/ecpg/compatlib/Makefile
index e1aa631449..a81772b975 100644
--- a/src/interfaces/ecpg/compatlib/Makefile
+++ b/src/interfaces/ecpg/compatlib/Makefile
@@ -16,7 +16,8 @@ NAME= ecpg_compat
SO_MAJOR_VERSION= 1
SO_MINOR_VERSION= 1
-override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) -I$(top_srcdir)/src/include/utils $(CPPFLAGS)
+override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) \
+ -I$(top_srcdir)/src/include/utils $(CPPFLAGS)
override CFLAGS += $(PTHREAD_CFLAGS)
SHLIB_LINK = -L../ecpglib -lecpg -L../pgtypeslib -lpgtypes $(libpq) \
$(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) $(PTHREAD_LIBS)
diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index f142517278..7351eea488 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -16,7 +16,8 @@ NAME= ecpg
SO_MAJOR_VERSION= 4
SO_MINOR_VERSION= 2
-override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(libpq_srcdir) $(CPPFLAGS)
+override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include \
+ -I$(libpq_srcdir) $(CPPFLAGS)
override CFLAGS += $(PTHREAD_CFLAGS)
OBJS= execute.o typename.o descriptor.o data.o error.o prepare.o memory.o \
diff --git a/src/interfaces/ecpg/pgtypeslib/Makefile b/src/interfaces/ecpg/pgtypeslib/Makefile
index d64af96f4d..b85adef2bd 100644
--- a/src/interfaces/ecpg/pgtypeslib/Makefile
+++ b/src/interfaces/ecpg/pgtypeslib/Makefile
@@ -16,7 +16,10 @@ NAME= pgtypes
SO_MAJOR_VERSION= 1
SO_MINOR_VERSION= 2
-override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include -I$(top_srcdir)/src/include/utils -I$(libpq_srcdir) $(CPPFLAGS) $(PTHREAD_CFLAGS)
+override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include \
+ -I$(top_srcdir)/src/include/utils -I$(libpq_srcdir) $(CPPFLAGS) \
+ $(PTHREAD_CFLAGS) -DFRONTEND
+
SHLIB_LINK += -lm
OBJS= numeric.o datetime.o common.o dt_common.o timestamp.o interval.o \
diff --git a/src/interfaces/ecpg/preproc/Makefile b/src/interfaces/ecpg/preproc/Makefile
index 112ee8d811..4abca13d19 100644
--- a/src/interfaces/ecpg/preproc/Makefile
+++ b/src/interfaces/ecpg/preproc/Makefile
@@ -12,7 +12,8 @@ override CPPFLAGS := -I$(srcdir)/../include -I$(srcdir) $(CPPFLAGS) \
-DMAJOR_VERSION=$(MAJOR_VERSION) \
-DMINOR_VERSION=$(MINOR_VERSION) -DPATCHLEVEL=$(PATCHLEVEL) \
-DINCLUDEDIR=\"$(includedir)\" \
- -DPKGINCLUDEDIR=\"$(pkgincludedir)\"
+ -DPKGINCLUDEDIR=\"$(pkgincludedir)\" \
+ -DFRONTEND
ifeq ($(GCC), yes)
override CFLAGS += -Wno-error
diff --git a/src/interfaces/ecpg/test/Makefile b/src/interfaces/ecpg/test/Makefile
index c2c74605de..4096b0dc44 100644
--- a/src/interfaces/ecpg/test/Makefile
+++ b/src/interfaces/ecpg/test/Makefile
@@ -9,7 +9,8 @@ override CFLAGS += $(PTHREAD_CFLAGS)
ECPG = ../preproc/ecpg -I$(srcdir)/../include
-TESTS = test1 test2 test3 test4 perftest dyntest dyntest2 test_notice test_code100 test_init testdynalloc num_test dt_test test_informix
+TESTS = test1 test2 test3 test4 perftest dyntest dyntest2 test_notice \
+ test_code100 test_init testdynalloc num_test dt_test test_informix
ifeq ($(enable_thread_safety), yes)
TESTS += test_thread test_thread_implicit
endif
diff --git a/src/timezone/README b/src/timezone/README
index 79b6ee7d97..bfea93f1bb 100644
--- a/src/timezone/README
+++ b/src/timezone/README
@@ -1,7 +1,7 @@
This is a PostgreSQL adapted version of the timezone library
from:
-ftp://elsie.nci.nih.gov/pub/tz*.tar.gz
+ ftp://elsie.nci.nih.gov/pub/tz*.tar.gz
The interface is used when USE_PGTZ is defined at the top level. This
will cause the following functions to be redefined: