]> git.ipfire.org Git - thirdparty/man-pages.git/blame - share/mk/install/man.mk
share/mk/: build-pdf-book: Use the system's man(7) macros
[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
16322535
AC
9include $(MAKEFILEDIR)/configure/build-depends/coreutils/install.mk
10include $(MAKEFILEDIR)/configure/build-depends/coreutils/ln.mk
11include $(MAKEFILEDIR)/configure/build-depends/coreutils/test.mk
12include $(MAKEFILEDIR)/configure/build-depends/findutils/xargs.mk
13include $(MAKEFILEDIR)/configure/build-depends/grep/grep.mk
16322535
AC
14include $(MAKEFILEDIR)/configure/build-depends/moreutils/sponge.mk
15include $(MAKEFILEDIR)/configure/build-depends/sed/sed.mk
57d0f8b4
AC
16include $(MAKEFILEDIR)/configure/directory_variables/install.mk
17include $(MAKEFILEDIR)/configure/directory_variables/src.mk
18include $(MAKEFILEDIR)/configure/man/link_pages.mk
edaa12e6 19include $(MAKEFILEDIR)/install/_.mk
57d0f8b4 20include $(MAKEFILEDIR)/src/man.mk
8bb88d5f
AC
21
22
c988f384 23_mandir := $(DESTDIR)$(mandir)
402d0926 24$(foreach s, $(MANSECTIONS), \
c988f384
AC
25 $(eval _man$(s)dir := $(DESTDIR)$(man$(s)dir)))
26
402d0926 27$(foreach s, $(MANSECTIONS), \
c988f384 28 $(eval _man$(s)pages := \
dbcf1323 29 $(patsubst $(MAN$(s)DIR)/%.$(s), $(_man$(s)dir)/%$(man$(s)ext), \
c988f384 30 $(MAN$(s)PAGES))))
333bd846
AC
31$(foreach s, $(MANSECTIONS), \
32 $(eval _man$(s)intropage := \
dbcf1323 33 $(patsubst $(MAN$(s)DIR)/%.$(s), $(_man$(s)dir)/%$(man$(s)ext), \
333bd846
AC
34 $(MAN$(s)INTROPAGE))))
35_manintropages := $(foreach s, $(MANSECTIONS), $(_man$(s)intropage))
402d0926 36_manpages := $(_manintropages) $(foreach s, $(MANSECTIONS), $(_man$(s)pages))
c988f384
AC
37
38_manintropages_rm := $(addsuffix -rm, $(wildcard $(_manintropages)))
402d0926 39$(foreach s, $(MANSECTIONS), \
c988f384
AC
40 $(eval _man$(s)pages_rm := \
41 $(addsuffix -rm, \
42 $(wildcard $(_man$(s)pages)))))
43
44
402d0926 45$(foreach s, $(MANSECTIONS), \
333bd846 46 $(eval $(_man$(s)pages) $(_man$(s)intropage): \
dbcf1323 47 $(_man$(s)dir)/%$(man$(s)ext): \
63d245ab 48 $(_MANDIR)/man$(s)/%.$(s) $(MK) | $$$$(@D)/))
04fdef68
AC
49
50
51$(_manpages):
d965e737 52 $(info $(INFO_)INSTALL $@)
30c38a8b 53 <$< \
ee0086c3 54 $(SED) $(foreach s, $(MANSECTIONS), \
dbcf1323 55 -e '/^\.so /s, man$(s)/\(.*\)\.$(s)$$, $(notdir $(man$(s)dir))/\1$(man$(s)ext),') \
30c38a8b 56 | $(INSTALL_DATA) -T /dev/stdin $@
335acbfb
AC
57ifeq ($(LINK_PAGES),symlink)
58 if $(GREP) '^\.so ' <$@ >/dev/null; then \
c4d8bc8f 59 $(GREP) '^\.so ' <$@ \
701ed069 60 | $(SED) 's,^\.so \(.*\),../\1,' \
335acbfb
AC
61 | $(XARGS) -I tgt $(LN) -fsT tgt $@; \
62 fi
63endif
0110da57 64
0110da57 65
ad0321aa
AC
66.PHONY: install-manintro
67install-manintro: $(_manintropages);
402d0926 68$(foreach s, $(MANSECTIONS), \
c988f384 69 $(eval .PHONY: install-man$(s)))
402d0926 70$(foreach s, $(MANSECTIONS), \
c988f384 71 $(eval install-man$(s): $(_man$(s)pages);))
0110da57 72.PHONY: install-man
402d0926 73install-man: install-manintro $(foreach s, $(MANSECTIONS), install-man$(s));
0110da57 74
ad0321aa
AC
75.PHONY: uninstall-manintro
76uninstall-manintro: $(_manintropages_rm);
402d0926 77$(foreach s, $(MANSECTIONS), \
c988f384 78 $(eval .PHONY: uninstall-man$(s)))
402d0926 79$(foreach s, $(MANSECTIONS), \
c988f384 80 $(eval uninstall-man$(s): $(_man$(s)pages_rm);))
0110da57 81.PHONY: uninstall-man
402d0926 82uninstall-man: uninstall-manintro $(foreach s, $(MANSECTIONS), uninstall-man$(s));
0110da57
AC
83
84
b8d2c839 85endif # include guard