Make ECPG test programs depend on "ecpg$(X)", not "ecpg".
authorNoah Misch <noah@leadboat.com>
Mon, 3 Nov 2014 02:43:25 +0000 (21:43 -0500)
committerNoah Misch <noah@leadboat.com>
Mon, 3 Nov 2014 02:43:25 +0000 (21:43 -0500)
Cygwin builds require this of dependencies pertaining to pattern rules.
On Cygwin, stat("foo") in the absence of a file with that exact name can
locate foo.exe.  While GNU make uses stat() for dependencies of ordinary
rules, it uses readdir() to assess dependencies of pattern rules.
Therefore, a pattern rule dependency should match any underlying file
name exactly.  Back-patch to 9.4, where the dependency was introduced.

src/interfaces/ecpg/test/Makefile.regress

index fd6e83aeafa2dc0c159e883c8dc47adcc925ace4..b3d7c1e874af4ec9b1239f8b5cd3c082ddf56189 100644 (file)
@@ -12,7 +12,7 @@ override LIBS := -lecpg -lpgtypes $(filter -l%, $(libpq)) $(LIBS) $(PTHREAD_LIBS
 ECPG = ../../preproc/ecpg --regression -I$(srcdir)/../../include -I$(srcdir)
 
 # Files that most or all ecpg preprocessor test outputs depend on
-ECPG_TEST_DEPENDENCIES = ../../preproc/ecpg \
+ECPG_TEST_DEPENDENCIES = ../../preproc/ecpg$(X) \
        $(srcdir)/../regression.h \
        $(srcdir)/../../include/sqlca.h \
        $(srcdir)/../../include/sqlda.h \