From add8b70dda0439c8b3a89440576cbfc19989ed39 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Fri, 21 May 2004 21:56:02 +0000
Subject: [PATCH] Handle inclusion of port modules 'correctly', viz the same
 way libpq does it.  Fixes OS X, which needs path.c.  It may be that Win32
 needs some more port modules, but they are easily added.

---
 src/interfaces/ecpg/ecpglib/Makefile | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/interfaces/ecpg/ecpglib/Makefile b/src/interfaces/ecpg/ecpglib/Makefile
index 8755081e9ec..0b7291c42c1 100644
--- a/src/interfaces/ecpg/ecpglib/Makefile
+++ b/src/interfaces/ecpg/ecpglib/Makefile
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 1994, Regents of the University of California
 #
-# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.21 2004/05/21 03:12:03 momjian Exp $
+# $PostgreSQL: pgsql/src/interfaces/ecpg/ecpglib/Makefile,v 1.22 2004/05/21 21:56:02 tgl Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -17,18 +17,13 @@ SO_MAJOR_VERSION= 4
 SO_MINOR_VERSION= 2
 
 override CPPFLAGS := -I$(top_srcdir)/src/interfaces/ecpg/include \
-	-I$(libpq_srcdir) $(CPPFLAGS)
+	-I$(libpq_srcdir) -I$(top_builddir)/src/port $(CPPFLAGS)
 override CFLAGS += $(PTHREAD_CFLAGS)
 
 OBJS= execute.o typename.o descriptor.o data.o error.o prepare.o memory.o \
-	connect.o misc.o
+	connect.o misc.o path.o
 
-# needed by dllwrap
-ifeq ($(PORTNAME), win32)
-PGPORT=-lpgport
-endif
-
-SHLIB_LINK = -L../pgtypeslib -lpgtypes $(PGPORT) $(libpq) \
+SHLIB_LINK = -L../pgtypeslib -lpgtypes $(libpq) \
 	$(filter -lintl -lssl -lcrypto -lkrb5 -lcrypt -lm, $(LIBS)) $(PTHREAD_LIBS)
 
 all: all-lib
@@ -36,6 +31,14 @@ all: all-lib
 # Shared library stuff
 include $(top_srcdir)/src/Makefile.shlib
 
+# We use some port modules verbatim, but since we need to
+# compile with appropriate options to build a shared lib, we can't
+# necessarily use the same object files as the backend uses. Instead,
+# symlink the source files in here and build our own object file.
+
+path.c: % : $(top_srcdir)/src/port/%
+	rm -f $@ && $(LN_S) $< .
+
 install: all installdirs install-lib
 
 installdirs:
@@ -44,7 +47,7 @@ installdirs:
 uninstall: uninstall-lib
 
 clean distclean maintainer-clean: clean-lib
-	rm -f $(OBJS)
+	rm -f $(OBJS) path.c
 
 depend dep:
 	$(CC) -MM $(CFLAGS) *.c >depend
-- 
GitLab