2019-05-19 13:07:45 +01:00
# SPDX-License-Identifier: GPL-2.0-only
2021-03-02 09:19:43 -08:00
i n c l u d e . . / . . / . . / s c r i p t s / M a k e f i l e . i n c l u d e
i n c l u d e . . / . . / . . / s c r i p t s / u t i l i t i e s . m a k
2018-07-12 12:52:24 +01:00
INSTALL ?= install
RM ?= rm -f
RMDIR ?= rmdir --ignore-fail-on-non-empty
i f e q ( $( V ) , 1 )
Q =
e l s e
Q = @
e n d i f
prefix ?= /usr/local
mandir ?= $( prefix) /man
2021-03-02 09:19:45 -08:00
man2dir = $( mandir) /man2
2018-07-12 12:52:24 +01:00
man7dir = $( mandir) /man7
2021-03-02 09:19:45 -08:00
SYSCALL_RST = bpf-syscall.rst
MAN2_RST = $( SYSCALL_RST)
2018-07-12 12:52:24 +01:00
HELPERS_RST = bpf-helpers.rst
MAN7_RST = $( HELPERS_RST)
2021-03-02 09:19:45 -08:00
_DOC_MAN2 = $( patsubst %.rst,%.2,$( MAN2_RST) )
DOC_MAN2 = $( addprefix $( OUTPUT) ,$( _DOC_MAN2) )
2018-07-12 12:52:24 +01:00
_DOC_MAN7 = $( patsubst %.rst,%.7,$( MAN7_RST) )
DOC_MAN7 = $( addprefix $( OUTPUT) ,$( _DOC_MAN7) )
2021-03-02 09:19:45 -08:00
DOCTARGETS := helpers syscall
2021-03-02 09:19:43 -08:00
docs : $( DOCTARGETS )
2021-03-02 09:19:45 -08:00
syscall : man 2
2018-07-12 12:52:24 +01:00
helpers : man 7
2021-03-02 09:19:45 -08:00
man2 : $( DOC_MAN 2)
2018-07-12 12:52:24 +01:00
man7 : $( DOC_MAN 7)
RST2MAN_DEP := $( shell command -v rst2man 2>/dev/null)
2021-03-02 09:19:43 -08:00
# Configure make rules for the man page bpf-$1.$2.
# $1 - target for scripts/bpf_doc.py
# $2 - man page section to generate the troff file
d e f i n e DOCS_RULES =
$(OUTPUT)bpf-$1.rst : ../../../../include /uapi /linux /bpf .h
$$ ( QUIET_GEN) ../../../../scripts/bpf_doc.py $1 \
--filename $$ < > $$ @
2018-07-12 12:52:24 +01:00
2021-03-02 09:19:44 -08:00
$(OUTPUT)%.$2 : $( OUTPUT ) %.rst
2018-07-12 12:52:24 +01:00
i f n d e f R S T 2 M A N _ D E P
2021-03-02 09:19:44 -08:00
$$ ( error "rst2man not found, but required to generate man pages" )
2018-07-12 12:52:24 +01:00
e n d i f
2021-06-07 18:57:56 -07:00
$$ ( QUIET_GEN) rst2man --exit-status= 1 $$ < > $$ @.tmp
$$ ( QUIET_GEN) mv $$ @.tmp $$ @
2018-07-12 12:52:24 +01:00
2021-03-02 09:19:44 -08:00
docs-clean-$1 :
$$ ( call QUIET_CLEAN, eBPF_$1 -manpage)
$( Q) $( RM) $$ ( DOC_MAN$2 ) $( OUTPUT) bpf-$1 .rst
2018-07-12 12:52:24 +01:00
2021-03-02 09:19:44 -08:00
docs-install-$1 : docs
$$ ( call QUIET_INSTALL, eBPF_$1 -manpage)
$( Q) $( INSTALL) -d -m 755 $( DESTDIR) $$ ( man$2 dir)
$( Q) $( INSTALL) -m 644 $$ ( DOC_MAN$2 ) $( DESTDIR) $$ ( man$2 dir)
2018-07-12 12:52:24 +01:00
2021-03-02 09:19:44 -08:00
docs-uninstall-$1 :
$$ ( call QUIET_UNINST, eBPF_$1 -manpage)
$( Q) $( RM) $$ ( addprefix $( DESTDIR) $$ ( man$2 dir) /,$$ ( _DOC_MAN$2 ) )
$( Q) $( RMDIR) $( DESTDIR) $$ ( man$2 dir)
2018-07-12 12:52:24 +01:00
2021-03-02 09:19:44 -08:00
.PHONY : $1 docs -clean -$1 docs -install -$1 docs -uninstall -$1
e n d e f
# Create the make targets to generate manual pages by name and section
$( eval $ ( call DOCS_RULES ,helpers ,7) )
2021-03-02 09:19:45 -08:00
$( eval $ ( call DOCS_RULES ,syscall ,2) )
2021-03-02 09:19:44 -08:00
docs-clean : $( foreach doctarget ,$ ( DOCTARGETS ) , docs -clean -$ ( doctarget ) )
docs-install : $( foreach doctarget ,$ ( DOCTARGETS ) , docs -install -$ ( doctarget ) )
docs-uninstall : $( foreach doctarget ,$ ( DOCTARGETS ) , docs -uninstall -$ ( doctarget ) )
2021-03-02 09:19:45 -08:00
.PHONY : docs docs -clean docs -install docs -uninstall man 2 man 7