mirror of
https://github.com/postgres/postgres.git
synced 2025-04-25 21:42:33 +03:00
We currently have several sets of files generated from data provided by Unicode. These all have ad hoc rules and instructions for updating when new Unicode versions appear, and it's not done consistently. This patch centralizes and automates the process and makes it part of the release checklist. The Unicode and CLDR versions are specified in Makefile.global.in. There is a new make target "update-unicode" that downloads all the relevant files and runs the generation script. There is also a new script for generating the table of combining characters for ucs_wcwidth(). That table is now in a separate include file rather than hardcoded into the middle of other code. This is based on the script that was used for generating d8594d123c155aeecd47fc2450f62f5100b2fbf0, but the script itself wasn't committed at that time. Reviewed-by: John Naylor <john.naylor@2ndquadrant.com> Discussion: https://www.postgresql.org/message-id/flat/c8d05f42-443e-6c23-819b-05b31759a37c@2ndquadrant.com
142 lines
4.1 KiB
Makefile
142 lines
4.1 KiB
Makefile
#
|
|
# PostgreSQL top level makefile
|
|
#
|
|
# GNUmakefile.in
|
|
#
|
|
|
|
subdir =
|
|
top_builddir = .
|
|
include $(top_builddir)/src/Makefile.global
|
|
|
|
$(call recurse,all install,src config)
|
|
|
|
all:
|
|
+@echo "All of PostgreSQL successfully made. Ready to install."
|
|
|
|
docs:
|
|
$(MAKE) -C doc all
|
|
|
|
$(call recurse,world,doc src config contrib,all)
|
|
world:
|
|
+@echo "PostgreSQL, contrib, and documentation successfully made. Ready to install."
|
|
|
|
# build src/ before contrib/
|
|
world-contrib-recurse: world-src-recurse
|
|
|
|
html man:
|
|
$(MAKE) -C doc $@
|
|
|
|
install:
|
|
+@echo "PostgreSQL installation complete."
|
|
|
|
install-docs:
|
|
$(MAKE) -C doc install
|
|
|
|
$(call recurse,install-world,doc src config contrib,install)
|
|
install-world:
|
|
+@echo "PostgreSQL, contrib, and documentation installation complete."
|
|
|
|
# build src/ before contrib/
|
|
install-world-contrib-recurse: install-world-src-recurse
|
|
|
|
$(call recurse,installdirs uninstall init-po update-po,doc src config)
|
|
|
|
$(call recurse,distprep coverage,doc src config contrib)
|
|
|
|
# clean, distclean, etc should apply to contrib too, even though
|
|
# it's not built by default
|
|
$(call recurse,clean,doc contrib src config)
|
|
clean:
|
|
rm -rf tmp_install/
|
|
# Garbage from autoconf:
|
|
@rm -rf autom4te.cache/
|
|
|
|
# Important: distclean `src' last, otherwise Makefile.global
|
|
# will be gone too soon.
|
|
distclean maintainer-clean:
|
|
$(MAKE) -C doc $@
|
|
$(MAKE) -C contrib $@
|
|
$(MAKE) -C config $@
|
|
$(MAKE) -C src $@
|
|
rm -rf tmp_install/
|
|
# Garbage from autoconf:
|
|
@rm -rf autom4te.cache/
|
|
rm -f config.cache config.log config.status GNUmakefile
|
|
|
|
check check-tests installcheck installcheck-parallel installcheck-tests: CHECKPREP_TOP=src/test/regress
|
|
check check-tests installcheck installcheck-parallel installcheck-tests: submake-generated-headers
|
|
$(MAKE) -C src/test/regress $@
|
|
|
|
$(call recurse,check-world,src/test src/pl src/interfaces/ecpg contrib src/bin,check)
|
|
$(call recurse,checkprep, src/test src/pl src/interfaces/ecpg contrib src/bin)
|
|
|
|
$(call recurse,installcheck-world,src/test src/pl src/interfaces/ecpg contrib src/bin,installcheck)
|
|
|
|
GNUmakefile: GNUmakefile.in $(top_builddir)/config.status
|
|
./config.status $@
|
|
|
|
update-unicode: | submake-generated-headers submake-libpgport
|
|
$(MAKE) -C src/common/unicode $@
|
|
$(MAKE) -C contrib/unaccent $@
|
|
|
|
|
|
##########################################################################
|
|
|
|
distdir = postgresql-$(VERSION)
|
|
dummy = =install=
|
|
|
|
dist: $(distdir).tar.gz $(distdir).tar.bz2
|
|
rm -rf $(distdir)
|
|
|
|
$(distdir).tar: distdir
|
|
$(TAR) chf $@ $(distdir)
|
|
|
|
.INTERMEDIATE: $(distdir).tar
|
|
|
|
distdir-location:
|
|
@echo $(distdir)
|
|
|
|
distdir:
|
|
rm -rf $(distdir)* $(dummy)
|
|
for x in `cd $(top_srcdir) && find . \( -name CVS -prune \) -o \( -name .git -prune \) -o -print`; do \
|
|
file=`expr X$$x : 'X\./\(.*\)'`; \
|
|
if test -d "$(top_srcdir)/$$file" ; then \
|
|
mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file"; \
|
|
else \
|
|
ln "$(top_srcdir)/$$file" "$(distdir)/$$file" >/dev/null 2>&1 \
|
|
|| cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; \
|
|
fi || exit; \
|
|
done
|
|
$(MAKE) -C $(distdir) distprep
|
|
$(MAKE) -C $(distdir)/doc/src/sgml/ INSTALL
|
|
cp $(distdir)/doc/src/sgml/INSTALL $(distdir)/
|
|
$(MAKE) -C $(distdir) distclean
|
|
rm -f $(distdir)/README.git
|
|
|
|
distcheck: dist
|
|
rm -rf $(dummy)
|
|
mkdir $(dummy)
|
|
$(GZIP) -d -c $(distdir).tar.gz | $(TAR) xf -
|
|
install_prefix=`cd $(dummy) && pwd`; \
|
|
cd $(distdir) \
|
|
&& ./configure --prefix="$$install_prefix"
|
|
$(MAKE) -C $(distdir) -q distprep
|
|
$(MAKE) -C $(distdir)
|
|
$(MAKE) -C $(distdir) install
|
|
$(MAKE) -C $(distdir) uninstall
|
|
@echo "checking whether \`$(MAKE) uninstall' works"
|
|
test `find $(dummy) ! -type d | wc -l` -eq 0
|
|
$(MAKE) -C $(distdir) dist
|
|
# Room for improvement: Check here whether this distribution tarball
|
|
# is sufficiently similar to the original one.
|
|
rm -rf $(distdir) $(dummy)
|
|
@echo "Distribution integrity checks out."
|
|
|
|
headerscheck: submake-generated-headers
|
|
$(top_srcdir)/src/tools/pginclude/headerscheck $(top_srcdir) $(abs_top_builddir)
|
|
|
|
cpluspluscheck: submake-generated-headers
|
|
$(top_srcdir)/src/tools/pginclude/cpluspluscheck $(top_srcdir) $(abs_top_builddir)
|
|
|
|
.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world headerscheck cpluspluscheck
|