]> git.ipfire.org Git - thirdparty/man-pages.git/blame - share/mk/install/man.mk
*.mk: srcfix
[thirdparty/man-pages.git] / share / mk / install / man.mk
CommitLineData
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
7ifndef MAKEFILE_INSTALL_MAN_INCLUDED
8MAKEFILE_INSTALL_MAN_INCLUDED := 1
9
10
edaa12e6
AC
11include $(MAKEFILEDIR)/cmd.mk
12include $(MAKEFILEDIR)/compress.mk
13include $(MAKEFILEDIR)/install/_.mk
14include $(MAKEFILEDIR)/src.mk
8bb88d5f
AC
15
16
335acbfb
AC
17LINK_PAGES := .so
18ifeq ($(LINK_PAGES),.so)
19else ifeq ($(LINK_PAGES),symlink)
20else
21$(warning "LINK_PAGES": "$(LINK_PAGES)")
22$(error Valid values for "LINK_PAGES": [".so", "symlink"])
23endif
24
25
c988f384 26mandir := $(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
64ifeq ($(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
70endif
6a828d5b
AC
71ifeq ($(Z),.bz2)
72 if ! $(TEST) -L $@; then \
c2fffefb 73 $(BZIP2) $(BZIP2FLAGS) <$@ \
6a828d5b
AC
74 | $(SPONGE) $@; \
75 fi
76else ifeq ($(Z),.gz)
1a35f5b7 77 if ! $(TEST) -L $@; then \
799cfcf2 78 $(GZIP) $(GZIPFLAGS) <$@ \
1a35f5b7
AC
79 | $(SPONGE) $@; \
80 fi
b220bc5b
AC
81else ifeq ($(Z),.lz)
82 if ! $(TEST) -L $@; then \
799cfcf2 83 $(LZIP) $(LZIPFLAGS) <$@ \
b220bc5b
AC
84 | $(SPONGE) $@; \
85 fi
db579553
AC
86else ifeq ($(Z),.xz)
87 if ! $(TEST) -L $@; then \
799cfcf2 88 $(XZ) $(XZFLAGS) <$@ \
db579553
AC
89 | $(SPONGE) $@; \
90 fi
1a35f5b7 91endif
0110da57 92
0110da57 93
ad0321aa
AC
94.PHONY: install-manintro
95install-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 101install-man: install-manintro $(foreach s, $(MANSECTIONS), install-man$(s));
0110da57 102
ad0321aa
AC
103.PHONY: uninstall-manintro
104uninstall-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 110uninstall-man: uninstall-manintro $(foreach s, $(MANSECTIONS), uninstall-man$(s));
0110da57
AC
111
112
b8d2c839 113endif # include guard