1# 2# PostgreSQL top level makefile 3# 4# GNUmakefile.in 5# 6 7subdir = 8top_builddir = . 9include $(top_builddir)/src/Makefile.global 10 11$(call recurse,all install,src config) 12 13docs: 14 $(MAKE) -C doc all 15 16$(call recurse,world,doc src config contrib,all) 17 18# build src/ before contrib/ 19world-contrib-recurse: world-src-recurse 20 21$(call recurse,world-bin,src config contrib,all) 22 23# build src/ before contrib/ 24world-bin-contrib-recurse: world-bin-src-recurse 25 26html man: 27 $(MAKE) -C doc $@ 28 29install-docs: 30 $(MAKE) -C doc install 31 32$(call recurse,install-world,doc src config contrib,install) 33 34# build src/ before contrib/ 35install-world-contrib-recurse: install-world-src-recurse 36 37$(call recurse,install-world-bin,src config contrib,install) 38 39# build src/ before contrib/ 40install-world-bin-contrib-recurse: install-world-bin-src-recurse 41 42$(call recurse,installdirs uninstall init-po update-po,doc src config) 43 44$(call recurse,distprep coverage,doc src config contrib) 45 46# clean, distclean, etc should apply to contrib too, even though 47# it's not built by default 48$(call recurse,clean,doc contrib src config) 49clean: 50 rm -rf tmp_install/ 51# Garbage from autoconf: 52 @rm -rf autom4te.cache/ 53 54# Important: distclean `src' last, otherwise Makefile.global 55# will be gone too soon. 56distclean maintainer-clean: 57 $(MAKE) -C doc $@ 58 $(MAKE) -C contrib $@ 59 $(MAKE) -C config $@ 60 $(MAKE) -C src $@ 61 rm -rf tmp_install/ 62# Garbage from autoconf: 63 @rm -rf autom4te.cache/ 64 rm -f config.cache config.log config.status GNUmakefile 65 66check-tests: | temp-install 67check check-tests installcheck installcheck-parallel installcheck-tests: CHECKPREP_TOP=src/test/regress 68check check-tests installcheck installcheck-parallel installcheck-tests: submake-generated-headers 69 $(MAKE) -C src/test/regress $@ 70 71$(call recurse,check-world,src/test src/pl src/interfaces/ecpg contrib src/bin,check) 72$(call recurse,checkprep, src/test src/pl src/interfaces/ecpg contrib src/bin) 73 74$(call recurse,installcheck-world,src/test src/pl src/interfaces/ecpg contrib src/bin,installcheck) 75$(call recurse,install-tests,src/test/regress,install-tests) 76 77GNUmakefile: GNUmakefile.in $(top_builddir)/config.status 78 ./config.status $@ 79 80update-unicode: | submake-generated-headers submake-libpgport 81 $(MAKE) -C src/common/unicode $@ 82 $(MAKE) -C contrib/unaccent $@ 83 84 85########################################################################## 86 87distdir = postgresql-$(VERSION) 88dummy = =install= 89 90dist: $(distdir).tar.gz $(distdir).tar.bz2 91 rm -rf $(distdir) 92 93$(distdir).tar: distdir 94 $(TAR) chf $@ $(distdir) 95 96.INTERMEDIATE: $(distdir).tar 97 98distdir-location: 99 @echo $(distdir) 100 101distdir: 102 rm -rf $(distdir)* $(dummy) 103 for x in `cd $(top_srcdir) && find . \( -name CVS -prune \) -o \( -name .git -prune \) -o -print`; do \ 104 file=`expr X$$x : 'X\./\(.*\)'`; \ 105 if test -d "$(top_srcdir)/$$file" ; then \ 106 mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file"; \ 107 else \ 108 ln "$(top_srcdir)/$$file" "$(distdir)/$$file" >/dev/null 2>&1 \ 109 || cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; \ 110 fi || exit; \ 111 done 112 $(MAKE) -C $(distdir) distprep 113 $(MAKE) -C $(distdir)/doc/src/sgml/ INSTALL 114 cp $(distdir)/doc/src/sgml/INSTALL $(distdir)/ 115 $(MAKE) -C $(distdir) distclean 116 rm -f $(distdir)/README.git 117 118distcheck: dist 119 rm -rf $(dummy) 120 mkdir $(dummy) 121 $(GZIP) -d -c $(distdir).tar.gz | $(TAR) xf - 122 install_prefix=`cd $(dummy) && pwd`; \ 123 cd $(distdir) \ 124 && ./configure --prefix="$$install_prefix" 125 $(MAKE) -C $(distdir) -q distprep 126 $(MAKE) -C $(distdir) 127 $(MAKE) -C $(distdir) install 128 $(MAKE) -C $(distdir) uninstall 129 @echo "checking whether \`$(MAKE) uninstall' works" 130 test `find $(dummy) ! -type d | wc -l` -eq 0 131 $(MAKE) -C $(distdir) dist 132# Room for improvement: Check here whether this distribution tarball 133# is sufficiently similar to the original one. 134 rm -rf $(distdir) $(dummy) 135 @echo "Distribution integrity checks out." 136 137headerscheck: submake-generated-headers 138 $(top_srcdir)/src/tools/pginclude/headerscheck $(top_srcdir) $(abs_top_builddir) 139 140cpluspluscheck: submake-generated-headers 141 $(top_srcdir)/src/tools/pginclude/cpluspluscheck $(top_srcdir) $(abs_top_builddir) 142 143.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world headerscheck cpluspluscheck 144