diff --git a/src/backend/port/Makefile b/src/backend/port/Makefile
index a3617af986f0fad821c9572c447c514838fb6863..6a71ef3a2b5a2810b37e3e222e028981361be3b2 100644
--- a/src/backend/port/Makefile
+++ b/src/backend/port/Makefile
@@ -13,7 +13,7 @@
 # be converted to Method 2.  
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.25 2008/02/19 10:30:07 petere Exp $
+#    $PostgreSQL: pgsql/src/backend/port/Makefile,v 1.26 2008/02/19 15:29:58 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -21,29 +21,17 @@ subdir = src/backend/port
 top_builddir = ../../..
 include $(top_builddir)/src/Makefile.global
 
-OBJS+=dynloader.o pg_sema.o pg_shmem.o
-
-OBJS+=$(TAS)
+OBJS = dynloader.o pg_sema.o pg_shmem.o $(TAS)
 
 ifeq ($(PORTNAME), darwin)
-OBJS+=darwin/SUBSYS.o
+SUBDIRS += darwin
 endif
 ifeq ($(PORTNAME), win32)
-OBJS+=win32/SUBSYS.o
+SUBDIRS += win32
 endif
 
 include $(top_srcdir)/src/backend/common.mk
 
-darwin/SUBSYS.o: darwin.dir
-
-darwin.dir:
-	$(MAKE) -C darwin all
-
-win32/SUBSYS.o: win32.dir
-
-win32.dir:
-	$(MAKE) -C win32 all
-
 tas.o: tas.s
 ifeq ($(PORTNAME), solaris)
 # preprocess assembler file with cpp, used by x86
diff --git a/src/backend/port/darwin/Makefile b/src/backend/port/darwin/Makefile
index 3e5496c2d6cf11ff37734bbc832e7e93d190b94e..f4580d628c10b5230f6c969f2879d9f8a8007fc1 100644
--- a/src/backend/port/darwin/Makefile
+++ b/src/backend/port/darwin/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for port/darwin
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/darwin/Makefile,v 1.5 2007/01/20 17:16:12 petere Exp $
+#    $PostgreSQL: pgsql/src/backend/port/darwin/Makefile,v 1.6 2008/02/19 15:29:58 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -14,10 +14,4 @@ include $(top_builddir)/src/Makefile.global
 
 OBJS = system.o
 
-all: SUBSYS.o
-
-SUBSYS.o: $(OBJS)
-	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-
-clean:
-	rm -f SUBSYS.o $(OBJS)
+include $(top_srcdir)/src/backend/common.mk
diff --git a/src/backend/port/nextstep/Makefile b/src/backend/port/nextstep/Makefile
index 0d5dbc5b2786f62bf938d0427fad70bf0435b74c..fc69c8a631b5bcf223cba01b3575ecf6903f1613 100644
--- a/src/backend/port/nextstep/Makefile
+++ b/src/backend/port/nextstep/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for port/nextstep
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/nextstep/Makefile,v 1.10 2007/01/20 17:16:12 petere Exp $
+#    $PostgreSQL: pgsql/src/backend/port/nextstep/Makefile,v 1.11 2008/02/19 15:29:58 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -14,10 +14,4 @@ include $(top_builddir)/src/Makefile.global
 
 OBJS = port.o
 
-all: SUBSYS.o
-
-SUBSYS.o: $(OBJS)
-	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-
-clean:
-	rm -f SUBSYS.o $(OBJS)
+include $(top_srcdir)/src/backend/common.mk
diff --git a/src/backend/port/win32/Makefile b/src/backend/port/win32/Makefile
index 6aabc2123951866c331aab38d2b0d6d7b08a41aa..ddca8cfbeb4856b3006b5e142c5051c0c3471c8c 100644
--- a/src/backend/port/win32/Makefile
+++ b/src/backend/port/win32/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for backend/port/win32
 #
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/backend/port/win32/Makefile,v 1.11 2007/10/29 12:35:41 mha Exp $
+#    $PostgreSQL: pgsql/src/backend/port/win32/Makefile,v 1.12 2008/02/19 15:29:58 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -14,10 +14,4 @@ include $(top_builddir)/src/Makefile.global
 
 OBJS = timer.o socket.o signal.o security.o mingwcompat.o
 
-all: SUBSYS.o
-
-SUBSYS.o: $(OBJS)
-	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-
-clean: 
-	rm -f SUBSYS.o $(OBJS)
+include $(top_srcdir)/src/backend/common.mk
diff --git a/src/timezone/Makefile b/src/timezone/Makefile
index d4ad6f0790a73cb988069129f70551a8a335badb..bd9a5f469409e033d86b6948e60aa3b7c42128a1 100644
--- a/src/timezone/Makefile
+++ b/src/timezone/Makefile
@@ -4,7 +4,7 @@
 #    Makefile for the timezone library
 
 # IDENTIFICATION
-#    $PostgreSQL: pgsql/src/timezone/Makefile,v 1.28 2007/08/25 20:29:25 tgl Exp $
+#    $PostgreSQL: pgsql/src/timezone/Makefile,v 1.29 2008/02/19 15:29:58 petere Exp $
 #
 #-------------------------------------------------------------------------
 
@@ -32,15 +32,12 @@ ifneq (,$(with_system_tzdata))
 override CPPFLAGS += '-DSYSTEMTZDIR="$(with_system_tzdata)"'
 endif
 
-all: SUBSYS.o
+include $(top_srcdir)/src/backend/common.mk
 
 ifeq (,$(with_system_tzdata))
 all: submake-libpgport zic
 endif
 
-SUBSYS.o: $(OBJS)
-	$(LD) $(LDREL) $(LDOUT) SUBSYS.o $(OBJS)
-
 zic: $(ZICOBJS)
 	$(CC) $(CFLAGS) $(ZICOBJS) $(LDFLAGS) $(LIBS) -o $@$(X)
 
@@ -60,4 +57,4 @@ endif
 	$(MAKE) -C tznames $@
 
 clean distclean maintainer-clean:
-	rm -f SUBSYS.o zic$(X) $(OBJS) $(ZICOBJS)
+	rm -f zic$(X) $(ZICOBJS)