Put libpgport into OBJS instead of LIBS, so that it gets included

into .def and .exp files automatically on Windows, AIX, and the like.
An additional benefit is that changes in libpgport files correctly
propagate to force rebuild of the backend executable.  This is my
reworking of Rocco Altier's idea, and if it breaks anything it's
definitely my fault.
This commit is contained in:
Tom Lane 2005-07-28 04:31:30 +00:00
parent 06e1d62689
commit a7f8ae32de
1 changed files with 10 additions and 8 deletions

View File

@ -4,7 +4,7 @@
#
# Copyright (c) 1994, Regents of the University of California
#
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.108 2005/01/26 21:55:26 tgl Exp $
# $PostgreSQL: pgsql/src/backend/Makefile,v 1.109 2005/07/28 04:31:30 tgl Exp $
#
#-------------------------------------------------------------------------
@ -17,19 +17,21 @@ DIRS := access bootstrap catalog parser commands executor lib libpq \
main nodes optimizer port postmaster regex rewrite \
storage tcop utils $(top_builddir)/src/timezone
OBJS := $(DIRS:%=%/SUBSYS.o)
SUBSYSOBJS := $(DIRS:%=%/SUBSYS.o)
OBJS := $(SUBSYSOBJS) $(top_builddir)/src/port/libpgport_srv.a
# We put libpgport into OBJS, so remove it from LIBS
LIBS := $(patsubst -lpgport, , $(LIBS))
ifeq ($(PORTNAME), qnx4)
# This file crashes qnx4's wlink and is therefore not in
# bootstrap/SUBSYS.o on that platform. (Wotta hack ... is it still
# necessary?) [ Yes, until the Watcom compiler goes open source it's
# effectively unsupported ]
OBJS+= bootstrap/bootstrap.o
OBJS += bootstrap/bootstrap.o
endif
# Use server version of port library
LIBS := $(patsubst -lpgport,-lpgport_srv, $(LIBS))
##########################################################################
all: submake-libpgport postgres $(POSTGRES_IMP)
@ -69,7 +71,7 @@ postgres: $(OBJS) $(DLLINIT) postgres.def libpostgres.a $(WIN32RES)
rm -f $@.exp $@.base
postgres.def: $(OBJS)
$(DLLTOOL) --export-all --output-def $@ $^ $(top_builddir)/src/port/libpgport.a
$(DLLTOOL) --export-all --output-def $@ $^
libpostgres.a: postgres.def
$(DLLTOOL) --dllname postgres.exe --def postgres.def --output-lib $@
@ -98,7 +100,7 @@ endif
endif # aix
# Parallel make trickery
$(OBJS): $(DIRS:%=%-recursive) ;
$(SUBSYSOBJS): $(DIRS:%=%-recursive) ;
.PHONY: $(DIRS:%=%-recursive)
# Update the commonly used headers before building the subdirectories