1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyuninclude ../../../scripts/Makefile.include 3*4882a593Smuzhiyun 4*4882a593SmuzhiyunINSTALL ?= install 5*4882a593SmuzhiyunRM ?= rm -f 6*4882a593SmuzhiyunRMDIR ?= rmdir --ignore-fail-on-non-empty 7*4882a593Smuzhiyun 8*4882a593Smuzhiyunifeq ($(V),1) 9*4882a593Smuzhiyun Q = 10*4882a593Smuzhiyunelse 11*4882a593Smuzhiyun Q = @ 12*4882a593Smuzhiyunendif 13*4882a593Smuzhiyun 14*4882a593Smuzhiyunprefix ?= /usr/local 15*4882a593Smuzhiyunmandir ?= $(prefix)/man 16*4882a593Smuzhiyunman8dir = $(mandir)/man8 17*4882a593Smuzhiyun 18*4882a593Smuzhiyun# Load targets for building eBPF helpers man page. 19*4882a593Smuzhiyuninclude ../../Makefile.helpers 20*4882a593Smuzhiyun 21*4882a593SmuzhiyunMAN8_RST = $(wildcard bpftool*.rst) 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun_DOC_MAN8 = $(patsubst %.rst,%.8,$(MAN8_RST)) 24*4882a593SmuzhiyunDOC_MAN8 = $(addprefix $(OUTPUT),$(_DOC_MAN8)) 25*4882a593Smuzhiyun 26*4882a593Smuzhiyunman: man8 helpers 27*4882a593Smuzhiyunman8: $(DOC_MAN8) 28*4882a593Smuzhiyun 29*4882a593SmuzhiyunRST2MAN_DEP := $(shell command -v rst2man 2>/dev/null) 30*4882a593SmuzhiyunRST2MAN_OPTS += --verbose 31*4882a593Smuzhiyun 32*4882a593Smuzhiyunlist_pages = $(sort $(basename $(filter-out $(1),$(MAN8_RST)))) 33*4882a593Smuzhiyunsee_also = $(subst " ",, \ 34*4882a593Smuzhiyun "\n" \ 35*4882a593Smuzhiyun "SEE ALSO\n" \ 36*4882a593Smuzhiyun "========\n" \ 37*4882a593Smuzhiyun "\t**bpf**\ (2),\n" \ 38*4882a593Smuzhiyun "\t**bpf-helpers**\\ (7)" \ 39*4882a593Smuzhiyun $(foreach page,$(call list_pages,$(1)),",\n\t**$(page)**\\ (8)") \ 40*4882a593Smuzhiyun "\n") 41*4882a593Smuzhiyun 42*4882a593Smuzhiyun$(OUTPUT)%.8: %.rst 43*4882a593Smuzhiyunifndef RST2MAN_DEP 44*4882a593Smuzhiyun $(error "rst2man not found, but required to generate man pages") 45*4882a593Smuzhiyunendif 46*4882a593Smuzhiyun $(QUIET_GEN)( cat $< ; printf "%b" $(call see_also,$<) ) | rst2man $(RST2MAN_OPTS) > $@ 47*4882a593Smuzhiyun 48*4882a593Smuzhiyunclean: helpers-clean 49*4882a593Smuzhiyun $(call QUIET_CLEAN, Documentation) 50*4882a593Smuzhiyun $(Q)$(RM) $(DOC_MAN8) 51*4882a593Smuzhiyun 52*4882a593Smuzhiyuninstall: man helpers-install 53*4882a593Smuzhiyun $(call QUIET_INSTALL, Documentation-man) 54*4882a593Smuzhiyun $(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir) 55*4882a593Smuzhiyun $(Q)$(INSTALL) -m 644 $(DOC_MAN8) $(DESTDIR)$(man8dir) 56*4882a593Smuzhiyun 57*4882a593Smuzhiyununinstall: helpers-uninstall 58*4882a593Smuzhiyun $(call QUIET_UNINST, Documentation-man) 59*4882a593Smuzhiyun $(Q)$(RM) $(addprefix $(DESTDIR)$(man8dir)/,$(_DOC_MAN8)) 60*4882a593Smuzhiyun $(Q)$(RMDIR) $(DESTDIR)$(man8dir) 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun.PHONY: man man8 clean install uninstall 63*4882a593Smuzhiyun.DEFAULT_GOAL := man 64