aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2011-02-04 09:28:06 -0500
committerRobert Haas <rhaas@postgresql.org>2011-02-04 09:29:10 -0500
commit356f2cbbb42811596820c94aaec2e32ad1ec58d8 (patch)
tree807f36eec03106dd756b752c65b67deb80f70793
parentafb6dee1e3b93af05e35873c19c068e8ac7eb74b (diff)
downloadpostgresql-356f2cbbb42811596820c94aaec2e32ad1ec58d8.tar.gz
postgresql-356f2cbbb42811596820c94aaec2e32ad1ec58d8.zip
Make handling of errcodes.h more consistent with other generated headers.
This fixes make distprep, and seems more robust in other ways as well. Some special handling is required because errcodes.txt is needed by some stuff in src/port, but just by src/backend as is the case for the other generated headers. While I'm at it, fix a few other things that were overlooked in the original patch.
-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