1*858ea5e5SAndroid Build Coastguard Worker# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*858ea5e5SAndroid Build Coastguard Workerinclude ../src/Makefile.include 3*858ea5e5SAndroid Build Coastguard Worker 4*858ea5e5SAndroid Build Coastguard WorkerINSTALL ?= install 5*858ea5e5SAndroid Build Coastguard WorkerRM ?= rm -f 6*858ea5e5SAndroid Build Coastguard WorkerRMDIR ?= rmdir --ignore-fail-on-non-empty 7*858ea5e5SAndroid Build Coastguard Worker 8*858ea5e5SAndroid Build Coastguard Workerifeq ($(V),1) 9*858ea5e5SAndroid Build Coastguard Worker Q = 10*858ea5e5SAndroid Build Coastguard Workerelse 11*858ea5e5SAndroid Build Coastguard Worker Q = @ 12*858ea5e5SAndroid Build Coastguard Workerendif 13*858ea5e5SAndroid Build Coastguard Worker 14*858ea5e5SAndroid Build Coastguard Workerprefix ?= /usr/local 15*858ea5e5SAndroid Build Coastguard Workermandir ?= $(prefix)/man 16*858ea5e5SAndroid Build Coastguard Workerman8dir = $(mandir)/man8 17*858ea5e5SAndroid Build Coastguard Worker 18*858ea5e5SAndroid Build Coastguard WorkerMAN8_RST = $(wildcard bpftool*.rst) 19*858ea5e5SAndroid Build Coastguard Worker 20*858ea5e5SAndroid Build Coastguard Worker_DOC_MAN8 = $(patsubst %.rst,%.8,$(MAN8_RST)) 21*858ea5e5SAndroid Build Coastguard WorkerDOC_MAN8 = $(addprefix $(OUTPUT),$(_DOC_MAN8)) 22*858ea5e5SAndroid Build Coastguard Worker 23*858ea5e5SAndroid Build Coastguard Workerman: man8 24*858ea5e5SAndroid Build Coastguard Workerman8: $(DOC_MAN8) 25*858ea5e5SAndroid Build Coastguard Worker 26*858ea5e5SAndroid Build Coastguard WorkerRST2MAN_DEP := $(shell command -v rst2man 2>/dev/null) 27*858ea5e5SAndroid Build Coastguard WorkerRST2MAN_OPTS += --verbose --strip-comments 28*858ea5e5SAndroid Build Coastguard Worker 29*858ea5e5SAndroid Build Coastguard Workerlist_pages = $(sort $(basename $(filter-out $(1),$(MAN8_RST)))) 30*858ea5e5SAndroid Build Coastguard Workersee_also = $(subst " ",, \ 31*858ea5e5SAndroid Build Coastguard Worker "\n" \ 32*858ea5e5SAndroid Build Coastguard Worker "SEE ALSO\n" \ 33*858ea5e5SAndroid Build Coastguard Worker "========\n" \ 34*858ea5e5SAndroid Build Coastguard Worker "\t**bpf**\ (2),\n" \ 35*858ea5e5SAndroid Build Coastguard Worker "\t**bpf-helpers**\\ (7)" \ 36*858ea5e5SAndroid Build Coastguard Worker $(foreach page,$(call list_pages,$(1)),",\n\t**$(page)**\\ (8)") \ 37*858ea5e5SAndroid Build Coastguard Worker "\n") 38*858ea5e5SAndroid Build Coastguard Worker 39*858ea5e5SAndroid Build Coastguard Worker$(OUTPUT)%.8: %.rst 40*858ea5e5SAndroid Build Coastguard Workerifndef RST2MAN_DEP 41*858ea5e5SAndroid Build Coastguard Worker $(error "rst2man not found, but required to generate man pages") 42*858ea5e5SAndroid Build Coastguard Workerendif 43*858ea5e5SAndroid Build Coastguard Worker $(QUIET_GEN)( cat $< ; printf "%b" $(call see_also,$<) ) | rst2man $(RST2MAN_OPTS) > $@ 44*858ea5e5SAndroid Build Coastguard Worker 45*858ea5e5SAndroid Build Coastguard Workerclean: 46*858ea5e5SAndroid Build Coastguard Worker $(call QUIET_CLEAN, Documentation) 47*858ea5e5SAndroid Build Coastguard Worker $(Q)$(RM) $(DOC_MAN8) 48*858ea5e5SAndroid Build Coastguard Worker 49*858ea5e5SAndroid Build Coastguard Workerinstall: man 50*858ea5e5SAndroid Build Coastguard Worker $(call QUIET_INSTALL, Documentation-man) 51*858ea5e5SAndroid Build Coastguard Worker $(Q)$(INSTALL) -d -m 755 $(DESTDIR)$(man8dir) 52*858ea5e5SAndroid Build Coastguard Worker $(Q)$(INSTALL) -m 644 $(DOC_MAN8) $(DESTDIR)$(man8dir) 53*858ea5e5SAndroid Build Coastguard Worker 54*858ea5e5SAndroid Build Coastguard Workeruninstall: 55*858ea5e5SAndroid Build Coastguard Worker $(call QUIET_UNINST, Documentation-man) 56*858ea5e5SAndroid Build Coastguard Worker $(Q)$(RM) $(addprefix $(DESTDIR)$(man8dir)/,$(_DOC_MAN8)) 57*858ea5e5SAndroid Build Coastguard Worker $(Q)$(RMDIR) $(DESTDIR)$(man8dir) 58*858ea5e5SAndroid Build Coastguard Worker 59*858ea5e5SAndroid Build Coastguard Worker.PHONY: man man8 clean install uninstall 60*858ea5e5SAndroid Build Coastguard Worker.DEFAULT_GOAL := man 61