]> git.ipfire.org Git - thirdparty/man-pages.git/blame_incremental - share/mk/install/man.mk
share/mk/: Read files before 'if'
[thirdparty/man-pages.git] / share / mk / install / man.mk
... / ...
CommitLineData
1# Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
2# SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
3
4
5ifndef MAKEFILE_INSTALL_MAN_INCLUDED
6MAKEFILE_INSTALL_MAN_INCLUDED := 1
7
8
9include $(MAKEFILEDIR)/configure/build-depends/coreutils/cat.mk
10include $(MAKEFILEDIR)/configure/build-depends/coreutils/install.mk
11include $(MAKEFILEDIR)/configure/build-depends/coreutils/ln.mk
12include $(MAKEFILEDIR)/configure/build-depends/coreutils/test.mk
13include $(MAKEFILEDIR)/configure/build-depends/findutils/xargs.mk
14include $(MAKEFILEDIR)/configure/build-depends/grep/grep.mk
15include $(MAKEFILEDIR)/configure/build-depends/moreutils/sponge.mk
16include $(MAKEFILEDIR)/configure/build-depends/sed/sed.mk
17include $(MAKEFILEDIR)/configure/directory_variables/install.mk
18include $(MAKEFILEDIR)/configure/directory_variables/src.mk
19include $(MAKEFILEDIR)/configure/man/link_pages.mk
20include $(MAKEFILEDIR)/install/_.mk
21include $(MAKEFILEDIR)/src/man.mk
22
23
24_mandir := $(DESTDIR)$(mandir)
25$(foreach s, $(MANSECTIONS), \
26 $(eval _man$(s)dir := $(DESTDIR)$(man$(s)dir)))
27
28$(foreach s, $(MANSECTIONS), \
29 $(eval _man$(s)pages := \
30 $(patsubst $(MAN$(s)DIR)/%.$(s), $(_man$(s)dir)/%$(man$(s)ext), \
31 $(MAN$(s)PAGES))))
32$(foreach s, $(MANSECTIONS), \
33 $(eval _man$(s)intropage := \
34 $(patsubst $(MAN$(s)DIR)/%.$(s), $(_man$(s)dir)/%$(man$(s)ext), \
35 $(MAN$(s)INTROPAGE))))
36_manintropages := $(foreach s, $(MANSECTIONS), $(_man$(s)intropage))
37_manpages := $(_manintropages) $(foreach s, $(MANSECTIONS), $(_man$(s)pages))
38
39_manintropages_rm := $(addsuffix -rm, $(wildcard $(_manintropages)))
40$(foreach s, $(MANSECTIONS), \
41 $(eval _man$(s)pages_rm := \
42 $(addsuffix -rm, \
43 $(wildcard $(_man$(s)pages)))))
44
45
46$(foreach s, $(MANSECTIONS), \
47 $(eval $(_man$(s)pages) $(_man$(s)intropage): \
48 $(_man$(s)dir)/%$(man$(s)ext): \
49 $(_MANDIR)/man$(s)/%.$(s) $(MK) | $$$$(@D)/))
50
51
52$(_manpages):
53 $(info $(INFO_)INSTALL $@)
54 $(INSTALL_DATA) -T $< $@
55 $(SED) -i $(foreach s, $(MANSECTIONS), \
56 -e '/^\.so /s, man$(s)/\(.*\)\.$(s)$$, $(notdir $(man$(s)dir))/\1$(man$(s)ext),') \
57 $@
58ifeq ($(LINK_PAGES),symlink)
59 $(CAT) <$@ \
60 | if $(GREP) '^\.so ' >/dev/null; then \
61 $(GREP) '^\.so ' <$@ \
62 | $(SED) 's,^\.so \(.*\),../\1,' \
63 | $(XARGS) -I tgt $(LN) -fsT tgt $@; \
64 fi
65endif
66
67
68.PHONY: install-manintro
69install-manintro: $(_manintropages);
70$(foreach s, $(MANSECTIONS), \
71 $(eval .PHONY: install-man$(s)))
72$(foreach s, $(MANSECTIONS), \
73 $(eval install-man$(s): $(_man$(s)pages);))
74.PHONY: install-man
75install-man: install-manintro $(foreach s, $(MANSECTIONS), install-man$(s));
76
77.PHONY: uninstall-manintro
78uninstall-manintro: $(_manintropages_rm);
79$(foreach s, $(MANSECTIONS), \
80 $(eval .PHONY: uninstall-man$(s)))
81$(foreach s, $(MANSECTIONS), \
82 $(eval uninstall-man$(s): $(_man$(s)pages_rm);))
83.PHONY: uninstall-man
84uninstall-man: uninstall-manintro $(foreach s, $(MANSECTIONS), uninstall-man$(s));
85
86
87endif # include guard