1 # Copyright 2021-2024, Alejandro Colomar <alx@kernel.org>
2 # SPDX-License-Identifier: LGPL-3.0-only WITH LGPL-3.0-linking-exception
5 ifndef MAKEFILE_INSTALL_MAN_INCLUDED
6 MAKEFILE_INSTALL_MAN_INCLUDED
:= 1
9 include $(MAKEFILEDIR
)/configure
/build-depends
/coreutils
/cat.mk
10 include $(MAKEFILEDIR
)/configure
/build-depends
/coreutils
/install.mk
11 include $(MAKEFILEDIR
)/configure
/build-depends
/coreutils
/ln.mk
12 include $(MAKEFILEDIR
)/configure
/build-depends
/coreutils
/test.mk
13 include $(MAKEFILEDIR
)/configure
/build-depends
/findutils
/xargs.mk
14 include $(MAKEFILEDIR
)/configure
/build-depends
/grep
/grep.mk
15 include $(MAKEFILEDIR
)/configure
/build-depends
/moreutils
/sponge.mk
16 include $(MAKEFILEDIR
)/configure
/build-depends
/sed
/sed.mk
17 include $(MAKEFILEDIR
)/configure
/directory_variables
/install.mk
18 include $(MAKEFILEDIR
)/configure
/directory_variables
/src.mk
19 include $(MAKEFILEDIR
)/configure
/man
/link_pages.mk
20 include $(MAKEFILEDIR
)/install/_.mk
21 include $(MAKEFILEDIR
)/src
/man.mk
24 _mandir
:= $(DESTDIR
)$(mandir)
25 $(foreach s
, $(MANSECTIONS
), \
26 $(eval _man
$(s
)dir := $(DESTDIR
)$(man
$(s
)dir)))
28 $(foreach s
, $(MANSECTIONS
), \
29 $(eval _man
$(s
)pages
:= \
30 $(patsubst $(MAN
$(s
)DIR
)/%.
$(s
), $(_man
$(s
)dir)/%$(man
$(s
)ext
), \
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
))
39 _manintropages_rm
:= $(addsuffix -rm, $(wildcard $(_manintropages
)))
40 $(foreach s
, $(MANSECTIONS
), \
41 $(eval _man
$(s
)pages_rm
:= \
43 $(wildcard $(_man
$(s
)pages
)))))
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
)/))
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),') \
58 ifeq ($(LINK_PAGES
),symlink
)
60 | if
$(GREP
) '^\.so ' >/dev
/null
; then \
61 $(GREP
) '^\.so ' <$@ \
62 |
$(SED
) 's,^\.so \(.*\),../\1,' \
63 |
$(XARGS
) -I tgt
$(LN
) -fsT tgt
$@
; \
68 .PHONY
: install-manintro
69 install-manintro
: $(_manintropages
);
70 $(foreach s
, $(MANSECTIONS
), \
71 $(eval .PHONY
: install-man
$(s
)))
72 $(foreach s
, $(MANSECTIONS
), \
73 $(eval install-man
$(s
): $(_man
$(s
)pages
);))
75 install-man
: install-manintro
$(foreach s
, $(MANSECTIONS
), install-man
$(s
));
77 .PHONY
: uninstall-manintro
78 uninstall-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
);))
84 uninstall-man
: uninstall-manintro
$(foreach s
, $(MANSECTIONS
), uninstall-man
$(s
));