]>
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 | ||
c988f384 | 26 | mandir := $(datarootdir)/man |
402d0926 | 27 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 28 | $(eval man$(s)dir := $(mandir)/man$(s))) |
402d0926 | 29 | $(foreach s, $(MANSECTIONS), \ |
1cf32969 | 30 | $(eval man$(s)ext := .$(s))) |
c988f384 AC |
31 | |
32 | ||
33 | _mandir := $(DESTDIR)$(mandir) | |
402d0926 | 34 | $(foreach s, $(MANSECTIONS), \ |
c988f384 AC |
35 | $(eval _man$(s)dir := $(DESTDIR)$(man$(s)dir))) |
36 | ||
402d0926 | 37 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 38 | $(eval _man$(s)pages := \ |
cbb5c883 | 39 | $(patsubst $(MAN$(s)DIR)/%, $(_man$(s)dir)/%$(Z), \ |
c988f384 | 40 | $(MAN$(s)PAGES)))) |
b941c69c | 41 | _manintropages := $(patsubst $(MANDIR)/%, $(_mandir)/%$(Z), $(MANINTROPAGES)) |
402d0926 | 42 | _manpages := $(_manintropages) $(foreach s, $(MANSECTIONS), $(_man$(s)pages)) |
c988f384 AC |
43 | |
44 | _manintropages_rm := $(addsuffix -rm, $(wildcard $(_manintropages))) | |
402d0926 | 45 | $(foreach s, $(MANSECTIONS), \ |
c988f384 AC |
46 | $(eval _man$(s)pages_rm := \ |
47 | $(addsuffix -rm, \ | |
48 | $(wildcard $(_man$(s)pages))))) | |
49 | ||
50 | ||
51 | $(_manintropages): $(_mandir)/%$(Z): $(MANDIR)/% | $$(@D)/ | |
402d0926 | 52 | $(foreach s, $(MANSECTIONS), \ |
b941c69c AC |
53 | $(eval $(_man$(s)pages): \ |
54 | $(_man$(s)dir)/%$(Z): \ | |
55 | $(MAN$(s)DIR)/% | $$$$(@D)/)) | |
04fdef68 AC |
56 | |
57 | ||
58 | $(_manpages): | |
0110da57 | 59 | $(info INSTALL $@) |
30c38a8b | 60 | <$< \ |
ee0086c3 | 61 | $(SED) $(foreach s, $(MANSECTIONS), \ |
1cf32969 | 62 | -e '/^\.so /s, man$(s)/\(.*\)\.$(s)$$, $(notdir $(man$(s)dir))/\1$(man$(s)ext)$(Z),') \ |
30c38a8b | 63 | | $(INSTALL_DATA) -T /dev/stdin $@ |
335acbfb AC |
64 | ifeq ($(LINK_PAGES),symlink) |
65 | if $(GREP) '^\.so ' <$@ >/dev/null; then \ | |
c4d8bc8f | 66 | $(GREP) '^\.so ' <$@ \ |
701ed069 | 67 | | $(SED) 's,^\.so \(.*\),../\1,' \ |
335acbfb AC |
68 | | $(XARGS) -I tgt $(LN) -fsT tgt $@; \ |
69 | fi | |
70 | endif | |
6a828d5b AC |
71 | ifeq ($(Z),.bz2) |
72 | if ! $(TEST) -L $@; then \ | |
c2fffefb | 73 | $(BZIP2) $(BZIP2FLAGS) <$@ \ |
6a828d5b AC |
74 | | $(SPONGE) $@; \ |
75 | fi | |
76 | else ifeq ($(Z),.gz) | |
1a35f5b7 | 77 | if ! $(TEST) -L $@; then \ |
799cfcf2 | 78 | $(GZIP) $(GZIPFLAGS) <$@ \ |
1a35f5b7 AC |
79 | | $(SPONGE) $@; \ |
80 | fi | |
b220bc5b AC |
81 | else ifeq ($(Z),.lz) |
82 | if ! $(TEST) -L $@; then \ | |
799cfcf2 | 83 | $(LZIP) $(LZIPFLAGS) <$@ \ |
b220bc5b AC |
84 | | $(SPONGE) $@; \ |
85 | fi | |
db579553 AC |
86 | else ifeq ($(Z),.xz) |
87 | if ! $(TEST) -L $@; then \ | |
799cfcf2 | 88 | $(XZ) $(XZFLAGS) <$@ \ |
db579553 AC |
89 | | $(SPONGE) $@; \ |
90 | fi | |
1a35f5b7 | 91 | endif |
0110da57 | 92 | |
0110da57 | 93 | |
ad0321aa AC |
94 | .PHONY: install-manintro |
95 | install-manintro: $(_manintropages); | |
402d0926 | 96 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 97 | $(eval .PHONY: install-man$(s))) |
402d0926 | 98 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 99 | $(eval install-man$(s): $(_man$(s)pages);)) |
0110da57 | 100 | .PHONY: install-man |
402d0926 | 101 | install-man: install-manintro $(foreach s, $(MANSECTIONS), install-man$(s)); |
0110da57 | 102 | |
ad0321aa AC |
103 | .PHONY: uninstall-manintro |
104 | uninstall-manintro: $(_manintropages_rm); | |
402d0926 | 105 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 106 | $(eval .PHONY: uninstall-man$(s))) |
402d0926 | 107 | $(foreach s, $(MANSECTIONS), \ |
c988f384 | 108 | $(eval uninstall-man$(s): $(_man$(s)pages_rm);)) |
0110da57 | 109 | .PHONY: uninstall-man |
402d0926 | 110 | uninstall-man: uninstall-manintro $(foreach s, $(MANSECTIONS), uninstall-man$(s)); |
0110da57 AC |
111 | |
112 | ||
b8d2c839 | 113 | endif # include guard |