]> granicus.if.org Git - postgresql/blob - doc/Makefile
Extend man page installation hackery so that the man page section is also
[postgresql] / doc / Makefile
1 #----------------------------------------------------------------------------
2 #
3 # PostgreSQL documentation installation makefile
4 #
5 # Copyright (c) 1994, Regents of the University of California
6 #
7 # $PostgreSQL: pgsql/doc/Makefile,v 1.34 2009/06/19 19:15:13 petere Exp $
8 #
9 #----------------------------------------------------------------------------
10
11 # This makefile is responsible for installing the documentation. The
12 # files to be installed are prepared specially and are placed in this
13 # directory during distribution bundling. In CVS-based trees these
14 # files don't exist, so we skip the installation in that case.
15 #
16 # Before we install the man pages, we massage the section numbers to
17 # follow the local conventions.
18 #
19 # To actually build the documenation, look into the src/ and src/sgml
20 # subdirectories.
21
22 subdir = doc
23 top_builddir = ..
24 include $(top_builddir)/src/Makefile.global
25
26 .NOTPARALLEL:
27
28 ifneq ($(wildcard $(srcdir)/postgres.tar.gz),)
29 found_html = yes
30 endif
31
32 ifneq ($(wildcard $(srcdir)/man.tar.gz),)
33 # SCO OpenServer's man system is sufficiently different to not bother.
34 ifneq ($(PORTNAME), sco)
35 found_man = yes
36 endif
37 endif
38
39
40 ifdef found_man
41 ifndef sqlmansect
42 sqlmansect = 7
43 endif
44 sqlmansectnum = $(shell expr X'$(sqlmansect)' : X'\([0-9]\)')
45
46 fix_sqlmansectnum = sed -e '/^\.TH/s/"7"/"$(sqlmansect)"/' \
47                         -e 's/\\fR(7)/\\fR($(sqlmansectnum))/g' \
48                         -e '1s/^\.so man7/.so man$(sqlmansectnum)/g;1s/^\(\.so.*\)\.7$$/\1.$(sqlmansect)/g'
49
50 all: man1/.timestamp man$(sqlmansectnum)/.timestamp
51
52 man1/.timestamp: man7/.timestamp
53         @echo timestamp >$@
54
55 man7/.timestamp: man.tar.gz
56         gzip -d -c $< | $(TAR) xf -
57 ifneq ($(sqlmansectnum),7)
58         for file in man1/*.1; do \
59           mv $$file $$file.bak && \
60           $(fix_sqlmansectnum) $$file.bak >$$file && \
61           rm -f $$file.bak || exit; \
62         done
63 endif
64         @echo timestamp >$@
65
66 ifneq ($(sqlmansectnum),7)
67 man$(sqlmansectnum)/.timestamp: man7/.timestamp
68         $(mkinstalldirs) man$(sqlmansectnum)
69         for file in man7/*.7; do \
70           $(fix_sqlmansectnum) $$file >man$(sqlmansectnum)/`basename $$file | sed 's/.7$$/.$(sqlmansect)/'` || exit; \
71         done
72         @echo timestamp >$@
73 endif
74 endif # found_man
75
76
77 install: all installdirs
78 ifdef found_html
79         gzip -d -c $(srcdir)/postgres.tar.gz | ( cd $(DESTDIR)$(htmldir)/html && $(TAR) xf - )
80 endif
81 ifdef found_man
82         for file in man1/*.1 man$(sqlmansectnum)/*.$(sqlmansect) ; do \
83           $(INSTALL_DATA) $$file $(DESTDIR)$(mandir)/$$file || exit; \
84         done
85 endif
86
87
88 installdirs:
89 ifdef found_html
90         $(mkinstalldirs) '$(DESTDIR)$(htmldir)'/html
91 endif
92 ifdef found_man
93         $(mkinstalldirs) $(addprefix '$(DESTDIR)$(mandir)'/man, 1 $(sqlmansectnum))
94 endif
95
96
97 uninstall:
98 ifdef found_html
99         rm -f $(addprefix $(DESTDIR)$(htmldir)/html/, $(shell gunzip -c $(srcdir)/postgres.tar.gz | tar tf -))
100 endif
101 ifdef found_man
102         rm -f $(filter-out %/, $(addprefix $(DESTDIR)$(mandir)/, $(shell gunzip -c $(srcdir)/man.tar.gz | tar tf - | sed -e 's,man7/,man$(sqlmansectnum)/,' -e 's/.7$$/.$(sqlmansect)/')))
103 endif
104
105
106 clean distclean maintainer-clean:
107         rm -rf man1/ man7/ man$(sqlmansectnum)/
108         $(MAKE) -C src $@