Fix program build rule in src/bin/scripts/Makefile.
authorTom Lane <tgl@sss.pgh.pa.us>
Sat, 5 Jan 2019 00:12:22 +0000 (19:12 -0500)
committerTom Lane <tgl@sss.pgh.pa.us>
Sat, 5 Jan 2019 00:12:22 +0000 (19:12 -0500)
Commit 69ae9dcb4 added a globally-visible "%: %.o" rule, but we failed
to notice that src/bin/scripts/Makefile already had such a rule.
Apparently, the later occurrence of the same rule wins in nearly all
versions of gmake ... but not in the one used by buildfarm member jacana.
jacana is evidently using the global rule, which says to link "$<",
ie just the first dependency.  But the scripts makefile needs to
link "$^", ie all the dependencies listed for the target.

There is, fortunately, no good reason not to use "$^" in the global
version of the rule, so we can just do that and get rid of the local
version.

src/Makefile.global.in
src/bin/scripts/Makefile

index 758ea4357a7219c12081e7c02d5dd90e2e42b662..41c131412e0a61dade07fe5937b06f533634ddf0 100644 (file)
@@ -747,7 +747,7 @@ endif
 # since we put -l switches into LDFLAGS and those are order-sensitive.
 # In addition, include CFLAGS and LDFLAGS_EX per project conventions.
 %: %.o
-   $(CC) $(CFLAGS) $< $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
+   $(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
 
 ifndef PGXS
 
index 8c9fc0c298ae7014afd048762549909641245e1f..9f352b5e2b26c86c77ee732615c4cfd192e72a74 100644 (file)
@@ -23,17 +23,14 @@ LDFLAGS_INTERNAL += -L$(top_builddir)/src/fe_utils -lpgfeutils $(libpq_pgport)
 
 all: $(PROGRAMS)
 
-%: %.o $(WIN32RES)
-   $(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@$(X)
-
-createdb: createdb.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-createuser: createuser.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-dropdb: dropdb.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-dropuser: dropuser.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-clusterdb: clusterdb.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-vacuumdb: vacuumdb.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-reindexdb: reindexdb.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
-pg_isready: pg_isready.o common.o | submake-libpq submake-libpgport submake-libpgfeutils
+createdb: createdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+createuser: createuser.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+dropdb: dropdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+dropuser: dropuser.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+clusterdb: clusterdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+vacuumdb: vacuumdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+reindexdb: reindexdb.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
+pg_isready: pg_isready.o common.o $(WIN32RES) | submake-libpq submake-libpgport submake-libpgfeutils
 
 install: all installdirs
    $(INSTALL_PROGRAM) createdb$(X)   '$(DESTDIR)$(bindir)'/createdb$(X)