mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2025-01-10 15:54:39 +08:00
18841da981
The "SEE ALSO" sections of bpftool's manual pages refer to bpf(2), bpf-helpers(7), then all existing bpftool man pages (save the current one). This leads to nearly-identical lists being duplicated in all manual pages. Ideally, when a new page is created, all lists should be updated accordingly, but this has led to omissions and inconsistencies multiple times in the past. Let's take it out of the RST files and generate the "SEE ALSO" sections automatically in the Makefile when generating the man pages. The lists are not really useful in the RST anyway because all other pages are available in the same directory. v3: - Fix conflict with a previous patchset that introduced RST2MAN_OPTS variable passed to rst2man. v2: - Use "echo -n" instead of "printf" in Makefile, to avoid any risk of passing a format string directly to the command. Signed-off-by: Quentin Monnet <quentin@isovalent.com> Signed-off-by: Alexei Starovoitov <ast@kernel.org> Acked-by: Andrii Nakryiko <andriin@fb.com> Link: https://lore.kernel.org/bpf/20200910203935.25304-1-quentin@isovalent.com
65 lines
1.5 KiB
Makefile
65 lines
1.5 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-only
|
|
include ../../../scripts/Makefile.include
|
|
include ../../../scripts/utilities.mak
|
|
|
|
INSTALL ?= install
|
|
RM ?= rm -f
|
|
RMDIR ?= rmdir --ignore-fail-on-non-empty
|
|
|
|
ifeq ($(V),1)
|
|
Q =
|
|
else
|
|
Q = @
|
|
endif
|
|
|
|
prefix ?= /usr/local
|
|
mandir ?= $(prefix)/man
|
|
man8dir = $(mandir)/man8
|
|
|
|
# Load targets for building eBPF helpers man page.
|
|
include ../../Makefile.helpers
|
|
|
|
MAN8_RST = $(wildcard bpftool*.rst)
|
|
|
|
_DOC_MAN8 = $(patsubst %.rst,%.8,$(MAN8_RST))
|
|
DOC_MAN8 = $(addprefix $(OUTPUT),$(_DOC_MAN8))
|
|
|
|
man: man8 helpers
|
|
man8: $(DOC_MAN8)
|
|
|
|
RST2MAN_DEP := $(shell command -v rst2man 2>/dev/null)
|
|
RST2MAN_OPTS += --verbose
|
|
|
|
list_pages = $(sort $(basename $(filter-out $(1),$(MAN8_RST))))
|
|
see_also = $(subst " ",, \
|
|
"\n" \
|
|
"SEE ALSO\n" \
|
|
"========\n" \
|
|
"\t**bpf**\ (2),\n" \
|
|
"\t**bpf-helpers**\\ (7)" \
|
|
$(foreach page,$(call list_pages,$(1)),",\n\t**$(page)**\\ (8)") \
|
|
"\n")
|
|
|
|
$(OUTPUT)%.8: %.rst
|
|
ifndef RST2MAN_DEP
|
|
$(error "rst2man not found, but required to generate man pages")
|
|
endif
|
|
$(QUIET_GEN)( cat $< ; echo -n $(call see_also,$<) ) | rst2man $(RST2MAN_OPTS) > $@
|
|
|
|
clean: helpers-clean
|
|
$(call QUIET_CLEAN, Documentation)
|
|
$(Q)$(RM) $(DOC_MAN8)
|
|
|
|
install: man helpers-install
|
|
$(call QUIET_INSTALL, Documentation-man)
|
|
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir)
|
|
$(Q)$(INSTALL) -m 644 $(DOC_MAN8) $(DESTDIR)$(man8dir)
|
|
|
|
uninstall: helpers-uninstall
|
|
$(call QUIET_UNINST, Documentation-man)
|
|
$(Q)$(RM) $(addprefix $(DESTDIR)$(man8dir)/,$(_DOC_MAN8))
|
|
$(Q)$(RMDIR) $(DESTDIR)$(man8dir)
|
|
|
|
.PHONY: man man8 clean install uninstall
|
|
.DEFAULT_GOAL := man
|