]>
Commit | Line | Data |
---|---|---|
0110da57 | 1 | ######################################################################## |
dfd35089 AC |
2 | # Copyright 2021-2023, Alejandro Colomar <alx@kernel.org> |
3 | # SPDX-License-Identifier: GPL-3.0-or-later | |
0110da57 AC |
4 | ######################################################################## |
5 | ||
6 | ||
7 | ifndef MAKEFILE_INSTALL_MAN_INCLUDED | |
8 | MAKEFILE_INSTALL_MAN_INCLUDED := 1 | |
9 | ||
10 | ||
edaa12e6 AC |
11 | include $(MAKEFILEDIR)/cmd.mk |
12 | include $(MAKEFILEDIR)/compress.mk | |
13 | include $(MAKEFILEDIR)/install/_.mk | |
14 | include $(MAKEFILEDIR)/src.mk | |
8bb88d5f AC |
15 | |
16 | ||
335acbfb AC |
17 | LINK_PAGES := .so |
18 | ifeq ($(LINK_PAGES),.so) | |
19 | else ifeq ($(LINK_PAGES),symlink) | |
20 | else | |
21 | $(warning "LINK_PAGES": "$(LINK_PAGES)") | |
22 | $(error Valid values for "LINK_PAGES": [".so", "symlink"]) | |
23 | endif | |
24 | ||
25 | ||
451a27a7 | 26 | mandir := $(datarootdir)/man |
451a27a7 AC |
27 | man1dir := $(mandir)/man1 |
28 | man2dir := $(mandir)/man2 | |
29 | man2typedir := $(mandir)/man2type | |
30 | man3dir := $(mandir)/man3 | |
23461f53 | 31 | man3constdir:= $(mandir)/man3const |
5f836211 | 32 | man3headdir := $(mandir)/man3head |
451a27a7 AC |
33 | man3typedir := $(mandir)/man3type |
34 | man4dir := $(mandir)/man4 | |
35 | man5dir := $(mandir)/man5 | |
36 | man6dir := $(mandir)/man6 | |
37 | man7dir := $(mandir)/man7 | |
38 | man8dir := $(mandir)/man8 | |
1a35f5b7 AC |
39 | man1ext := .1$(Z) |
40 | man2ext := .2$(Z) | |
41 | man2typeext := .2type$(Z) | |
42 | man3ext := .3$(Z) | |
43 | man3constext:= .3const$(Z) | |
44 | man3headext := .3head$(Z) | |
45 | man3typeext := .3type$(Z) | |
46 | man4ext := .4$(Z) | |
47 | man5ext := .5$(Z) | |
48 | man6ext := .6$(Z) | |
49 | man7ext := .7$(Z) | |
50 | man8ext := .8$(Z) | |
04fdef68 AC |
51 | |
52 | ||
53 | _mandir := $(DESTDIR)$(mandir) | |
54 | _man1dir := $(DESTDIR)$(man1dir) | |
55 | _man2dir := $(DESTDIR)$(man2dir) | |
56 | _man2typedir := $(DESTDIR)$(man2typedir) | |
57 | _man3dir := $(DESTDIR)$(man3dir) | |
58 | _man3constdir := $(DESTDIR)$(man3constdir) | |
59 | _man3headdir := $(DESTDIR)$(man3headdir) | |
60 | _man3typedir := $(DESTDIR)$(man3typedir) | |
61 | _man4dir := $(DESTDIR)$(man4dir) | |
62 | _man5dir := $(DESTDIR)$(man5dir) | |
63 | _man6dir := $(DESTDIR)$(man6dir) | |
64 | _man7dir := $(DESTDIR)$(man7dir) | |
65 | _man8dir := $(DESTDIR)$(man8dir) | |
ac288b42 AC |
66 | _mandirs := $(_man1dir)/ \ |
67 | $(_man2dir)/ $(_man2typedir)/ \ | |
68 | $(_man3dir)/ $(_man3constdir)/ $(_man3headdir)/ $(_man3typedir)/ \ | |
69 | $(_man4dir)/ \ | |
70 | $(_man5dir)/ \ | |
71 | $(_man6dir)/ \ | |
72 | $(_man7dir)/ \ | |
73 | $(_man8dir)/ \ | |
04fdef68 | 74 | |
1a35f5b7 AC |
75 | _man1pages := $(patsubst $(MANDIR)/man1/%,$(_man1dir)/%$(Z),$(MAN1PAGES)) |
76 | _man2pages := $(patsubst $(MANDIR)/man2/%,$(_man2dir)/%$(Z),$(MAN2PAGES)) | |
77 | _man2typepages := $(patsubst $(MANDIR)/man2type/%,$(_man2typedir)/%$(Z),$(MAN2TYPEPAGES)) | |
78 | _man3pages := $(patsubst $(MANDIR)/man3/%,$(_man3dir)/%$(Z),$(MAN3PAGES)) | |
79 | _man3constpages := $(patsubst $(MANDIR)/man3const/%,$(_man3constdir)/%$(Z),$(MAN3CONSTPAGES)) | |
80 | _man3headpages := $(patsubst $(MANDIR)/man3head/%,$(_man3headdir)/%$(Z),$(MAN3HEADPAGES)) | |
81 | _man3typepages := $(patsubst $(MANDIR)/man3type/%,$(_man3typedir)/%$(Z),$(MAN3TYPEPAGES)) | |
82 | _man4pages := $(patsubst $(MANDIR)/man4/%,$(_man4dir)/%$(Z),$(MAN4PAGES)) | |
83 | _man5pages := $(patsubst $(MANDIR)/man5/%,$(_man5dir)/%$(Z),$(MAN5PAGES)) | |
84 | _man6pages := $(patsubst $(MANDIR)/man6/%,$(_man6dir)/%$(Z),$(MAN6PAGES)) | |
85 | _man7pages := $(patsubst $(MANDIR)/man7/%,$(_man7dir)/%$(Z),$(MAN7PAGES)) | |
86 | _man8pages := $(patsubst $(MANDIR)/man8/%,$(_man8dir)/%$(Z),$(MAN8PAGES)) | |
04fdef68 AC |
87 | _manpages := $(_man1pages) \ |
88 | $(_man2pages) $(_man2typepages) \ | |
89 | $(_man3pages) $(_man3constpages) $(_man3headpages) $(_man3typepages) \ | |
90 | $(_man4pages) \ | |
91 | $(_man5pages) \ | |
92 | $(_man6pages) \ | |
93 | $(_man7pages) \ | |
94 | $(_man8pages) | |
451a27a7 | 95 | |
451a27a7 AC |
96 | _man1pages_rm := $(addsuffix -rm,$(wildcard $(_man1pages))) |
97 | _man2pages_rm := $(addsuffix -rm,$(wildcard $(_man2pages))) | |
98 | _man2typepages_rm := $(addsuffix -rm,$(wildcard $(_man2typepages))) | |
99 | _man3pages_rm := $(addsuffix -rm,$(wildcard $(_man3pages))) | |
23461f53 | 100 | _man3constpages_rm:= $(addsuffix -rm,$(wildcard $(_man3constpages))) |
5f836211 | 101 | _man3headpages_rm := $(addsuffix -rm,$(wildcard $(_man3headpages))) |
451a27a7 AC |
102 | _man3typepages_rm := $(addsuffix -rm,$(wildcard $(_man3typepages))) |
103 | _man4pages_rm := $(addsuffix -rm,$(wildcard $(_man4pages))) | |
104 | _man5pages_rm := $(addsuffix -rm,$(wildcard $(_man5pages))) | |
105 | _man6pages_rm := $(addsuffix -rm,$(wildcard $(_man6pages))) | |
106 | _man7pages_rm := $(addsuffix -rm,$(wildcard $(_man7pages))) | |
107 | _man8pages_rm := $(addsuffix -rm,$(wildcard $(_man8pages))) | |
108 | ||
109 | _mandirs_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandirs))) | |
451a27a7 AC |
110 | _man1dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man1dir))) |
111 | _man2dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man2dir))) | |
112 | _man2typedir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man2typedir))) | |
113 | _man3dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3dir))) | |
23461f53 | 114 | _man3constdir_rmdir:= $(addsuffix -rmdir,$(wildcard $(_man3constdir))) |
5f836211 | 115 | _man3headdir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3headdir))) |
451a27a7 AC |
116 | _man3typedir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3typedir))) |
117 | _man4dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man4dir))) | |
118 | _man5dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man5dir))) | |
119 | _man6dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man6dir))) | |
120 | _man7dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man7dir))) | |
121 | _man8dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man8dir))) | |
ac288b42 | 122 | _mandir_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandir)/)) |
451a27a7 | 123 | |
23461f53 | 124 | MAN_SECTIONS := 1 2 2type 3 3const 3head 3type 4 5 6 7 8 |
0110da57 AC |
125 | install_manX := $(foreach x,$(MAN_SECTIONS),install-man$(x)) |
126 | installdirs_manX := $(foreach x,$(MAN_SECTIONS),installdirs-man$(x)) | |
127 | uninstall_manX := $(foreach x,$(MAN_SECTIONS),uninstall-man$(x)) | |
128 | ||
129 | ||
ac288b42 AC |
130 | $(_man1pages): $(_man1dir)/%$(Z): $(MANDIR)/man1/% | $$(@D)/ |
131 | $(_man2pages): $(_man2dir)/%$(Z): $(MANDIR)/man2/% | $$(@D)/ | |
132 | $(_man2typepages): $(_man2typedir)/%$(Z): $(MANDIR)/man2type/% | $$(@D)/ | |
133 | $(_man3pages): $(_man3dir)/%$(Z): $(MANDIR)/man3/% | $$(@D)/ | |
134 | $(_man3constpages): $(_man3constdir)/%$(Z): $(MANDIR)/man3const/% | $$(@D)/ | |
135 | $(_man3headpages): $(_man3headdir)/%$(Z): $(MANDIR)/man3head/% | $$(@D)/ | |
136 | $(_man3typepages): $(_man3typedir)/%$(Z): $(MANDIR)/man3type/% | $$(@D)/ | |
137 | $(_man4pages): $(_man4dir)/%$(Z): $(MANDIR)/man4/% | $$(@D)/ | |
138 | $(_man5pages): $(_man5dir)/%$(Z): $(MANDIR)/man5/% | $$(@D)/ | |
139 | $(_man6pages): $(_man6dir)/%$(Z): $(MANDIR)/man6/% | $$(@D)/ | |
140 | $(_man7pages): $(_man7dir)/%$(Z): $(MANDIR)/man7/% | $$(@D)/ | |
141 | $(_man8pages): $(_man8dir)/%$(Z): $(MANDIR)/man8/% | $$(@D)/ | |
04fdef68 AC |
142 | |
143 | ||
144 | $(_manpages): | |
0110da57 AC |
145 | $(info INSTALL $@) |
146 | $(INSTALL_DATA) -T $< $@ | |
e0b0b717 AC |
147 | $(SED) -i \ |
148 | -e '/^\.so /s, man1/\(.*\)\.1$$, $(notdir $(man1dir))/\1$(man1ext),' \ | |
149 | -e '/^\.so /s, man2/\(.*\)\.2$$, $(notdir $(man2dir))/\1$(man2ext),' \ | |
150 | -e '/^\.so /s, man2type/\(.*\)\.2type$$, $(notdir $(man2typedir))/\1$(man2typeext),' \ | |
151 | -e '/^\.so /s, man3/\(.*\)\.3$$, $(notdir $(man3dir))/\1$(man3ext),' \ | |
152 | -e '/^\.so /s, man3const/\(.*\)\.3const$$, $(notdir $(man3constdir))/\1$(man3constext),' \ | |
153 | -e '/^\.so /s, man3head/\(.*\)\.3head$$, $(notdir $(man3headdir))/\1$(man3headext),' \ | |
154 | -e '/^\.so /s, man3type/\(.*\)\.3type$$, $(notdir $(man3typedir))/\1$(man3typeext),' \ | |
155 | -e '/^\.so /s, man4/\(.*\)\.4$$, $(notdir $(man4dir))/\1$(man4ext),' \ | |
156 | -e '/^\.so /s, man5/\(.*\)\.5$$, $(notdir $(man5dir))/\1$(man5ext),' \ | |
157 | -e '/^\.so /s, man6/\(.*\)\.6$$, $(notdir $(man6dir))/\1$(man6ext),' \ | |
158 | -e '/^\.so /s, man7/\(.*\)\.7$$, $(notdir $(man7dir))/\1$(man7ext),' \ | |
159 | -e '/^\.so /s, man8/\(.*\)\.8$$, $(notdir $(man8dir))/\1$(man8ext),' \ | |
160 | $@ | |
335acbfb AC |
161 | ifeq ($(LINK_PAGES),symlink) |
162 | if $(GREP) '^\.so ' <$@ >/dev/null; then \ | |
c4d8bc8f | 163 | $(GREP) '^\.so ' <$@ \ |
701ed069 | 164 | | $(SED) 's,^\.so \(.*\),../\1,' \ |
335acbfb AC |
165 | | $(XARGS) -I tgt $(LN) -fsT tgt $@; \ |
166 | fi | |
167 | endif | |
6a828d5b AC |
168 | ifeq ($(Z),.bz2) |
169 | if ! $(TEST) -L $@; then \ | |
c2fffefb | 170 | $(BZIP2) $(BZIP2FLAGS) <$@ \ |
6a828d5b AC |
171 | | $(SPONGE) $@; \ |
172 | fi | |
173 | else ifeq ($(Z),.gz) | |
1a35f5b7 | 174 | if ! $(TEST) -L $@; then \ |
c2fffefb | 175 | $(GZIP) $(GZIPFLAGS) - <$@ \ |
1a35f5b7 AC |
176 | | $(SPONGE) $@; \ |
177 | fi | |
b220bc5b AC |
178 | else ifeq ($(Z),.lz) |
179 | if ! $(TEST) -L $@; then \ | |
c2fffefb | 180 | $(LZIP) $(LZIPFLAGS) - <$@ \ |
b220bc5b AC |
181 | | $(SPONGE) $@; \ |
182 | fi | |
db579553 AC |
183 | else ifeq ($(Z),.xz) |
184 | if ! $(TEST) -L $@; then \ | |
185 | $(XZ) $(XZFLAGS) - <$@ \ | |
186 | | $(SPONGE) $@; \ | |
187 | fi | |
1a35f5b7 | 188 | endif |
0110da57 | 189 | |
ac288b42 | 190 | $(_mandirs_rmdir): $(_mandir)/man%/-rmdir: $$(_man%pages_rm) FORCE |
0110da57 AC |
191 | $(_mandir_rmdir): $(uninstall_manX) FORCE |
192 | ||
193 | ||
194 | .PHONY: $(install_manX) | |
a28ddbed | 195 | $(install_manX): install-man%: $$(_man%pages); |
0110da57 AC |
196 | |
197 | .PHONY: install-man | |
a28ddbed | 198 | install-man: $(install_manX); |
0110da57 | 199 | |
0110da57 | 200 | .PHONY: $(uninstall_manX) |
a28ddbed | 201 | $(uninstall_manX): uninstall-man%: $$(_man%pages_rm) $$(_man%dir_rmdir); |
0110da57 AC |
202 | |
203 | .PHONY: uninstall-man | |
a28ddbed | 204 | uninstall-man: $(_mandir_rmdir) $(uninstall_manX); |
0110da57 AC |
205 | |
206 | ||
b8d2c839 | 207 | endif # include guard |