mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-11-30 13:46:47 +07:00
6cb77a85aa
The frontend.h.xml now references to the main document. However, several references are missed. Links the trivial ones with the corresponding API descriptions. While here, updates the main API to reflect the API improvements. Signed-off-by: Mauro Carvalho Chehab <mchehab@redhat.com>
269 lines
9.0 KiB
Makefile
269 lines
9.0 KiB
Makefile
###
|
|
# Media build rules - Auto-generates media contents/indexes and *.h xml's
|
|
#
|
|
|
|
SHELL=/bin/bash
|
|
|
|
MEDIA_OBJ_DIR=$(objtree)/Documentation/DocBook/
|
|
MEDIA_SRC_DIR=$(srctree)/Documentation/DocBook/media
|
|
|
|
MEDIA_TEMP = media-entities.tmpl \
|
|
media-indices.tmpl \
|
|
videodev2.h.xml \
|
|
v4l2.xml \
|
|
frontend.h.xml
|
|
|
|
IMGFILES := $(addprefix $(MEDIA_OBJ_DIR)/media/, $(notdir $(shell ls $(MEDIA_SRC_DIR)/*/*.gif $(MEDIA_SRC_DIR)/*/*.png)))
|
|
GENFILES := $(addprefix $(MEDIA_OBJ_DIR)/, $(MEDIA_TEMP))
|
|
|
|
PHONY += cleanmediadocs mediaindexdocs
|
|
|
|
cleanmediadocs:
|
|
-@rm `find $(MEDIA_OBJ_DIR) -type l` $(GENFILES) $(IMGFILES)
|
|
|
|
$(obj)/media_api.xml: $(GENFILES) FORCE
|
|
|
|
#$(MEDIA_OBJ_DIR)/media_api.html: $(MEDIA_OBJ_DIR)/media_api.xml
|
|
#$(MEDIA_OBJ_DIR)/media_api.pdf: $(MEDIA_OBJ_DIR)/media_api.xml
|
|
#$(MEDIA_OBJ_DIR)/media_api.ps: $(MEDIA_OBJ_DIR)/media_api.xml
|
|
|
|
V4L_SGMLS = \
|
|
$(shell ls $(MEDIA_SRC_DIR)/v4l/*.xml|perl -ne 'print "$$1 " if (m,.*/(.*)\n,)') \
|
|
capture.c.xml \
|
|
keytable.c.xml \
|
|
v4l2grab.c.xml
|
|
|
|
DVB_SGMLS = \
|
|
$(shell ls $(MEDIA_SRC_DIR)/dvb/*.xml|perl -ne 'print "$$1 " if (m,.*/(.*)\n,)')
|
|
|
|
MEDIA_SGMLS = $(addprefix ./,$(V4L_SGMLS)) $(addprefix ./,$(DVB_SGMLS)) $(addprefix ./,$(MEDIA_TEMP))
|
|
|
|
FUNCS = \
|
|
close \
|
|
ioctl \
|
|
mmap \
|
|
munmap \
|
|
open \
|
|
poll \
|
|
read \
|
|
select \
|
|
write \
|
|
|
|
IOCTLS = \
|
|
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/videodev2.h) \
|
|
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/dvb/frontend.h) \
|
|
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/media.h) \
|
|
$(shell perl -ne 'print "$$1 " if /\#define\s+([^\s]+)\s+_IO/' $(srctree)/include/linux/v4l2-subdev.h) \
|
|
VIDIOC_SUBDEV_G_FRAME_INTERVAL \
|
|
VIDIOC_SUBDEV_S_FRAME_INTERVAL \
|
|
VIDIOC_SUBDEV_ENUM_MBUS_CODE \
|
|
VIDIOC_SUBDEV_ENUM_FRAME_SIZE \
|
|
VIDIOC_SUBDEV_ENUM_FRAME_INTERVAL \
|
|
|
|
TYPES = \
|
|
$(shell perl -ne 'print "$$1 " if /^typedef\s+[^\s]+\s+([^\s]+)\;/' $(srctree)/include/linux/videodev2.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^}\s+([a-z0-9_]+_t)/' $(srctree)/include/linux/dvb/frontend.h)
|
|
|
|
ENUMS = \
|
|
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/linux/videodev2.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/linux/dvb/frontend.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/linux/media.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/linux/v4l2-mediabus.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^enum\s+([^\s]+)\s+/' $(srctree)/include/linux/v4l2-subdev.h)
|
|
|
|
STRUCTS = \
|
|
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/videodev2.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/dvb/frontend.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/media.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/v4l2-subdev.h) \
|
|
$(shell perl -ne 'print "$$1 " if /^struct\s+([^\s]+)\s+/' $(srctree)/include/linux/v4l2-mediabus.h)
|
|
|
|
ERRORS = \
|
|
EACCES \
|
|
EAGAIN \
|
|
EBADF \
|
|
EBUSY \
|
|
EFAULT \
|
|
EIO \
|
|
EINTR \
|
|
EINVAL \
|
|
ENFILE \
|
|
ENOMEM \
|
|
ENOSPC \
|
|
ENOTTY \
|
|
ENXIO \
|
|
EMFILE \
|
|
EPERM \
|
|
ERANGE \
|
|
EPIPE \
|
|
|
|
ESCAPE = \
|
|
-e "s/&/\\&/g" \
|
|
-e "s/</\\</g" \
|
|
-e "s/>/\\>/g"
|
|
|
|
FILENAME = \
|
|
-e s,"^[^\/]*/",, \
|
|
-e s/"\\.xml"// \
|
|
-e s/"\\.tmpl"// \
|
|
-e s/\\\./-/g \
|
|
-e s/"^func-"// \
|
|
-e s/"^pixfmt-"// \
|
|
-e s/"^vidioc-"//
|
|
|
|
# Generate references to these structs in videodev2.h.xml.
|
|
DOCUMENTED = \
|
|
-e "s/\(enum *\)v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1<link linkend=\"\2\">v4l2_mpeg_cx2341x_video_\2<\/link>/g" \
|
|
-e "s/\(\(enum\|struct\) *\)\(v4l2_[a-zA-Z0-9_]*\)/\1<link linkend=\"\3\">\3<\/link>/g" \
|
|
-e "s/\(V4L2_PIX_FMT_[A-Z0-9_]\+\) /<link linkend=\"\1\">\1<\/link> /g" \
|
|
-e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
|
|
-e "s/v4l2\-mpeg\-vbi\-ITV0/v4l2-mpeg-vbi-itv0-1/g"
|
|
|
|
DVB_DOCUMENTED = \
|
|
-e "s/\(linkend\=\"\)FE_SET_PROPERTY/\1FE_GET_PROPERTY/g" \
|
|
-e "s,\(struct\s\+\)\([a-z0-9_]\+\)\(\s\+{\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
|
-e "s,\(}\s\+\)\([a-z0-9_]\+_t\+\),\1\<link linkend=\"\2\">\2\<\/link\>,g" \
|
|
-e "s,\(define\s\+\)\(DTV_[A-Z0-9_]\+\)\(\s\+[0-9]\+\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
|
-e ":a;s/\(linkend=\".*\)_\(.*\">\)/\1-\2/;ta" \
|
|
-e "s,DTV-ISDBT-LAYER[A-C],DTV-ISDBT-LAYER,g" \
|
|
-e "s,\(define\s\+\)\([A-Z0-9_]\+\)\(\s\+_IO\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
|
# -e "s,\(\s\+\)\(FE_[A-Z0-9_]\+\)\([\s\=\,]*\),\1\<link linkend=\"\2\">\2\<\/link\>\3,g" \
|
|
|
|
#
|
|
# Media targets and dependencies
|
|
#
|
|
|
|
$(MEDIA_OBJ_DIR)/v4l2.xml:
|
|
@$($(quiet)gen_xml)
|
|
@(mkdir -p $(MEDIA_OBJ_DIR)/media)
|
|
@(cp $(MEDIA_SRC_DIR)/dvb/*.png $(MEDIA_SRC_DIR)/v4l/*.gif $(MEDIA_OBJ_DIR)/media/)
|
|
@(ln -sf $(MEDIA_SRC_DIR)/v4l/*xml $(MEDIA_OBJ_DIR)/)
|
|
@(ln -sf $(MEDIA_SRC_DIR)/dvb/*xml $(MEDIA_OBJ_DIR)/)
|
|
|
|
$(MEDIA_OBJ_DIR)/videodev2.h.xml: $(srctree)/include/linux/videodev2.h $(MEDIA_OBJ_DIR)/v4l2.xml
|
|
@$($(quiet)gen_xml)
|
|
@( \
|
|
echo "<programlisting>") > $@
|
|
@( \
|
|
expand --tabs=8 < $< | \
|
|
sed $(ESCAPE) $(DOCUMENTED) | \
|
|
sed 's/i\.e\./&ie;/') >> $@
|
|
@( \
|
|
echo "</programlisting>") >> $@
|
|
|
|
$(MEDIA_OBJ_DIR)/frontend.h.xml: $(srctree)/include/linux/dvb/frontend.h $(MEDIA_OBJ_DIR)/v4l2.xml
|
|
@$($(quiet)gen_xml)
|
|
@( \
|
|
echo "<programlisting>") > $@
|
|
@( \
|
|
expand --tabs=8 < $< | \
|
|
sed $(ESCAPE) $(DVB_DOCUMENTED) | \
|
|
sed 's/i\.e\./&ie;/') >> $@
|
|
@( \
|
|
echo "</programlisting>") >> $@
|
|
|
|
$(MEDIA_OBJ_DIR)/media-entities.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
|
|
@$($(quiet)gen_xml)
|
|
@( \
|
|
echo "<!-- Generated file! Do not edit. -->") >$@
|
|
@( \
|
|
echo -e "\n<!-- Functions -->") >>$@
|
|
@( \
|
|
for ident in $(FUNCS) ; do \
|
|
entity=`echo $$ident | tr _ -` ; \
|
|
echo "<!ENTITY func-$$entity \"<link" \
|
|
"linkend='func-$$entity'><function>$$ident()</function></link>\">" \
|
|
>>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Ioctls -->") >>$@
|
|
@( \
|
|
for ident in $(IOCTLS) ; do \
|
|
entity=`echo $$ident | tr _ -` ; \
|
|
id=`grep "<refname>$$ident" $(MEDIA_OBJ_DIR)/vidioc-*.xml | sed -r s,"^.*/(.*).xml.*","\1",` ; \
|
|
echo "<!ENTITY $$entity \"<link" \
|
|
"linkend='$$id'><constant>$$ident</constant></link>\">" \
|
|
>>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Types -->") >>$@
|
|
@( \
|
|
for ident in $(TYPES) ; do \
|
|
entity=`echo $$ident | tr _ -` ; \
|
|
echo "<!ENTITY $$entity \"<link" \
|
|
"linkend='$$entity'>$$ident</link>\">" >>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Enums -->") >>$@
|
|
@( \
|
|
for ident in $(ENUMS) ; do \
|
|
entity=`echo $$ident | sed -e "s/v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1/" | tr _ -` ; \
|
|
echo "<!ENTITY $$entity \"enum <link" \
|
|
"linkend='$$entity'>$$ident</link>\">" >>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Structures -->") >>$@
|
|
@( \
|
|
for ident in $(STRUCTS) ; do \
|
|
entity=`echo $$ident | tr _ - | sed s/v4l2-mpeg-vbi-ITV0/v4l2-mpeg-vbi-itv0-1/g` ; \
|
|
echo "<!ENTITY $$entity \"struct <link" \
|
|
"linkend='$$entity'>$$ident</link>\">" >>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Error Codes -->") >>$@
|
|
@( \
|
|
for ident in $(ERRORS) ; do \
|
|
echo "<!ENTITY $$ident \"<errorcode>$$ident</errorcode>" \
|
|
"error code\">" >>$@ ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Subsections -->") >>$@
|
|
@( \
|
|
for file in $(MEDIA_SGMLS) ; do \
|
|
entity=`echo "$$file" | sed $(FILENAME) -e s/"^([^-]*)"/sub\1/` ; \
|
|
if ! echo "$$file" | \
|
|
grep -q -E -e '^(func|vidioc|pixfmt)-' ; then \
|
|
echo "<!ENTITY sub-$$entity SYSTEM \"$$file\">" >>$@ ; \
|
|
fi ; \
|
|
done)
|
|
@( \
|
|
echo -e "\n<!-- Function Reference -->") >>$@
|
|
@( \
|
|
for file in $(MEDIA_SGMLS) ; do \
|
|
if echo "$$file" | \
|
|
grep -q -E -e '(func|vidioc|pixfmt)-' ; then \
|
|
entity=`echo "$$file" |sed $(FILENAME)` ; \
|
|
echo "<!ENTITY $$entity SYSTEM \"$$file\">" >>$@ ; \
|
|
fi ; \
|
|
done)
|
|
|
|
# Jade can auto-generate a list-of-tables, which includes all structs,
|
|
# but we only want data types, all types, and sorted please.
|
|
$(MEDIA_OBJ_DIR)/media-indices.tmpl: $(MEDIA_OBJ_DIR)/v4l2.xml
|
|
@$($(quiet)gen_xml)
|
|
@( \
|
|
echo "<!-- Generated file! Do not edit. -->") >$@
|
|
@( \
|
|
echo -e "\n<index><title>List of Types</title>") >>$@
|
|
@( \
|
|
for ident in $(TYPES) ; do \
|
|
id=`echo $$ident | tr _ -` ; \
|
|
echo "<indexentry><primaryie><link" \
|
|
"linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
|
|
done)
|
|
@( \
|
|
for ident in $(ENUMS) ; do \
|
|
id=`echo $$ident | sed -e "s/v4l2_mpeg_cx2341x_video_\([a-z]*_spatial_filter_type\)/\1/" | tr _ -`; \
|
|
echo "<indexentry><primaryie>enum <link" \
|
|
"linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
|
|
done)
|
|
@( \
|
|
for ident in $(STRUCTS) ; do \
|
|
id=`echo $$ident | tr _ - | sed s/v4l2-mpeg-vbi-ITV0/v4l2-mpeg-vbi-itv0-1/g` ; \
|
|
echo "<indexentry><primaryie>struct <link" \
|
|
"linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
|
|
done)
|
|
@( \
|
|
echo "</index>") >>$@
|
|
|