0ff81da3d0e96f26eadb317935db8eb2b49b6926
[platform/upstream/btrfs-progs.git] / Documentation / Makefile
1 # Guard against environment variables
2 MAN8_TXT =
3
4 # Top level commands
5 MAN8_TXT += btrfs.txt
6 MAN8_TXT += btrfs-convert.txt
7 MAN8_TXT += btrfs-debug-tree.txt
8 MAN8_TXT += btrfs-find-root.txt
9 MAN8_TXT += btrfs-image.txt
10 MAN8_TXT += btrfs-map-logical.txt
11 MAN8_TXT += btrfs-show-super.txt
12 MAN8_TXT += btrfstune.txt
13 MAN8_TXT += btrfs-zero-log.txt
14 MAN8_TXT += fsck.btrfs.txt
15 MAN8_TXT += mkfs.btrfs.txt
16
17 # Sub commands for btrfs
18 MAN8_TXT += btrfs-subvolume.txt
19 MAN8_TXT += btrfs-filesystem.txt
20 MAN8_TXT += btrfs-balance.txt
21 MAN8_TXT += btrfs-device.txt
22 MAN8_TXT += btrfs-scrub.txt
23 MAN8_TXT += btrfs-check.txt
24 MAN8_TXT += btrfs-rescue.txt
25 MAN8_TXT += btrfs-inspect-internal.txt
26 MAN8_TXT += btrfs-send.txt
27 MAN8_TXT += btrfs-receive.txt
28 MAN8_TXT += btrfs-quota.txt
29 MAN8_TXT += btrfs-qgroup.txt
30 MAN8_TXT += btrfs-replace.txt
31 MAN8_TXT += btrfs-restore.txt
32 MAN8_TXT += btrfs-property.txt
33
34 MAN_TXT = $(MAN8_TXT)
35 MAN_XML = $(patsubst %.txt,%.xml,$(MAN_TXT))
36 DOC_MAN8 = $(patsubst %.txt,%.8,$(MAN8_TXT))
37 GZ_MAN8 = $(patsubst %.txt,%.8.gz,$(MAN8_TXT))
38
39 mandir ?= $(prefix)/share/man
40 man8dir = $(mandir)/man8
41
42 ASCIIDOC = asciidoc
43 ASCIIDOC_EXTRA =
44 MANPAGE_XSL = manpage-normal.xsl
45 XMLTO = xmlto
46 XMLTO_EXTRA =
47 XMLTO_EXTRA = -m manpage-bold-literal.xsl
48 GZIPCMD = gzip
49 INSTALL ?= install
50 RM ?= rm -f
51 LNS ?= ln -sf
52 BTRFS_VERSION = $(shell sed -n 's/.*BTRFS_BUILD_VERSION "Btrfs \(.*\)"/\1/p'\
53                   ../version.h)
54
55 ifneq ($(findstring $(MAKEFLAGS),s),s)
56 ifndef V
57         QUIET_RM        = @
58         QUIET_ASCIIDOC  = @echo "    [ASCII]  $@";
59         QUIET_XMLTO     = @echo "    [XMLTO]  $@";
60         QUIET_GZIP      = @echo "    [GZ]     $@";
61         QUIET_STDERR    = 2> /dev/null
62         QUIET_SUBDIR0   = +@subdir=
63         QUIET_SUBDIR1   = ;$(NO_SUBDIR) echo '   ' SUBDIR $$subdir; \
64                           $(MAKE) $(PRINT_DIR) -C $$subdir
65         export V
66 endif
67 endif
68
69 all: man
70 man: man8
71 man8: $(GZ_MAN8)
72
73 install: install-man
74
75 install-man: man
76         $(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
77         $(INSTALL) -m 644 $(GZ_MAN8) $(DESTDIR)$(man8dir)
78         $(LNS) btrfs-check.8.gz $(DESTDIR)$(man8dir)/btrfsck.8.gz
79
80 clean:
81         $(QUIET_RM)$(RM) *.xml *.xml+ *.8 *.8.gz
82
83 %.8.gz : %.8
84         $(QUIET_GZIP)$(GZIPCMD) -n -c $< > $@
85
86 %.8 : %.xml
87         $(QUIET_XMLTO)$(RM) $@ && \
88         $(XMLTO) -m $(MANPAGE_XSL) $(XMLTO_EXTRA) man $<
89 %.xml : %.txt asciidoc.conf
90         $(QUIET_ASCIIDOC)$(RM) $@.tmp[12] $@ && \
91         sed -e "s/\(<[^>]\+>\)/'\1'/g" < $< > $@.tmp1 && \
92         $(ASCIIDOC) -b docbook -d manpage -f asciidoc.conf \
93                 $(ASCIIDOC_EXTRA) -abtrfs_version=$(BTRFS_VERSION) \
94                 -o $@.tmp2 $@.tmp1 && \
95         mv $@.tmp2 $@ && \
96         rm -f -- $@.tmp1