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 coverage init-po update-po,doc src config)
53
54$(call recurse,distprep,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:
78	$(MAKE) -C src/test/regress $@
79
80$(call recurse,check-world,src/test src/pl src/interfaces/ecpg contrib src/bin,check)
81
82$(call recurse,installcheck-world,src/test src/pl src/interfaces/ecpg contrib src/bin,installcheck)
83$(call recurse,install-tests,src/test/regress,install-tests)
84
85GNUmakefile: GNUmakefile.in $(top_builddir)/config.status
86	./config.status $@
87
88
89##########################################################################
90
91distdir	= postgresql-$(VERSION)
92dummy	= =install=
93garbage = =*  "#"*  ."#"*  *~*  *.orig  *.rej  core  postgresql-*
94
95dist: $(distdir).tar.gz $(distdir).tar.bz2
96	rm -rf $(distdir)
97
98$(distdir).tar: distdir
99	$(TAR) chf $@ $(distdir)
100
101.INTERMEDIATE: $(distdir).tar
102
103distdir-location:
104	@echo $(distdir)
105
106distdir:
107	rm -rf $(distdir)* $(dummy)
108	for x in `cd $(top_srcdir) && find . \( -name CVS -prune \) -o \( -name .git -prune \) -o -print`; do \
109	  file=`expr X$$x : 'X\./\(.*\)'`; \
110	  if test -d "$(top_srcdir)/$$file" ; then \
111	    mkdir "$(distdir)/$$file" && chmod 777 "$(distdir)/$$file";	\
112	  else \
113	    ln "$(top_srcdir)/$$file" "$(distdir)/$$file" >/dev/null 2>&1 \
114	      || cp "$(top_srcdir)/$$file" "$(distdir)/$$file"; \
115	  fi || exit; \
116	done
117	$(MAKE) -C $(distdir) distprep
118	$(MAKE) -C $(distdir)/doc/src/sgml/ INSTALL
119	cp $(distdir)/doc/src/sgml/INSTALL $(distdir)/
120	$(MAKE) -C $(distdir) distclean
121	rm -f $(distdir)/README.git
122
123distcheck: dist
124	rm -rf $(dummy)
125	mkdir $(dummy)
126	$(GZIP) -d -c $(distdir).tar.gz | $(TAR) xf -
127	install_prefix=`cd $(dummy) && pwd`; \
128	cd $(distdir) \
129	&& ./configure --prefix="$$install_prefix"
130	$(MAKE) -C $(distdir) -q distprep
131	$(MAKE) -C $(distdir)
132	$(MAKE) -C $(distdir) install
133	$(MAKE) -C $(distdir) uninstall
134	@echo "checking whether \`$(MAKE) uninstall' works"
135	test `find $(dummy) ! -type d | wc -l` -eq 0
136	$(MAKE) -C $(distdir) dist
137# Room for improvement: Check here whether this distribution tarball
138# is sufficiently similar to the original one.
139	rm -rf $(distdir) $(dummy)
140	@echo "Distribution integrity checks out."
141
142.PHONY: dist distdir distcheck docs install-docs world check-world install-world installcheck-world
143