1
0
mirror of https://github.com/postgres/postgres.git synced 2025-09-03 15:22:11 +03:00

Make distprep and *clean build targets recurse into all subdirectories.

Certain subdirectories do not get built if corresponding options are not
selected at configure time.  However, "make distprep" should visit such
directories anyway, so that constructing derived files to be included in
the tarball happens without requiring all configure options to be given
in the tarball build script.  Likewise, it's better if cleanup actions
unconditionally visit all directories (for example, this ensures proper
cleanup if someone has done a manual make in such a subdirectory).

To handle this, set up a convention that subdirectories that are
conditionally included in SUBDIRS should be added to ALWAYS_SUBDIRS
instead when they are excluded.

Back-patch to 9.1, so that plpython's spiexceptions.h will get provided
in 9.1 tarballs.  There don't appear to be any instances where distprep
actions got missed in previous releases, and anyway this fix requires
gmake 3.80 so we don't want to apply it before 9.1.
This commit is contained in:
Tom Lane
2011-07-03 13:55:02 -04:00
parent 19b7fac86d
commit acb9198b96
5 changed files with 48 additions and 14 deletions

View File

@@ -16,14 +16,21 @@ SUBDIRS = plpgsql
ifeq ($(with_perl), yes)
SUBDIRS += plperl
else
ALWAYS_SUBDIRS += plperl
endif
ifeq ($(with_python), yes)
SUBDIRS += plpython
else
ALWAYS_SUBDIRS += plpython
endif
ifeq ($(with_tcl), yes)
SUBDIRS += tcl
else
ALWAYS_SUBDIRS += tcl
endif
$(recurse)
$(recurse_always)

View File

@@ -95,16 +95,8 @@ PSQLDIR = $(bindir)
include $(top_srcdir)/src/Makefile.shlib
# Force this dependency to be known even without dependency info built:
plpython.o: spiexceptions.h
spiexceptions.h: $(top_srcdir)/src/backend/utils/errcodes.txt generate-spiexceptions.pl
$(PERL) $(srcdir)/generate-spiexceptions.pl $< > $@
all: all-lib
distprep: spiexceptions.h
install: all install-lib install-data
@@ -151,13 +143,13 @@ installcheck: submake prep3
$(pg_regress_installcheck) --inputdir=./python3 --outputdir=./python3 $(REGRESS_OPTS) $(REGRESS)
clean: clean3
else
else # not Python 3
check: submake
$(pg_regress_check) $(REGRESS_OPTS) $(REGRESS)
installcheck: submake
$(pg_regress_installcheck) $(REGRESS_OPTS) $(REGRESS)
endif
endif # not Python 3
.PHONY: submake
submake:
@@ -170,9 +162,6 @@ ifeq ($(PORTNAME), win32)
rm -f python${pytverstr}.def
endif
maintainer-clean: distclean
rm -f spiexceptions.h
else # can't build
all:
@@ -183,3 +172,16 @@ all:
echo ""
endif # can't build
# distprep and maintainer-clean rules should be run even if we can't build.
# Force this dependency to be known even without dependency info built:
plpython.o: spiexceptions.h
spiexceptions.h: $(top_srcdir)/src/backend/utils/errcodes.txt generate-spiexceptions.pl
$(PERL) $(srcdir)/generate-spiexceptions.pl $< > $@
distprep: spiexceptions.h
maintainer-clean: distclean
rm -f spiexceptions.h