]>
Commit | Line | Data |
---|---|---|
0110da57 | 1 | ######################################################################## |
cb0f97b2 | 2 | # Copyright (C) 2021, 2022 Alejandro Colomar <alx@kernel.org> |
0110da57 AC |
3 | # SPDX-License-Identifier: GPL-2.0 OR LGPL-2.0 |
4 | ######################################################################## | |
5 | ||
6 | ||
7 | ifndef MAKEFILE_INSTALL_MAN_INCLUDED | |
8 | MAKEFILE_INSTALL_MAN_INCLUDED := 1 | |
9 | ||
10 | ||
8bb88d5f | 11 | include $(srcdir)/lib/install.mk |
cb60a7be | 12 | include $(srcdir)/lib/src.mk |
8bb88d5f AC |
13 | |
14 | ||
451a27a7 | 15 | mandir := $(datarootdir)/man |
451a27a7 AC |
16 | man1dir := $(mandir)/man1 |
17 | man2dir := $(mandir)/man2 | |
18 | man2typedir := $(mandir)/man2type | |
19 | man3dir := $(mandir)/man3 | |
23461f53 | 20 | man3constdir:= $(mandir)/man3const |
5f836211 | 21 | man3headdir := $(mandir)/man3head |
451a27a7 AC |
22 | man3typedir := $(mandir)/man3type |
23 | man4dir := $(mandir)/man4 | |
24 | man5dir := $(mandir)/man5 | |
25 | man6dir := $(mandir)/man6 | |
26 | man7dir := $(mandir)/man7 | |
27 | man8dir := $(mandir)/man8 | |
451a27a7 AC |
28 | man1ext := .1 |
29 | man2ext := .2 | |
30 | man2typeext := .2type | |
31 | man3ext := .3 | |
5adb4982 | 32 | man3constext:= .3const |
5f836211 | 33 | man3headext := .3head |
451a27a7 AC |
34 | man3typeext := .3type |
35 | man4ext := .4 | |
36 | man5ext := .5 | |
37 | man6ext := .6 | |
38 | man7ext := .7 | |
39 | man8ext := .8 | |
04fdef68 AC |
40 | |
41 | ||
42 | _mandir := $(DESTDIR)$(mandir) | |
43 | _man1dir := $(DESTDIR)$(man1dir) | |
44 | _man2dir := $(DESTDIR)$(man2dir) | |
45 | _man2typedir := $(DESTDIR)$(man2typedir) | |
46 | _man3dir := $(DESTDIR)$(man3dir) | |
47 | _man3constdir := $(DESTDIR)$(man3constdir) | |
48 | _man3headdir := $(DESTDIR)$(man3headdir) | |
49 | _man3typedir := $(DESTDIR)$(man3typedir) | |
50 | _man4dir := $(DESTDIR)$(man4dir) | |
51 | _man5dir := $(DESTDIR)$(man5dir) | |
52 | _man6dir := $(DESTDIR)$(man6dir) | |
53 | _man7dir := $(DESTDIR)$(man7dir) | |
54 | _man8dir := $(DESTDIR)$(man8dir) | |
55 | _mandirs := $(_man1dir)/. \ | |
56 | $(_man2dir)/. $(_man2typedir)/. \ | |
57 | $(_man3dir)/. $(_man3constdir)/. $(_man3headdir)/. $(_man3typedir)/. \ | |
58 | $(_man4dir)/. \ | |
59 | $(_man5dir)/. \ | |
60 | $(_man6dir)/. \ | |
61 | $(_man7dir)/. \ | |
62 | $(_man8dir)/. \ | |
63 | ||
64 | _man1pages := $(patsubst $(MANDIR)/man1/%,$(_man1dir)/%,$(MAN1PAGES)) | |
65 | _man2pages := $(patsubst $(MANDIR)/man2/%,$(_man2dir)/%,$(MAN2PAGES)) | |
66 | _man2typepages := $(patsubst $(MANDIR)/man2type/%,$(_man2typedir)/%,$(MAN2TYPEPAGES)) | |
67 | _man3pages := $(patsubst $(MANDIR)/man3/%,$(_man3dir)/%,$(MAN3PAGES)) | |
68 | _man3constpages := $(patsubst $(MANDIR)/man3const/%,$(_man3constdir)/%,$(MAN3CONSTPAGES)) | |
69 | _man3headpages := $(patsubst $(MANDIR)/man3head/%,$(_man3headdir)/%,$(MAN3HEADPAGES)) | |
70 | _man3typepages := $(patsubst $(MANDIR)/man3type/%,$(_man3typedir)/%,$(MAN3TYPEPAGES)) | |
71 | _man4pages := $(patsubst $(MANDIR)/man4/%,$(_man4dir)/%,$(MAN4PAGES)) | |
72 | _man5pages := $(patsubst $(MANDIR)/man5/%,$(_man5dir)/%,$(MAN5PAGES)) | |
73 | _man6pages := $(patsubst $(MANDIR)/man6/%,$(_man6dir)/%,$(MAN6PAGES)) | |
74 | _man7pages := $(patsubst $(MANDIR)/man7/%,$(_man7dir)/%,$(MAN7PAGES)) | |
75 | _man8pages := $(patsubst $(MANDIR)/man8/%,$(_man8dir)/%,$(MAN8PAGES)) | |
76 | _manpages := $(_man1pages) \ | |
77 | $(_man2pages) $(_man2typepages) \ | |
78 | $(_man3pages) $(_man3constpages) $(_man3headpages) $(_man3typepages) \ | |
79 | $(_man4pages) \ | |
80 | $(_man5pages) \ | |
81 | $(_man6pages) \ | |
82 | $(_man7pages) \ | |
83 | $(_man8pages) | |
451a27a7 | 84 | |
451a27a7 AC |
85 | _man1pages_rm := $(addsuffix -rm,$(wildcard $(_man1pages))) |
86 | _man2pages_rm := $(addsuffix -rm,$(wildcard $(_man2pages))) | |
87 | _man2typepages_rm := $(addsuffix -rm,$(wildcard $(_man2typepages))) | |
88 | _man3pages_rm := $(addsuffix -rm,$(wildcard $(_man3pages))) | |
23461f53 | 89 | _man3constpages_rm:= $(addsuffix -rm,$(wildcard $(_man3constpages))) |
5f836211 | 90 | _man3headpages_rm := $(addsuffix -rm,$(wildcard $(_man3headpages))) |
451a27a7 AC |
91 | _man3typepages_rm := $(addsuffix -rm,$(wildcard $(_man3typepages))) |
92 | _man4pages_rm := $(addsuffix -rm,$(wildcard $(_man4pages))) | |
93 | _man5pages_rm := $(addsuffix -rm,$(wildcard $(_man5pages))) | |
94 | _man6pages_rm := $(addsuffix -rm,$(wildcard $(_man6pages))) | |
95 | _man7pages_rm := $(addsuffix -rm,$(wildcard $(_man7pages))) | |
96 | _man8pages_rm := $(addsuffix -rm,$(wildcard $(_man8pages))) | |
97 | ||
98 | _mandirs_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandirs))) | |
451a27a7 AC |
99 | _man1dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man1dir))) |
100 | _man2dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man2dir))) | |
101 | _man2typedir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man2typedir))) | |
102 | _man3dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3dir))) | |
23461f53 | 103 | _man3constdir_rmdir:= $(addsuffix -rmdir,$(wildcard $(_man3constdir))) |
5f836211 | 104 | _man3headdir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3headdir))) |
451a27a7 AC |
105 | _man3typedir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man3typedir))) |
106 | _man4dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man4dir))) | |
107 | _man5dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man5dir))) | |
108 | _man6dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man6dir))) | |
109 | _man7dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man7dir))) | |
110 | _man8dir_rmdir := $(addsuffix -rmdir,$(wildcard $(_man8dir))) | |
111 | _mandir_rmdir := $(addsuffix -rmdir,$(wildcard $(_mandir)/.)) | |
112 | ||
23461f53 | 113 | MAN_SECTIONS := 1 2 2type 3 3const 3head 3type 4 5 6 7 8 |
0110da57 AC |
114 | install_manX := $(foreach x,$(MAN_SECTIONS),install-man$(x)) |
115 | installdirs_manX := $(foreach x,$(MAN_SECTIONS),installdirs-man$(x)) | |
116 | uninstall_manX := $(foreach x,$(MAN_SECTIONS),uninstall-man$(x)) | |
117 | ||
118 | ||
04fdef68 AC |
119 | $(_man1pages): $(_man1dir)/%: $(MANDIR)/man1/% | $$(@D)/. |
120 | $(_man2pages): $(_man2dir)/%: $(MANDIR)/man2/% | $$(@D)/. | |
121 | $(_man2typepages): $(_man2typedir)/%: $(MANDIR)/man2type/% | $$(@D)/. | |
122 | $(_man3pages): $(_man3dir)/%: $(MANDIR)/man3/% | $$(@D)/. | |
123 | $(_man3constpages): $(_man3constdir)/%: $(MANDIR)/man3const/% | $$(@D)/. | |
124 | $(_man3headpages): $(_man3headdir)/%: $(MANDIR)/man3head/% | $$(@D)/. | |
125 | $(_man3typepages): $(_man3typedir)/%: $(MANDIR)/man3type/% | $$(@D)/. | |
126 | $(_man4pages): $(_man4dir)/%: $(MANDIR)/man4/% | $$(@D)/. | |
127 | $(_man5pages): $(_man5dir)/%: $(MANDIR)/man5/% | $$(@D)/. | |
128 | $(_man6pages): $(_man6dir)/%: $(MANDIR)/man6/% | $$(@D)/. | |
129 | $(_man7pages): $(_man7dir)/%: $(MANDIR)/man7/% | $$(@D)/. | |
130 | $(_man8pages): $(_man8dir)/%: $(MANDIR)/man8/% | $$(@D)/. | |
131 | ||
132 | ||
133 | $(_manpages): | |
0110da57 AC |
134 | $(info INSTALL $@) |
135 | $(INSTALL_DATA) -T $< $@ | |
e0b0b717 AC |
136 | $(SED) -i \ |
137 | -e '/^\.so /s, man1/\(.*\)\.1$$, $(notdir $(man1dir))/\1$(man1ext),' \ | |
138 | -e '/^\.so /s, man2/\(.*\)\.2$$, $(notdir $(man2dir))/\1$(man2ext),' \ | |
139 | -e '/^\.so /s, man2type/\(.*\)\.2type$$, $(notdir $(man2typedir))/\1$(man2typeext),' \ | |
140 | -e '/^\.so /s, man3/\(.*\)\.3$$, $(notdir $(man3dir))/\1$(man3ext),' \ | |
141 | -e '/^\.so /s, man3const/\(.*\)\.3const$$, $(notdir $(man3constdir))/\1$(man3constext),' \ | |
142 | -e '/^\.so /s, man3head/\(.*\)\.3head$$, $(notdir $(man3headdir))/\1$(man3headext),' \ | |
143 | -e '/^\.so /s, man3type/\(.*\)\.3type$$, $(notdir $(man3typedir))/\1$(man3typeext),' \ | |
144 | -e '/^\.so /s, man4/\(.*\)\.4$$, $(notdir $(man4dir))/\1$(man4ext),' \ | |
145 | -e '/^\.so /s, man5/\(.*\)\.5$$, $(notdir $(man5dir))/\1$(man5ext),' \ | |
146 | -e '/^\.so /s, man6/\(.*\)\.6$$, $(notdir $(man6dir))/\1$(man6ext),' \ | |
147 | -e '/^\.so /s, man7/\(.*\)\.7$$, $(notdir $(man7dir))/\1$(man7ext),' \ | |
148 | -e '/^\.so /s, man8/\(.*\)\.8$$, $(notdir $(man8dir))/\1$(man8ext),' \ | |
149 | $@ | |
0110da57 AC |
150 | |
151 | $(_mandirs): %/.: | $$(dir %). $(_mandir)/. | |
152 | ||
153 | $(_mandirs_rmdir): $(_mandir)/man%/.-rmdir: $$(_man%pages_rm) FORCE | |
154 | $(_mandir_rmdir): $(uninstall_manX) FORCE | |
155 | ||
156 | ||
157 | .PHONY: $(install_manX) | |
92016b11 | 158 | $(install_manX): install-man%: $$(_man%pages) |
0110da57 AC |
159 | @: |
160 | ||
161 | .PHONY: install-man | |
162 | install-man: $(install_manX) | |
163 | @: | |
164 | ||
0110da57 AC |
165 | .PHONY: $(uninstall_manX) |
166 | $(uninstall_manX): uninstall-man%: $$(_man%pages_rm) $$(_man%dir_rmdir) | |
167 | @: | |
168 | ||
169 | .PHONY: uninstall-man | |
170 | uninstall-man: $(_mandir_rmdir) $(uninstall_manX) | |
171 | @: | |
172 | ||
173 | ||
174 | endif # MAKEFILE_INSTALL_MAN_INCLUDED |