]> git.ipfire.org Git - thirdparty/man-pages.git/blame - lib/install-man.mk
install-man.mk, src.mk: Respect user-specified man dirs
[thirdparty/man-pages.git] / lib / install-man.mk
CommitLineData
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
7ifndef MAKEFILE_INSTALL_MAN_INCLUDED
8MAKEFILE_INSTALL_MAN_INCLUDED := 1
9
10
8bb88d5f 11include $(srcdir)/lib/install.mk
cb60a7be 12include $(srcdir)/lib/src.mk
8bb88d5f
AC
13
14
451a27a7 15mandir := $(datarootdir)/man
451a27a7
AC
16man1dir := $(mandir)/man1
17man2dir := $(mandir)/man2
18man2typedir := $(mandir)/man2type
19man3dir := $(mandir)/man3
23461f53 20man3constdir:= $(mandir)/man3const
5f836211 21man3headdir := $(mandir)/man3head
451a27a7
AC
22man3typedir := $(mandir)/man3type
23man4dir := $(mandir)/man4
24man5dir := $(mandir)/man5
25man6dir := $(mandir)/man6
26man7dir := $(mandir)/man7
27man8dir := $(mandir)/man8
451a27a7
AC
28man1ext := .1
29man2ext := .2
30man2typeext := .2type
31man3ext := .3
5adb4982 32man3constext:= .3const
5f836211 33man3headext := .3head
451a27a7
AC
34man3typeext := .3type
35man4ext := .4
36man5ext := .5
37man6ext := .6
38man7ext := .7
39man8ext := .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 113MAN_SECTIONS := 1 2 2type 3 3const 3head 3type 4 5 6 7 8
0110da57
AC
114install_manX := $(foreach x,$(MAN_SECTIONS),install-man$(x))
115installdirs_manX := $(foreach x,$(MAN_SECTIONS),installdirs-man$(x))
116uninstall_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
162install-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
170uninstall-man: $(_mandir_rmdir) $(uninstall_manX)
171 @:
172
173
174endif # MAKEFILE_INSTALL_MAN_INCLUDED