OSDN Git Service

Handle inclusion of port modules 'correctly', viz the same way libpq
authorTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 May 2004 21:56:02 +0000 (21:56 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Fri, 21 May 2004 21:56:02 +0000 (21:56 +0000)
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

index 8755081..0b7291c 100644 (file)
@@ -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