summaryrefslogtreecommitdiff
path: root/dvb-spec/dvbapi/Makefile
diff options
context:
space:
mode:
Diffstat (limited to 'dvb-spec/dvbapi/Makefile')
-rw-r--r--dvb-spec/dvbapi/Makefile166
1 files changed, 144 insertions, 22 deletions
diff --git a/dvb-spec/dvbapi/Makefile b/dvb-spec/dvbapi/Makefile
index e741df6da..0ab91ee69 100644
--- a/dvb-spec/dvbapi/Makefile
+++ b/dvb-spec/dvbapi/Makefile
@@ -1,31 +1,153 @@
-all: dvbapi.ps dvbapi.pdf
+SHELL=/bin/bash
-TEXS= dvbapi.tex devices.tex video.tex audio.tex ca.tex net.tex frontend.tex \
- demux.tex kdapi.tex examples.tex intro.tex title.tex dvbstb.ps
+SGMLS = \
+ dvbapi.sgml \
+ intro.xml \
+ frontend.xml \
+ isdbt.xml \
+ demux.xml \
+ video.xml \
+ audio.xml \
+ ca.xml \
+ net.xml \
+ kdapi.xml \
+ examples.xml \
+ fdl-appendix.xml \
+ entities.xml \
-dvbapi.pdf: dvbapi.dvi
- dvipdf $< $@
+PDFPICS = \
+ dvbstb.pdf \
-dvbapi.ps: dvbapi.dvi
- dvips -f $< -o $@
+GIFPICS = \
+ dvbstb.png \
-dvbapi.dvi: dvbapi.bbl $(TEXS)
- -latex dvbapi
- -latex dvbapi
+# Some Jade warnings for authors.
+WARN =
+#WARN = -w all -w duplicate -w net
-dvbapi.bbl: $(TEXS)
- -latex dvbapi
- -bibtex dvbapi
- -makeindex dvbapi
+# Stylesheet customization.
+ # docbook/db2 syntax
+CUSTOM_HTML = --dsl custom.dsl\#html
+CUSTOM_PRINT = --dsl custom.dsl\#print
+ # xmlto syntax
+CUSTOM_HTML_XMLTO = -m custom.xsl
+CUSTOM_PRINT_XMLTO = -m custom.xsl
-html: dvbapi.dvi
- latex2html -address "LinuxTV DVB API" -long_titles 4 -split 3 dvbapi.tex
+all: html-single
-%.ps: %.fig
- ./fig2pstex $<
+html: html-build.stamp
-clean:
- rm -f dvbapi.dvi
- rm -f *.aux *.bbl *.blg *.idx *.ilg *.ind *.log *.out *.toc
- rm -f *.pdf *.pst *.ps
+html-single: html-single-build.stamp
+
+pdf: pdf-build.stamp
+
+man: man-build.stamp
+
+man_install: man-build.stamp
+ install -d /usr/local/man/man2
+ install -b man/* /usr/local/man/man2
+
+.PHONY: links
+
+$(SGMLS): links
+$(PDFPICS): links
+$(GIFPICS): links
+
+links::
+ ln -sf ../../linux/Documentation/DocBook/dvb/* .
+ ln -sf ../../linux/Documentation/DocBook/v4l/fdl-appendix.xml .
+
+entities.xml: Makefile $(SGMLS)
+ echo "<!-- Generated file! Do not edit. -->" >$@
+ echo -e "\n<!-- Subsections -->" >>$@
+ for file in $(SGMLS) ; do \
+ entity=`echo "$$file" | sed 's/.xml//;s/\./-/g'` ; \
+ if ! echo "$$file" | \
+ grep -q -E -e '^(func|vidioc|pixfmt)-' ; then \
+ echo "<!ENTITY sub-$$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.
+indices.xml: Makefile $(SGMLS)
+ 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 \
+ echo "<indexentry><primaryie>enum&nbsp;<link" \
+ "linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
+ done
+ for ident in $(STRUCTS) ; do \
+ id=`echo $$ident | tr _ -` ; \
+ echo "<indexentry><primaryie>struct&nbsp;<link" \
+ "linkend='$$id'>$$ident</link></primaryie></indexentry>" >>$@ ; \
+ done
+ echo "</index>" >>$@
+
+# HTML version.
+html-build.stamp: Makefile $(SGMLS) $(GIFPICS)
rm -rf dvbapi
+ if which xmlto >/dev/null ; then \
+ xmlto xhtml $(WARN) $(CUSTOM_HTML_XMLTO) -o dvbapi dvbapi.sgml ; \
+ elif which docbook2html >/dev/null ; then \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl |head -1`"; \
+ docbook2html $(WARN) $$DCL $(CUSTOM_HTML) --output dvbapi dvbapi.sgml ; \
+ else \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl |head -1`"; \
+ db2html $(WARN) $$DCL $(CUSTOM_HTML) --output dvbapi dvbapi.sgml ; \
+ fi
+ cp $(GIFPICS) dvbapi/
+ cd dvbapi ; \
+ test -e index.html || ln -s book1.htm index.html ; \
+ test -e capture-example.html || \
+ ln -s `grep -l getopt_long *.htm` capture-example.html
+ chmod a+rX -R dvbapi
+ touch html-build.stamp
+
+# For online version. When you have a dial-up connection a single file
+# is more convenient than clicking through dozens of pages.
+html-single-build.stamp: Makefile $(SGMLS) $(GIFPICS)
+ rm -rf dvbapi-single
+ if which xmlto >/dev/null ; then \
+ xmlto html-nochunks $(WARN) $(CUSTOM_HTML_XMLTO) -o dvbapi-single dvbapi.sgml ; \
+ elif which docbook2html >/dev/null ; then \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl |head -1`"; \
+ docbook2html $$DCL $(WARN) $(CUSTOM_HTML) --nochunks \
+ --output dvbapi-single dvbapi.sgml ; \
+ else \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl |head -1`"; \
+ db2html $$DCL $(WARN) $(CUSTOM_HTML) --nochunks \
+ --output dvbapi-single dvbapi.sgml ; \
+ fi
+ cp $(GIFPICS) dvbapi-single/
+ chmod a+rX -R dvbapi-single
+ touch html-single-build.stamp
+
+# For printing.
+pdf-build.stamp: Makefile $(SGMLS) $(PDFPICS)
+ if which db2pdf >/dev/null ; then \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl|head -1`"; \
+ db2pdf $$DCL $(WARN) $(CUSTOM_PRINT) dvbapi.sgml ; \
+ elif which xmlto >/dev/null ; then \
+ xmlto pdf $(WARN) $(CUSTOM_HTML_XMLTO) -o dvbapi-single dvbapi.sgml ; \
+ else \
+ export DCL="--dcl `find /usr/share/sgml -name xml.dcl |head -1`"; \
+ docbook2pdf $$DCL $(WARN) $(CUSTOM_PRINT) dvbapi.sgml ; \
+ fi
+ touch pdf-build.stamp
+
+
+# For man
+man-build.stamp: Makefile $(SGMLS) $(PDFPICS)
+ xmlto man $(WARN) $(CUSTOM_HTML_XMLTO) -o man dvbapi.sgml
+
+distclean clean:
+ rm -f *.stamp
+ rm -f indices.xml entities.xml
+ find . -type l -exec rm '{}' \;
+