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