From 69e9768e7b183d4b276d0e067a5a0000689580eb Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Thu, 2 Feb 2012 20:24:38 +0200
Subject: [PATCH] ecpg: Improve test building

Further improve on commit c75e1436467f32a06b5ab9d594d2a390e7f4594d.
Instead of building both .o files and binaries in the same make rule,
just rely on the normal .c -> .o rule.  This will ensure that
dependency tracking is used when enabled.  To do this, disable the
implicit direct .c -> binary rule globally, which will also prevent
the original problem (*.dSYM junk) from reappearing elsewhere.
---
 src/Makefile.global.in                    | 6 ++++++
 src/interfaces/ecpg/test/Makefile.regress | 5 ++---
 2 files changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/Makefile.global.in b/src/Makefile.global.in
index 3bf658d6b0c..26b2d5e4a9b 100644
--- a/src/Makefile.global.in
+++ b/src/Makefile.global.in
@@ -515,6 +515,12 @@ TAS         = @TAS@
 %.bz2: %
 	$(BZIP2) -c $< >$@
 
+# Direct builds of foo.c -> foo are disabled to avoid generating
+# *.dSYM junk on Macs.  All builds should normally go through the
+# foo.c -> foo.o -> foo steps.  This also ensures that dependency
+# tracking (see below) is used.
+%: %.c
+
 ifndef PGXS
 
 # Remake Makefile.global from Makefile.global.in if the latter
diff --git a/src/interfaces/ecpg/test/Makefile.regress b/src/interfaces/ecpg/test/Makefile.regress
index b2417081ee0..edfece07df6 100644
--- a/src/interfaces/ecpg/test/Makefile.regress
+++ b/src/interfaces/ecpg/test/Makefile.regress
@@ -7,9 +7,8 @@ override LIBS := -lecpg -lpgtypes $(filter -l%, $(libpq)) $(LIBS) $(PTHREAD_LIBS
 
 ECPG = ../../preproc/ecpg --regression -I$(srcdir)/../../include
 
-%: %.c
-	$(CC) $(CPPFLAGS) $(CFLAGS) -c $< -o $*.o
-	$(CC) $(CPPFLAGS) $(CFLAGS) $*.o $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
+%: %.o
+	$(CC) $(CFLAGS) $< $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
 
 %.c: %.pgc ../regression.h
 	$(ECPG) -o $@ -I$(srcdir) $<
-- 
GitLab