summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/Makefile12
-rw-r--r--src/backend/Makefile16
-rw-r--r--src/backend/utils/Makefile2
-rw-r--r--src/include/Makefile1
-rw-r--r--src/port/Makefile7
-rwxr-xr-xsrc/tools/msvc/clean.bat1
6 files changed, 23 insertions, 16 deletions
diff --git a/src/Makefile b/src/Makefile
index a92153e7837..4469d2cdf2c 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -30,18 +30,6 @@ SUBDIRS = \
# don't attempt parallel make here.
.NOTPARALLEL:
-# generate errcodes.h before recursing in the subdirectories
-$(SUBDIRS:%=all-%-recurse): $(top_builddir)/src/include/utils/errcodes.h
-$(SUBDIRS:%=install-%-recurse): $(top_builddir)/src/include/utils/errcodes.h
-
-backend/utils/errcodes.h: backend/utils/generate-errcodes.pl $(top_srcdir)/src/backend/utils/errcodes.txt
- $(MAKE) -C backend/utils errcodes.h
-
-$(top_builddir)/src/include/utils/errcodes.h: backend/utils/errcodes.h
- prereqdir=`cd $(dir $<) >/dev/null && pwd` && \
- cd $(dir $@) && rm -f $(notdir $@) && \
- $(LN_S) "$$prereqdir/$(notdir $<)" .
-
$(recurse)
install: install-local
diff --git a/src/backend/Makefile b/src/backend/Makefile
index 7e619326d23..2b2c9bb9a22 100644
--- a/src/backend/Makefile
+++ b/src/backend/Makefile
@@ -114,13 +114,16 @@ endif
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/utils/fmgroids.h $(top_builddir)/src/include/utils/probes.h
+$(SUBDIRS:%=%-recursive): $(top_builddir)/src/include/parser/gram.h $(top_builddir)/src/include/catalog/schemapg.h $(top_builddir)/src/include/utils/fmgroids.h $(top_builddir)/src/include/utils/errcodes.h $(top_builddir)/src/include/utils/probes.h
# run this unconditionally to avoid needing to know its dependencies here:
submake-schemapg:
$(MAKE) -C catalog schemapg.h
-.PHONY: submake-schemapg
+# src/port needs a convenient way to force errcodes.h to get built
+submake-errcodes: $(top_builddir)/src/include/utils/errcodes.h
+
+.PHONY: submake-schemapg submake-errcodes
catalog/schemapg.h: | submake-schemapg
@@ -143,6 +146,9 @@ parser/gram.h: parser/gram.y
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/probes.h: utils/probes.d
$(MAKE) -C utils probes.h
@@ -167,6 +173,10 @@ $(top_builddir)/src/include/catalog/schemapg.h: catalog/schemapg.h
cd $(dir $@) && rm -f $(notdir $@) && \
$(LN_S) "$$prereqdir/$(notdir $<)" .
+$(top_builddir)/src/include/utils/errcodes.h: utils/errcodes.h
+ cd $(dir $@) && rm -f $(notdir $@) && \
+ $(LN_S) ../../../$(subdir)/utils/errcodes.h .
+
$(top_builddir)/src/include/utils/fmgroids.h: utils/fmgroids.h
prereqdir=`cd $(dir $<) >/dev/null && pwd` && \
cd $(dir $@) && rm -f $(notdir $@) && \
@@ -187,7 +197,7 @@ distprep:
$(MAKE) -C parser gram.c gram.h scan.c
$(MAKE) -C bootstrap bootparse.c bootscanner.c
$(MAKE) -C catalog schemapg.h postgres.bki postgres.description postgres.shdescription
- $(MAKE) -C utils fmgrtab.c fmgroids.h
+ $(MAKE) -C utils fmgrtab.c fmgroids.h errcodes.h
$(MAKE) -C utils/misc guc-file.c
diff --git a/src/backend/utils/Makefile b/src/backend/utils/Makefile
index c855042100f..83745337180 100644
--- a/src/backend/utils/Makefile
+++ b/src/backend/utils/Makefile
@@ -16,7 +16,7 @@ catalogdir = $(top_srcdir)/src/backend/catalog
include $(top_srcdir)/src/backend/common.mk
-all: fmgroids.h probes.h
+all: errcodes.h fmgroids.h probes.h
$(SUBDIRS:%=%-recursive): fmgroids.h
diff --git a/src/include/Makefile b/src/include/Makefile
index 3701ad05411..0d5f04932b5 100644
--- a/src/include/Makefile
+++ b/src/include/Makefile
@@ -40,6 +40,7 @@ install: all installdirs
# These headers are needed for server-side development
$(INSTALL_DATA) pg_config.h '$(DESTDIR)$(includedir_server)'
$(INSTALL_DATA) pg_config_os.h '$(DESTDIR)$(includedir_server)'
+ $(INSTALL_DATA) utils/errcodes.h '$(DESTDIR)$(includedir_server)/utils'
$(INSTALL_DATA) utils/fmgroids.h '$(DESTDIR)$(includedir_server)/utils'
# We don't use INSTALL_DATA for performance reasons --- there are a lot of files
cp $(srcdir)/*.h '$(DESTDIR)$(includedir_server)'/ || exit; \
diff --git a/src/port/Makefile b/src/port/Makefile
index fc65e4bd3e9..ca8a9a0e650 100644
--- a/src/port/Makefile
+++ b/src/port/Makefile
@@ -70,6 +70,13 @@ libpgport_srv.a: $(OBJS_SRV)
%_srv.o: %.c
$(CC) $(CFLAGS) $(subst -DFRONTEND,, $(CPPFLAGS)) -c $< -o $@
+$(OBJS_SRV): | submake-errcodes
+
+.PHONY: submake-errcodes
+
+submake-errcodes:
+ make -C ../backend submake-errcodes
+
# Dependency is to ensure that path changes propagate
path.o: path.c pg_config_paths.h
diff --git a/src/tools/msvc/clean.bat b/src/tools/msvc/clean.bat
index 753ab39697e..a59bbe55da9 100755
--- a/src/tools/msvc/clean.bat
+++ b/src/tools/msvc/clean.bat
@@ -20,6 +20,7 @@ REM Delete files created with GenerateFiles() in Solution.pm
if exist src\include\pg_config.h del /q src\include\pg_config.h
if exist src\include\pg_config_os.h del /q src\include\pg_config_os.h
if %DIST%==1 if exist src\backend\parser\gram.h del /q src\backend\parser\gram.h
+if exist src\include\utils\errcodes.h del /q src\include\utils\errcodes.h
if exist src\include\utils\fmgroids.h del /q src\include\utils\fmgroids.h
if exist src\include\utils\probes.h del /q src\include\utils\probes.h