Makefile 2.4 KB
Newer Older
1 2
# Generate the *.h.rst files from uAPI headers

3 4
PARSER = $(srctree)/Documentation/sphinx/parse-headers.pl
UAPI = $(srctree)/include/uapi/linux
5
KAPI = $(srctree)/include/linux
6
SRC_DIR=$(srctree)/Documentation/media
7 8

FILES = audio.h.rst ca.h.rst dmx.h.rst frontend.h.rst net.h.rst video.h.rst \
9
	  videodev2.h.rst media.h.rst cec.h.rst lirc.h.rst
10

11 12
TARGETS := $(addprefix $(BUILDDIR)/, $(FILES))

13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
IMAGES = \
	typical_media_device.svg \
	uapi/dvb/dvbstb.svg \
	uapi/v4l/constraints.svg \
	uapi/v4l/subdev-image-processing-full.svg \
	uapi/v4l/subdev-image-processing-scaling-multi-source.svg \
	uapi/v4l/subdev-image-processing-crop.svg \

IMGTGT := $(patsubst %.png,%.pdf,$(patsubst %.svg,%.pdf,$(IMAGES)))
IMGPDF := $(patsubst %,$(SRC_DIR)/%,$(IMGTGT))

cmd = $(echo-cmd) $(cmd_$(1))

quiet_cmd_genpdf = GENPDF  $2
      cmd_genpdf = convert $2 $3

%.pdf: %.svg
	@$(call cmd,genpdf,$<,$@)

.PHONY: all html epub xml latex

34
all: $(BUILDDIR) ${TARGETS}
35 36 37 38 39 40 41
html: all
epub: all
xml: all
latex: $(IMGPDF) all

clean:
	-rm $(IMGTGT) 2>/dev/null
42 43 44

$(BUILDDIR):
	$(Q)mkdir -p $@
45

46 47 48 49 50 51 52 53 54 55 56 57 58
# Rule to convert a .h file to inline RST documentation

gen_rst = \
	echo ${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions; \
	${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions

quiet_gen_rst = echo '  PARSE   $(patsubst $(srctree)/%,%,$<)'; \
	${PARSER} $< $@ $(SRC_DIR)/$(notdir $@).exceptions

silent_gen_rst = ${gen_rst}

$(BUILDDIR)/audio.h.rst: ${UAPI}/dvb/audio.h ${PARSER} $(SRC_DIR)/audio.h.rst.exceptions
	@$($(quiet)gen_rst)
59

60 61
$(BUILDDIR)/ca.h.rst: ${UAPI}/dvb/ca.h ${PARSER} $(SRC_DIR)/ca.h.rst.exceptions
	@$($(quiet)gen_rst)
62

63 64
$(BUILDDIR)/dmx.h.rst: ${UAPI}/dvb/dmx.h ${PARSER} $(SRC_DIR)/dmx.h.rst.exceptions
	@$($(quiet)gen_rst)
65

66 67
$(BUILDDIR)/frontend.h.rst: ${UAPI}/dvb/frontend.h ${PARSER} $(SRC_DIR)/frontend.h.rst.exceptions
	@$($(quiet)gen_rst)
68

69 70
$(BUILDDIR)/net.h.rst: ${UAPI}/dvb/net.h ${PARSER} $(SRC_DIR)/net.h.rst.exceptions
	@$($(quiet)gen_rst)
71

72 73
$(BUILDDIR)/video.h.rst: ${UAPI}/dvb/video.h ${PARSER} $(SRC_DIR)/video.h.rst.exceptions
	@$($(quiet)gen_rst)
74

75
$(BUILDDIR)/videodev2.h.rst: ${UAPI}/videodev2.h ${PARSER} $(SRC_DIR)/videodev2.h.rst.exceptions
76
	@$($(quiet)gen_rst)
77

78 79 80
$(BUILDDIR)/media.h.rst: ${UAPI}/media.h ${PARSER} $(SRC_DIR)/media.h.rst.exceptions
	@$($(quiet)gen_rst)

81 82 83
$(BUILDDIR)/cec.h.rst: ${KAPI}/cec.h ${PARSER} $(SRC_DIR)/cec.h.rst.exceptions
	@$($(quiet)gen_rst)

84 85 86
$(BUILDDIR)/lirc.h.rst: ${UAPI}/lirc.h ${PARSER} $(SRC_DIR)/lirc.h.rst.exceptions
	@$($(quiet)gen_rst)

87 88
cleandocs:
	-rm ${TARGETS}