diff options
author | Robert Haas | 2011-02-04 14:28:06 +0000 |
---|---|---|
committer | Robert Haas | 2011-02-04 14:29:10 +0000 |
commit | 356f2cbbb42811596820c94aaec2e32ad1ec58d8 (patch) | |
tree | 807f36eec03106dd756b752c65b67deb80f70793 | |
parent | afb6dee1e3b93af05e35873c19c068e8ac7eb74b (diff) |
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/Makefile | 12 | ||||
-rw-r--r-- | src/backend/Makefile | 16 | ||||
-rw-r--r-- | src/backend/utils/Makefile | 2 | ||||
-rw-r--r-- | src/include/Makefile | 1 | ||||
-rw-r--r-- | src/port/Makefile | 7 | ||||
-rwxr-xr-x | src/tools/msvc/clean.bat | 1 |
6 files changed, 23 insertions, 16 deletions
diff --git a/src/Makefile b/src/Makefile index a92153e783..4469d2cdf2 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 7e619326d2..2b2c9bb9a2 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 c855042100..8374533718 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 3701ad0541..0d5f04932b 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 fc65e4bd3e..ca8a9a0e65 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 753ab39697..a59bbe55da 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 |