1*54f38fcaSMauro Carvalho Chehab# SPDX-License-Identifier: GPL-2.0
2*54f38fcaSMauro Carvalho Chehab
3*54f38fcaSMauro Carvalho Chehab# Rules to convert a .h file to inline RST documentation
4*54f38fcaSMauro Carvalho Chehab
5*54f38fcaSMauro Carvalho ChehabSRC_DIR=$(srctree)/Documentation/userspace-api/media
6*54f38fcaSMauro Carvalho ChehabPARSER = $(srctree)/Documentation/sphinx/parse-headers.pl
7*54f38fcaSMauro Carvalho ChehabUAPI = $(srctree)/include/uapi/linux
8*54f38fcaSMauro Carvalho ChehabKAPI = $(srctree)/include/linux
9*54f38fcaSMauro Carvalho Chehab
10*54f38fcaSMauro Carvalho ChehabFILES = audio.h.rst ca.h.rst dmx.h.rst frontend.h.rst net.h.rst video.h.rst \
11*54f38fcaSMauro Carvalho Chehab	  videodev2.h.rst media.h.rst cec.h.rst lirc.h.rst
12*54f38fcaSMauro Carvalho Chehab
13*54f38fcaSMauro Carvalho ChehabTARGETS := $(addprefix $(BUILDDIR)/, $(FILES))
14*54f38fcaSMauro Carvalho Chehab
15*54f38fcaSMauro Carvalho Chehabgen_rst = \
16*54f38fcaSMauro Carvalho Chehab	echo ${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions; \
17*54f38fcaSMauro Carvalho Chehab	${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions
18*54f38fcaSMauro Carvalho Chehab
19*54f38fcaSMauro Carvalho Chehabquiet_gen_rst = echo '  PARSE   $(patsubst $(srctree)/%,%,$<)'; \
20*54f38fcaSMauro Carvalho Chehab	${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions
21*54f38fcaSMauro Carvalho Chehab
22*54f38fcaSMauro Carvalho Chehabsilent_gen_rst = ${gen_rst}
23*54f38fcaSMauro Carvalho Chehab
24*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/audio.h.rst: ${UAPI}/dvb/audio.h ${PARSER} $(SRC_DIR)/audio.h.rst.exceptions
25*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
26*54f38fcaSMauro Carvalho Chehab
27*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/ca.h.rst: ${UAPI}/dvb/ca.h ${PARSER} $(SRC_DIR)/ca.h.rst.exceptions
28*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
29*54f38fcaSMauro Carvalho Chehab
30*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/dmx.h.rst: ${UAPI}/dvb/dmx.h ${PARSER} $(SRC_DIR)/dmx.h.rst.exceptions
31*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
32*54f38fcaSMauro Carvalho Chehab
33*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/frontend.h.rst: ${UAPI}/dvb/frontend.h ${PARSER} $(SRC_DIR)/frontend.h.rst.exceptions
34*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
35*54f38fcaSMauro Carvalho Chehab
36*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/net.h.rst: ${UAPI}/dvb/net.h ${PARSER} $(SRC_DIR)/net.h.rst.exceptions
37*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
38*54f38fcaSMauro Carvalho Chehab
39*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/video.h.rst: ${UAPI}/dvb/video.h ${PARSER} $(SRC_DIR)/video.h.rst.exceptions
40*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
41*54f38fcaSMauro Carvalho Chehab
42*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/videodev2.h.rst: ${UAPI}/videodev2.h ${PARSER} $(SRC_DIR)/videodev2.h.rst.exceptions
43*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
44*54f38fcaSMauro Carvalho Chehab
45*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/media.h.rst: ${UAPI}/media.h ${PARSER} $(SRC_DIR)/media.h.rst.exceptions
46*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
47*54f38fcaSMauro Carvalho Chehab
48*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/cec.h.rst: ${UAPI}/cec.h ${PARSER} $(SRC_DIR)/cec.h.rst.exceptions
49*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
50*54f38fcaSMauro Carvalho Chehab
51*54f38fcaSMauro Carvalho Chehab$(BUILDDIR)/lirc.h.rst: ${UAPI}/lirc.h ${PARSER} $(SRC_DIR)/lirc.h.rst.exceptions
52*54f38fcaSMauro Carvalho Chehab	@$($(quiet)gen_rst)
53*54f38fcaSMauro Carvalho Chehab
54*54f38fcaSMauro Carvalho Chehab# Media build rules
55*54f38fcaSMauro Carvalho Chehab
56*54f38fcaSMauro Carvalho Chehab.PHONY: all html epub xml latex
57*54f38fcaSMauro Carvalho Chehab
58*54f38fcaSMauro Carvalho Chehaball: $(IMGDOT) $(BUILDDIR) ${TARGETS}
59*54f38fcaSMauro Carvalho Chehabhtml: all
60*54f38fcaSMauro Carvalho Chehabepub: all
61*54f38fcaSMauro Carvalho Chehabxml: all
62*54f38fcaSMauro Carvalho Chehablatex: $(IMGPDF) all
63*54f38fcaSMauro Carvalho Chehablinkcheck:
64*54f38fcaSMauro Carvalho Chehab
65*54f38fcaSMauro Carvalho Chehabclean:
66*54f38fcaSMauro Carvalho Chehab	-rm -f $(DOTTGT) $(IMGTGT) ${TARGETS} 2>/dev/null
67*54f38fcaSMauro Carvalho Chehab
68*54f38fcaSMauro Carvalho Chehab$(BUILDDIR):
69*54f38fcaSMauro Carvalho Chehab	$(Q)mkdir -p $@
70