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