2 # Copyright (C) 2001-2004 Sistina Software, Inc. All rights reserved.
3 # Copyright (C) 2004-2017 Red Hat, Inc. All rights reserved.
5 # This file is part of LVM2.
7 # This copyrighted material is made available to anyone wishing to use,
8 # modify, copy, or redistribute it subject to the terms and conditions
9 # of the GNU General Public License v.2.
11 # You should have received a copy of the GNU General Public License
12 # along with this program; if not, write to the Free Software Foundation,
13 # Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 top_srcdir
= @top_srcdir@
17 top_builddir
= @top_builddir@
26 LVMIMPORTVDOMAN
= lvm_import_vdo
.8
27 BLKDEACTIVATEMAN
= blkdeactivate
.8
28 DMEVENTDMAN
= dmeventd
.8
29 DMFILEMAPDMAN
= dmfilemapd
.8
30 LVMPOLLDMAN
= lvmpolld
.8
31 LVMLOCKDMAN
= lvmlockd
.8 lvmlockctl
.8
32 CMIRRORDMAN
= cmirrord
.8
33 LVMDBUSDMAN
= lvmdbusd
.8
36 MAN7
=lvmsystemid
.7 lvmreport
.7 lvmraid
.7 lvmautoactivation
.7
38 MAN8
=lvm
.8 lvmdump
.8 lvm-fullreport
.8 lvm-lvpoll
.8 \
39 lvcreate
.8 lvchange
.8 lvmconfig
.8 lvconvert
.8 lvdisplay
.8 \
40 lvextend
.8 lvreduce
.8 lvremove
.8 lvrename
.8 lvresize
.8 lvs
.8 \
41 lvscan
.8 pvchange
.8 pvck
.8 pvcreate
.8 pvdisplay
.8 pvmove
.8 pvremove
.8 \
42 pvresize
.8 pvs
.8 pvscan
.8 vgcfgbackup
.8 vgcfgrestore
.8 vgchange
.8 \
43 vgck
.8 vgcreate
.8 vgconvert
.8 vgdisplay
.8 vgexport
.8 vgextend
.8 \
44 vgimport
.8 vgimportclone
.8 vgmerge
.8 vgmknodes
.8 vgreduce
.8 vgremove
.8 \
45 vgrename
.8 vgs
.8 vgscan
.8 vgsplit
.8 \
46 lvmsar
.8 lvmsadc
.8 lvmdiskscan
.8 lvmdevices
.8 vgimportdevices
.8
47 MAN8SO
=lvm-config
.8 lvm-dumpconfig
.8
48 MAN8DM
=dmsetup
.8 dmstats
.8
51 ifeq (,$(findstring $(MAKECMDGOALS
), distclean all_man install_all_man
))
52 MAN7
+= lvmcache
.7 lvmthin
.7 lvmvdo
.7
53 MAN8
+=$(FSADMMAN
) $(LVMPOLLDMAN
) $(LVMLOCKDMAN
) $(LVMDBUSDMAN
) $(LVMIMPORTVDOMAN
)
54 MAN8DM
+=$(BLKDEACTIVATEMAN
) $(DMEVENTDMAN
) $(DMFILEMAPDMAN
)
55 MAN8CLUSTER
+=$(CMIRRORDMAN
)
57 ifeq ("@FSADM@", "yes")
61 ifeq ("@LVMIMPORTVDO@", "yes")
62 MAN8
+=$(LVMIMPORTVDOMAN
)
65 ifeq ("@BUILD_LVMDBUSD@", "yes")
69 ifeq ("@BUILD_LVMPOLLD@", "yes")
73 ifeq ("@BUILD_LVMLOCKD@", "yes")
77 ifeq ("@BLKDEACTIVATE@", "yes")
78 MAN8DM
+=$(BLKDEACTIVATEMAN
)
81 ifeq ("@BUILD_DMEVENTD@", "yes")
82 MAN8DM
+=$(DMEVENTDMAN
)
85 ifeq ("@BUILD_DMFILEMAPD@", "yes")
86 MAN8DM
+=$(DMFILEMAPDMAN
)
89 ifeq ("@BUILD_CMIRRORD@", "yes")
90 MAN8CLUSTER
+=$(CMIRRORDMAN
)
93 ifeq ("@CACHE@", "internal")
96 ifeq ("@WRITECACHE@", "internal")
101 ifeq ("@THIN@", "internal")
105 ifeq ("@VDO@", "internal")
111 MAN5DIR
=$(mandir)/man5
112 MAN7DIR
=$(mandir)/man7
113 MAN8DIR
=$(mandir)/man8
115 MANGENERATOR
=$(top_builddir
)/tools
/man-generator
118 include $(top_builddir
)/make.tmpl
120 CLEAN_TARGETS
+=$(MAN5
) $(MAN7
) $(MAN8
) $(MAN8SO
) $(MAN8
:%.8=%.8_gen
) $(MAN8CLUSTER
) \
123 all: man device-mapper
125 .PHONY
: man install_man5 install_man7 install_man8 pregenerated_man
127 device-mapper
: $(MAN8DM
)
129 man
: $(MAN5
) $(MAN7
) $(MAN8
) $(MAN8SO
) $(MAN8CLUSTER
)
133 $(MAN5
) $(MAN7
) $(MAN8
) $(MAN8SO
) $(MAN8DM
) $(MAN8CLUSTER
): Makefile
137 $(Q
) $(MAKE
) -C
$(top_builddir
) tools
139 # Test whether or not the man page generator works
140 $(TESTMAN
): $(MANGENERATOR
) Makefile
141 $(SHOW
) " [TSTMAN] $@"
142 $(Q
) - $(MANGENERATOR
) --primary lvmconfig
> $@
144 SEE_ALSO
=$(srcdir)/see_also.end
148 %.8_gen
: $(srcdir)/%.8_des
$(srcdir)/%.8_end
$(MANGENERATOR
) $(TESTMAN
)
150 if
[ ! -s
$(TESTMAN
) ] ; then \
151 cat
$(srcdir)/$(@
:%.8_gen
=%.8_pregen
) \
152 $(srcdir)/$(basename $@
).8_end
$(SEE_ALSO
) ; \
154 MANCMD
=$(basename $@
) && \
155 $(MANGENERATOR
) --primary
$$MANCMD $< && \
156 $(MANGENERATOR
) --secondary
$$MANCMD && \
157 cat
$(srcdir)/$(basename $@
).8_end
$(SEE_ALSO
) ; \
162 # When EDITLINE_LIBS is defined, we are compiling with libedit
164 ifneq ("$(EDITLINE_LIBS)", "")
165 DEFAULT_LIBLINE
=editline
167 DEFAULT_LIBLINE
=readline
171 $(SED
) -e
"s+#VERSION#+$(LVM_VERSION)+" \
172 -e
"s+#DEFAULT_SYS_DIR#+$(DEFAULT_SYS_DIR)+" \
173 -e
"s+#DEFAULT_ARCHIVE_DIR#+$(DEFAULT_ARCHIVE_DIR)+" \
174 -e
"s+#DEFAULT_BACKUP_DIR#+$(DEFAULT_BACKUP_DIR)+" \
175 -e
"s+#DEFAULT_PROFILE_DIR#+$(DEFAULT_PROFILE_DIR)+" \
176 -e
"s+#DEFAULT_CACHE_DIR#+$(DEFAULT_CACHE_DIR)+" \
177 -e
"s+#DEFAULT_LOCK_DIR#+$(DEFAULT_LOCK_DIR)+" \
178 -e
"s+#LVM_PATH#+@bindir@/lvm+" \
179 -e
"s+#DEFAULT_RUN_DIR#+$(DEFAULT_RUN_DIR)+" \
180 -e
"s+#DEFAULT_PID_DIR#+$(DEFAULT_PID_DIR)+" \
181 -e
"s+#SYSTEMD_GENERATOR_DIR#+$(SYSTEMD_GENERATOR_DIR)+" \
182 -e
"s+#DEFAULT_LIBLINE#+$(DEFAULT_LIBLINE)+" \
183 -e
"s+#DEFAULT_DMEVENTD_EXIT_ON_PATH#+$(DEFAULT_DMEVENTD_EXIT_ON_PATH)+" \
184 -e
"s+#DEFAULT_MANGLING#+$(DEFAULT_MANGLING)+" $< > $@
187 # Escape any '-' to '\-' (except ^.TH line)
188 # and fix unwanted changes:
190 # words like 'device\-mapper' back to 'device-mapper',
191 # \[\->] \[<\-] back to \[->], \[<-]
192 # however for some words i.e. '*-pool' we want '*\-pool'
193 # also 'vg-lv,[systemd-]machine-id,lvm-full,lvm-lvpoll' should go with \-
196 $(SED
) -i
-e
"/^.TH/ !s+-+\\\-+g" \
197 -e
"s+\\\[\]-+\\\-+g" \
198 -e
"s+\(^\|[^[:alnum:]\-]\)\([[:alpha:]]\{1,\}\)\\\-\((\|[([:alpha:]]\{2,\}\)+\1\2-\3+g" \
199 -e
"s+\([[:alpha:]]\)-\(pool\)+\1\\\-\2+g" \
200 -e
"s+[\][[]\(<\{0,1\}\)\\\-+\\\[\1-+g" \
201 -e
"s+\(vg.\{1,\}[^\]\)-lv+\1\\\-lv+g" \
202 -e
"s+systemd-machine+systemd\\\-machine+g" \
203 -e
"s+machine-id+machine\\\-id+g" \
204 -e
"s+lvm-full+lvm\\\-full+g" \
205 -e
"s+lvm-lvpoll+lvm\\\-lvpoll+g" \
206 -e
"s+\([[:digit:]]\)\s\([KMGTPE]iB\)+\1\\\ \2+g" \
212 $(Q
) echo
"cmd -a -b retry -c ret --use-policy -d" > $@
213 $(Q
) echo
"cmd \fI-u\fB -d retry \fI--use-pol --use-poli 4.0 --use \"-L|--size\"" >> $@
214 $(Q
) echo
"cmd --use-pol" >> $@
215 $(Q
) echo
"cmd --[raid]use device-mapper thin-pool \fB-\fP sdb1:1000-1999 \fB-t\fP|\fB--test\fP -? -o-field3" >> $@
216 $(Q
) echo
"cmd -dd---- \[->] \[<-] -*- -o#field5 -o-field3 -d" >> $@
218 $(Q
) echo
".TH 2.03.12(2)-git" >> $@
219 $(Q
) echo
"--verbose" >> $@
220 $(Q
) echo
".BR -- [ raid ] most -- [ raid ] most" >> $@
221 $(Q
) echo
".BR | --verbose|--verb --verbose --verbose --verbose --verbose" >> $@
222 $(Q
) echo
"skip - unint --aa-dd- --aa-dd-- ---aa-dd 4.0 \-a\-b" >> $@
223 $(Q
) echo
"cmd \-a \-b retry \-c ret \-\-use\-policy \-d" > $@
-e
224 $(Q
) echo
"cmd \fI\-u\fB \-d retry \fI\-\-use\-pol \-\-use\-poli 4.0 \-\-use \"\-L|\-\-size\"" >> $@
-e
225 $(Q
) echo
"cmd \-\-use\-pol" >> $@
-e
226 $(Q
) echo
"cmd \-\-[raid]use device-mapper thin\-pool \fB\-\fP sdb1:1000\-1999 \fB\-t\fP|\fB\-\-test\fP \-? \-o\-field3" >> $@
-e
227 $(Q
) echo
"cmd \-dd\-\-\-\- \[->] \[<-] \-*\- \-o#field5 \-o\-field3 \-d" >> $@
-e
228 $(Q
) echo
"\-d" >> $@
-e
229 $(Q
) echo
".TH 2.03.12(2)-git" >> $@
-e
230 $(Q
) echo
"\-\-verbose" >> $@
-e
231 $(Q
) echo
".BR \-\- [ raid ] most \-\- [ raid ] most" >> $@
-e
232 $(Q
) echo
".BR | \-\-verbose|\-\-verb \-\-verbose \-\-verbose \-\-verbose \-\-verbose" >> $@
-e
233 $(Q
) echo
"skip \- unint \-\-aa\-dd\- \-\-aa\-dd\-\- \-\-\-aa\-dd 4.0 \-a\-b" >> $@
-e
234 $(Q
) $(ESCAPEHYPHENS
)
235 $(Q
) echo
"--- H Y P H E N A T E D ---"
240 %.5: $(srcdir)/%.5_main
243 $(Q
) $(ESCAPEHYPHENS
)
245 %.7: $(srcdir)/%.7_main
248 $(Q
) $(ESCAPEHYPHENS
)
250 %.8: $(srcdir)/%.8_main
253 $(Q
) $(ESCAPEHYPHENS
)
258 $(Q
) $(ESCAPEHYPHENS
)
260 $(MAN8SO
): lvmconfig
.8
262 $(Q
) echo
".so $<" > $@
264 install_man5
: $(MAN5
)
265 $(SHOW
) " [INSTALL] $^"
266 $(Q
) $(INSTALL
) -d
$(MAN5DIR
)
267 $(Q
) $(INSTALL_DATA
) $^
$(MAN5DIR
)/
269 install_man7
: $(MAN7
)
270 $(SHOW
) " [INSTALL] $^"
271 $(Q
) $(INSTALL
) -d
$(MAN7DIR
)
272 $(Q
) $(INSTALL_DATA
) $^
$(MAN7DIR
)/
274 install_man8
: $(MAN8
) $(MAN8SO
)
275 $(SHOW
) " [INSTALL] $^"
276 $(Q
) $(INSTALL
) -d
$(MAN8DIR
)
277 $(Q
) $(INSTALL_DATA
) $^
$(MAN8DIR
)/
279 install_lvm2
: install_man5 install_man7 install_man8
281 install_cluster
: $(MAN8CLUSTER
)
283 $(SHOW
) " [INSTALL] $^"
284 $(Q
) $(INSTALL
) -d
$(MAN8DIR
)
285 $(Q
) $(INSTALL_DATA
) $^
$(MAN8DIR
)/
288 install_device-mapper
: $(MAN8DM
)
289 $(SHOW
) " [INSTALL] $^"
290 $(Q
) $(INSTALL
) -d
$(MAN8DIR
)
291 $(Q
) $(INSTALL_DATA
) $^
$(MAN8DIR
)/
293 install: install_lvm2 install_device-mapper install_cluster
295 install_all_man
: install install_systemd_generators
297 # Copy generated man pages back to source tree as fallback for machines where generator doesn't work
298 pregenerated_man
: $(MANGENERATOR
) $(TESTMAN
)
299 $(SHOW
) " [GENERATE] $^"
300 $(Q
) set
-e
; test -s
$(TESTMAN
) && for i in
$(srcdir)/*.8_des
; do \
301 CMD
=`basename $$i .8_des`; \
302 ( $(MANGENERATOR
) --primary
$$CMD $$i && \
303 $(MANGENERATOR
) --secondary
$$CMD ) \
304 > $(srcdir)/$$CMD.8_pregen
; \
307 generate
: pregenerated_man