162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
262306a36Sopenharmony_ciinclude ../../../scripts/Makefile.include
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciINSTALL ?= install
562306a36Sopenharmony_ciRM ?= rm -f
662306a36Sopenharmony_ciRMDIR ?= rmdir --ignore-fail-on-non-empty
762306a36Sopenharmony_ci
862306a36Sopenharmony_ciifeq ($(V),1)
962306a36Sopenharmony_ci  Q =
1062306a36Sopenharmony_cielse
1162306a36Sopenharmony_ci  Q = @
1262306a36Sopenharmony_ciendif
1362306a36Sopenharmony_ci
1462306a36Sopenharmony_ciprefix ?= /usr/local
1562306a36Sopenharmony_cimandir ?= $(prefix)/man
1662306a36Sopenharmony_ciman8dir = $(mandir)/man8
1762306a36Sopenharmony_ci
1862306a36Sopenharmony_ciMAN8_RST = $(wildcard bpftool*.rst)
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci_DOC_MAN8 = $(patsubst %.rst,%.8,$(MAN8_RST))
2162306a36Sopenharmony_ciDOC_MAN8 = $(addprefix $(OUTPUT),$(_DOC_MAN8))
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciman: man8
2462306a36Sopenharmony_ciman8: $(DOC_MAN8)
2562306a36Sopenharmony_ci
2662306a36Sopenharmony_ciRST2MAN_DEP := $(shell command -v rst2man 2>/dev/null)
2762306a36Sopenharmony_ciRST2MAN_OPTS += --verbose --strip-comments
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_cilist_pages = $(sort $(basename $(filter-out $(1),$(MAN8_RST))))
3062306a36Sopenharmony_cisee_also = $(subst " ",, \
3162306a36Sopenharmony_ci	"\n" \
3262306a36Sopenharmony_ci	"SEE ALSO\n" \
3362306a36Sopenharmony_ci	"========\n" \
3462306a36Sopenharmony_ci	"\t**bpf**\ (2),\n" \
3562306a36Sopenharmony_ci	"\t**bpf-helpers**\\ (7)" \
3662306a36Sopenharmony_ci	$(foreach page,$(call list_pages,$(1)),",\n\t**$(page)**\\ (8)") \
3762306a36Sopenharmony_ci	"\n")
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci$(OUTPUT)%.8: %.rst
4062306a36Sopenharmony_ciifndef RST2MAN_DEP
4162306a36Sopenharmony_ci	$(error "rst2man not found, but required to generate man pages")
4262306a36Sopenharmony_ciendif
4362306a36Sopenharmony_ci	$(QUIET_GEN)( cat $< ; printf "%b" $(call see_also,$<) ) | rst2man $(RST2MAN_OPTS) > $@
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ciclean:
4662306a36Sopenharmony_ci	$(call QUIET_CLEAN, Documentation)
4762306a36Sopenharmony_ci	$(Q)$(RM) $(DOC_MAN8)
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ciinstall: man
5062306a36Sopenharmony_ci	$(call QUIET_INSTALL, Documentation-man)
5162306a36Sopenharmony_ci	$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
5262306a36Sopenharmony_ci	$(Q)$(INSTALL) -m 644 $(DOC_MAN8) $(DESTDIR)$(man8dir)
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ciuninstall:
5562306a36Sopenharmony_ci	$(call QUIET_UNINST, Documentation-man)
5662306a36Sopenharmony_ci	$(Q)$(RM) $(addprefix $(DESTDIR)$(man8dir)/,$(_DOC_MAN8))
5762306a36Sopenharmony_ci	$(Q)$(RMDIR) $(DESTDIR)$(man8dir)
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci.PHONY: man man8 clean install uninstall
6062306a36Sopenharmony_ci.DEFAULT_GOAL := man
61