tools: bpf: build and install man page for eBPF helpers from bpftool/
Provide a new Makefile.helpers in tools/bpf, in order to build and install the man page for eBPF helpers. This Makefile is also included in the one used to build bpftool documentation, so that it can be called either on its own (cd tools/bpf && make -f Makefile.helpers) or from bpftool directory (cd tools/bpf/bpftool && make doc, or cd tools/bpf/bpftool/Documentation && make helpers). Makefile.helpers is not added directly to bpftool to avoid changing its Makefile too much (helpers are not 100% directly related with bpftool). But the possibility to build the page from bpftool directory makes us able to package the helpers man page with bpftool, and to install it along with bpftool documentation, so that the doc for helpers becomes easily available to developers through the "man" program. Cc: linux-man@vger.kernel.org Suggested-by: Daniel Borkmann <daniel@iogearbox.net> Signed-off-by: Quentin Monnet <quentin.monnet@netronome.com> Reviewed-by: Jakub Kicinski <jakub.kicinski@netronome.com> Signed-off-by: Daniel Borkmann <daniel@iogearbox.net>
This commit is contained in:
parent
9b8ca37951
commit
86f7d85cec
2 changed files with 67 additions and 5 deletions
59
tools/bpf/Makefile.helpers
Normal file
59
tools/bpf/Makefile.helpers
Normal file
|
@ -0,0 +1,59 @@
|
|||
ifndef allow-override
|
||||
include ../scripts/Makefile.include
|
||||
include ../scripts/utilities.mak
|
||||
else
|
||||
# Assume Makefile.helpers is being run from bpftool/Documentation
|
||||
# subdirectory. Go up two more directories to fetch bpf.h header and
|
||||
# associated script.
|
||||
UP2DIR := ../../
|
||||
endif
|
||||
|
||||
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
|
||||
man7dir = $(mandir)/man7
|
||||
|
||||
HELPERS_RST = bpf-helpers.rst
|
||||
MAN7_RST = $(HELPERS_RST)
|
||||
|
||||
_DOC_MAN7 = $(patsubst %.rst,%.7,$(MAN7_RST))
|
||||
DOC_MAN7 = $(addprefix $(OUTPUT),$(_DOC_MAN7))
|
||||
|
||||
helpers: man7
|
||||
man7: $(DOC_MAN7)
|
||||
|
||||
RST2MAN_DEP := $(shell command -v rst2man 2>/dev/null)
|
||||
|
||||
$(OUTPUT)$(HELPERS_RST): $(UP2DIR)../../include/uapi/linux/bpf.h
|
||||
$(QUIET_GEN)$(UP2DIR)../../scripts/bpf_helpers_doc.py --filename $< > $@
|
||||
|
||||
$(OUTPUT)%.7: $(OUTPUT)%.rst
|
||||
ifndef RST2MAN_DEP
|
||||
$(error "rst2man not found, but required to generate man pages")
|
||||
endif
|
||||
$(QUIET_GEN)rst2man $< > $@
|
||||
|
||||
helpers-clean:
|
||||
$(call QUIET_CLEAN, eBPF_helpers-manpage)
|
||||
$(Q)$(RM) $(DOC_MAN7) $(OUTPUT)$(HELPERS_RST)
|
||||
|
||||
helpers-install: helpers
|
||||
$(call QUIET_INSTALL, eBPF_helpers-manpage)
|
||||
$(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(man7dir)
|
||||
$(Q)$(INSTALL) -m 644 $(DOC_MAN7) $(DESTDIR)$(man7dir)
|
||||
|
||||
helpers-uninstall:
|
||||
$(call QUIET_UNINST, eBPF_helpers-manpage)
|
||||
$(Q)$(RM) $(addprefix $(DESTDIR)$(man7dir)/,$(_DOC_MAN7))
|
||||
$(Q)$(RMDIR) $(DESTDIR)$(man7dir)
|
||||
|
||||
.PHONY: helpers helpers-clean helpers-install helpers-uninstall
|
|
@ -15,12 +15,15 @@ prefix ?= /usr/local
|
|||
mandir ?= $(prefix)/man
|
||||
man8dir = $(mandir)/man8
|
||||
|
||||
MAN8_RST = $(wildcard *.rst)
|
||||
# Load targets for building eBPF helpers man page.
|
||||
include ../../Makefile.helpers
|
||||
|
||||
MAN8_RST = $(filter-out $(HELPERS_RST),$(wildcard *.rst))
|
||||
|
||||
_DOC_MAN8 = $(patsubst %.rst,%.8,$(MAN8_RST))
|
||||
DOC_MAN8 = $(addprefix $(OUTPUT),$(_DOC_MAN8))
|
||||
|
||||
man: man8
|
||||
man: man8 helpers
|
||||
man8: $(DOC_MAN8)
|
||||
|
||||
RST2MAN_DEP := $(shell command -v rst2man 2>/dev/null)
|
||||
|
@ -31,16 +34,16 @@ ifndef RST2MAN_DEP
|
|||
endif
|
||||
$(QUIET_GEN)rst2man $< > $@
|
||||
|
||||
clean:
|
||||
clean: helpers-clean
|
||||
$(call QUIET_CLEAN, Documentation)
|
||||
$(Q)$(RM) $(DOC_MAN8)
|
||||
|
||||
install: man
|
||||
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:
|
||||
uninstall: helpers-uninstall
|
||||
$(call QUIET_UNINST, Documentation-man)
|
||||
$(Q)$(RM) $(addprefix $(DESTDIR)$(man8dir)/,$(_DOC_MAN8))
|
||||
$(Q)$(RMDIR) $(DESTDIR)$(man8dir)
|
||||
|
|
Loading…
Reference in a new issue