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