endif
+##########################################################################
+#
+# Commonly used submake targets
+
submake-libpq:
$(MAKE) -C $(libpq_builddir) all
$(MAKE) -C $(top_builddir)/src/common all
$(MAKE) -C $(top_builddir)/src/fe_utils all
-.PHONY: submake-libpq submake-libpgport submake-libpgfeutils
+submake-generated-headers:
+ $(MAKE) -C $(top_builddir)/src/backend generated-headers
+
+.PHONY: submake-libpq submake-libpgport submake-libpgfeutils submake-generated-headers
##########################################################################
endif # aix
# Update the commonly used headers before building the subdirectories
-$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h
+$(SUBDIRS:%=%-recursive): | generated-headers
-# run this unconditionally to avoid needing to know its dependencies here:
-submake-schemapg:
- $(MAKE) -C catalog schemapg.h
-
-# src/port needs a convenient way to force errcodes.h to get built
+# src/port needs a convenient way to force just errcodes.h to get built
submake-errcodes: $(top_builddir)/src/include/utils/errcodes.h
-.PHONY: submake-schemapg submake-errcodes
-
-catalog/schemapg.h: | submake-schemapg
+.PHONY: submake-errcodes
$(top_builddir)/src/port/libpgport_srv.a: | submake-libpgport
storage/lmgr/lwlocknames.h: storage/lmgr/generate-lwlocknames.pl storage/lmgr/lwlocknames.txt
$(MAKE) -C storage/lmgr lwlocknames.h
-utils/fmgroids.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h
- $(MAKE) -C utils fmgroids.h
-
utils/errcodes.h: utils/generate-errcodes.pl utils/errcodes.txt
$(MAKE) -C utils errcodes.h
+utils/fmgroids.h: utils/Gen_fmgrtab.pl catalog/Catalog.pm $(top_srcdir)/src/include/catalog/pg_proc.h
+ $(MAKE) -C utils fmgroids.h
+
utils/probes.h: utils/probes.d
$(MAKE) -C utils probes.h
+# run this unconditionally to avoid needing to know its dependencies here:
+catalog/schemapg.h: | submake-schemapg
+
+submake-schemapg:
+ $(MAKE) -C catalog schemapg.h
+
+.PHONY: submake-schemapg
+
# Make symlinks for these headers in the include directory. That way
# we can cut down on the -I options. Also, a symlink is automatically
# up to date when we update the base file.
# will be in the build tree, so a simple ../.. reference won't work.
# For headers generated during regular builds, we prefer a relative symlink.
+.PHONY: generated-headers
+
+generated-headers: $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/storage/lwlocknames.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h
+
$(top_builddir)/src/include/parser/gram.h: parser/gram.h
prereqdir=`cd '$(dir $<)' >/dev/null && pwd` && \
cd '$(dir $@)' && rm -f $(notdir $@) && \
include $(top_srcdir)/src/Makefile.shlib
-all: all-lib
+all: submake-generated-headers all-lib
install: all install-lib install-data
include $(srcdir)/regress-python3-mangle.mk
-check: submake
+check: submake-pg-regress
$(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
-installcheck: submake
+installcheck: submake-pg-regress
$(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS)
-.PHONY: submake
-submake:
+.PHONY: submake-pg-regress
+submake-pg-regress:
$(MAKE) -C $(top_builddir)/src/test/regress pg_regress$(X)
clean distclean: clean-lib
all: pg_regress$(X)
-pg_regress$(X): pg_regress.o pg_regress_main.o $(WIN32RES) | submake-libpgport
+pg_regress$(X): pg_regress.o pg_regress_main.o $(WIN32RES) | submake-libpgport submake-generated-headers
$(CC) $(CFLAGS) $^ $(LDFLAGS) $(LDFLAGS_EX) $(LIBS) -o $@
# dependencies ensure that path changes propagate
$(top_builddir)/contrib/spi/autoinc$(DLSUFFIX): | submake-contrib-spi ;
-submake-contrib-spi:
+submake-contrib-spi: | submake-libpgport submake-generated-headers
$(MAKE) -C $(top_builddir)/contrib/spi
.PHONY: submake-contrib-spi