]> git.ipfire.org Git - thirdparty/man-pages.git/blame - lib/install-man.mk
timespec.3type, system_data_types.7: Move timespec to a separate page
[thirdparty/man-pages.git] / lib / install-man.mk
CommitLineData
0110da57
AC
1########################################################################
2# Copyright (C) 2021, 2022 Alejandro Colomar <alx.manpages@gmail.com>
3# SPDX-License-Identifier: GPL-2.0 OR LGPL-2.0
4########################################################################
5
6
7ifndef MAKEFILE_INSTALL_MAN_INCLUDED
8MAKEFILE_INSTALL_MAN_INCLUDED := 1
9
10
8bb88d5f
AC
11include $(srcdir)/lib/install.mk
12
13
0110da57
AC
14mandir := $(datarootdir)/man
15man0dir := $(mandir)/man0
16man1dir := $(mandir)/man1
17man2dir := $(mandir)/man2
18man3dir := $(mandir)/man3
19man4dir := $(mandir)/man4
20man5dir := $(mandir)/man5
21man6dir := $(mandir)/man6
22man7dir := $(mandir)/man7
23man8dir := $(mandir)/man8
24man0ext := .0
25man1ext := .1
26man2ext := .2
27man2type_ext := .2type
28man3ext := .3
29man3type_ext := .3type
30man4ext := .4
31man5ext := .5
32man6ext := .6
33man7ext := .7
34man8ext := .8
35_mandir := $(DESTDIR)$(mandir)
36
37
38_manpages := $(patsubst $(MANDIR)/%,$(_mandir)/%,$(MANPAGES))
39_man0pages := $(filter %$(man0ext),$(_manpages))
40_man1pages := $(filter %$(man1ext),$(_manpages))
41_man2pages := $(filter %$(man2ext),$(_manpages))
42_man2pages += $(filter %$(man2type_ext),$(_manpages))
43_man3pages := $(filter %$(man3ext),$(_manpages))
44_man3pages += $(filter %$(man3type_ext),$(_manpages))
45_man4pages := $(filter %$(man4ext),$(_manpages))
46_man5pages := $(filter %$(man5ext),$(_manpages))
47_man6pages := $(filter %$(man6ext),$(_manpages))
48_man7pages := $(filter %$(man7ext),$(_manpages))
49_man8pages := $(filter %$(man8ext),$(_manpages))
50
51_mandirs := $(patsubst $(MANDIR)/%,$(_mandir)/%/.,$(MANDIRS))
52_man0dir := $(filter %man0/.,$(_mandirs))
53_man1dir := $(filter %man1/.,$(_mandirs))
54_man2dir := $(filter %man2/.,$(_mandirs))
55_man3dir := $(filter %man3/.,$(_mandirs))
56_man4dir := $(filter %man4/.,$(_mandirs))
57_man5dir := $(filter %man5/.,$(_mandirs))
58_man6dir := $(filter %man6/.,$(_mandirs))
59_man7dir := $(filter %man7/.,$(_mandirs))
60_man8dir := $(filter %man8/.,$(_mandirs))
61
62_man0pages_rm := $(addsuffix -rm,$(wildcard $(_man0pages)))
63_man1pages_rm := $(addsuffix -rm,$(wildcard $(_man1pages)))
64_man2pages_rm := $(addsuffix -rm,$(wildcard $(_man2pages)))
65_man3pages_rm := $(addsuffix -rm,$(wildcard $(_man3pages)))
66_man4pages_rm := $(addsuffix -rm,$(wildcard $(_man4pages)))
67_man5pages_rm := $(addsuffix -rm,$(wildcard $(_man5pages)))
68_man6pages_rm := $(addsuffix -rm,$(wildcard $(_man6pages)))
69_man7pages_rm := $(addsuffix -rm,$(wildcard $(_man7pages)))
70_man8pages_rm := $(addsuffix -rm,$(wildcard $(_man8pages)))
71
72_mandirs_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandirs)))
73_man0dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man0dir)))
74_man1dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man1dir)))
75_man2dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man2dir)))
76_man3dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3dir)))
77_man4dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man4dir)))
78_man5dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man5dir)))
79_man6dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man6dir)))
80_man7dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man7dir)))
81_man8dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man8dir)))
82_mandir_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandir)/.))
83
84MAN_SECTIONS := 0 1 2 3 4 5 6 7 8
85install_manX := $(foreach x,$(MAN_SECTIONS),install-man$(x))
86installdirs_manX := $(foreach x,$(MAN_SECTIONS),installdirs-man$(x))
87uninstall_manX := $(foreach x,$(MAN_SECTIONS),uninstall-man$(x))
88
89
90$(_manpages): $(_mandir)/man%: $(MANDIR)/man% | $$(@D)/.
91 $(info INSTALL $@)
92 $(INSTALL_DATA) -T $< $@
93
94$(_mandirs): %/.: | $$(dir %). $(_mandir)/.
95
96$(_mandirs_rmdir): $(_mandir)/man%/.-rmdir: $$(_man%pages_rm) FORCE
97$(_mandir_rmdir): $(uninstall_manX) FORCE
98
99
100.PHONY: $(install_manX)
101$(install_manX): install-man%: $$(_man%pages) | installdirs-man%
102 @:
103
104.PHONY: install-man
105install-man: $(install_manX)
106 @:
107
108.PHONY: $(installdirs_manX)
109$(installdirs_manX): installdirs-man%: $$(_man%dir)
110 @:
111
112.PHONY: installdirs-man
113installdirs-man: $(installdirs_manX)
114 @:
115
116.PHONY: $(uninstall_manX)
117$(uninstall_manX): uninstall-man%: $$(_man%pages_rm) $$(_man%dir_rmdir)
118 @:
119
120.PHONY: uninstall-man
121uninstall-man: $(_mandir_rmdir) $(uninstall_manX)
122 @:
123
124
125endif # MAKEFILE_INSTALL_MAN_INCLUDED