mirror of
https://github.com/mpv-player/mpv
synced 2024-12-29 10:32:15 +00:00
XML autoconfiguration by Dmitry Baryshkov <lumag@qnc.ru> with some
modifications and improvements by me. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@10310 b3059339-0415-0410-9bf9-f77b7e298cf2
This commit is contained in:
parent
28df7aaeff
commit
dc0adf6e20
3
DOCS/xml/.cvsignore
Normal file
3
DOCS/xml/.cvsignore
Normal file
@ -0,0 +1,3 @@
|
||||
html.xsl
|
||||
xsltproc.sh
|
||||
xmllint.sh
|
@ -1,67 +1,26 @@
|
||||
# Makefile for generating the HTML documentation
|
||||
|
||||
#####[ Configuration ]##################################################
|
||||
|
||||
# The xsltproc program.
|
||||
XSLTPROC = xsltproc
|
||||
|
||||
# Another xslt converter.
|
||||
# If you want to use it, change also USE_SAXON to 1 (below)
|
||||
# Probably you must also change the path to saxon.jar.
|
||||
USE_SAXON = 0
|
||||
SAXON_COMMAND = java -cp /usr/share/java/saxon.jar com.icl.saxon.StyleSheet
|
||||
|
||||
# The xmllint program.
|
||||
XMLLINT = xmllint
|
||||
|
||||
# A colon separated list of catalog entry files.
|
||||
# Without this properly set up, xmllint and xsltproc might be unable
|
||||
# to find the DTDs for the system identifiers specified in the XML files.
|
||||
# If the SGML_CATALOG_FILES environment variable is not set, list one
|
||||
# or more catalogs here.
|
||||
#
|
||||
# on debian (potato?) systems, maybe others
|
||||
#SGML_CATALOG_FILES ?= /etc/sgml/catalog
|
||||
#
|
||||
# on Mandrake (9.0?) systems, maybe others
|
||||
SGML_CATALOG_FILES ?= /usr/share/sgml/docbook/xml-dtd-4.1.2/xmlcatalog
|
||||
#SGML_CATALOG_FILES ?= /usr/share/apps/ksgmltools2/customization/en/catalog
|
||||
|
||||
# Full path of the "chunker" DocBook XSL stylesheet used to generate
|
||||
# the HTML files.
|
||||
#
|
||||
# on debian (potato?)
|
||||
#CHUNK_XSL = /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl
|
||||
#
|
||||
# on Mandrake (9.0?) systems, maybe others
|
||||
CHUNK_XSL = /usr/share/sgml/docbook/yelp/docbook/html/chunk.xsl
|
||||
|
||||
# List of subdirectories to be processed.
|
||||
SUBDIRS = en fr
|
||||
|
||||
# Here all generated html's go
|
||||
# Generated HTML files go here.
|
||||
HTML_TOP = ../HTML
|
||||
|
||||
#####[ End of configuration ]###########################################
|
||||
|
||||
export CHUNK_XSL SGML_CATALOG_FILES XMLLINT XSLTPROC SAXON_COMMAND USE_SAXON
|
||||
.PHONY: all
|
||||
all: build-html
|
||||
|
||||
.PHONY: no-target
|
||||
no-target:
|
||||
@echo "What to make?"
|
||||
@echo
|
||||
@echo "Targets"
|
||||
@echo "*******"
|
||||
.PHONY: help
|
||||
help:
|
||||
@echo "Targets:"
|
||||
@echo "********"
|
||||
@echo "all : Build everything (same as build-html for now)."
|
||||
@echo "build-html: Build HTML documentation."
|
||||
@echo "clean-html: Purge the 'HTML' directory."
|
||||
@echo "distclean : Remove ALL generated files."
|
||||
|
||||
.PHONY: all
|
||||
all: build-html
|
||||
|
||||
.PHONY: build-html
|
||||
build-html:
|
||||
build-html: xsltproc.sh
|
||||
test -d $(HTML_TOP) || mkdir $(HTML_TOP)
|
||||
for d in $(SUBDIRS); do\
|
||||
test -f $$d/Makefile &&\
|
||||
@ -69,17 +28,13 @@ build-html:
|
||||
if $(MAKE) HTMLDIR=../$(HTML_TOP)/$$d -C $$d; then :; else exit 1; fi;\
|
||||
done
|
||||
|
||||
.PHONY: test
|
||||
test:
|
||||
@if command -v $(XSLTPROC) >/dev/null; then :; else exit 1; fi
|
||||
@if command -v $(XMLLINT) >/dev/null; then :; else exit 1; fi
|
||||
@test -f $(CHUNK_XSL) || (echo "file not found: $(CHUNK_XSL)"; exit 1)
|
||||
@echo "All tests passed."
|
||||
|
||||
.PHONY: clean-html
|
||||
clean-html:
|
||||
-rm -rf $(HTML_TOP)
|
||||
|
||||
.PHONY: distclean
|
||||
distclean: clean-html
|
||||
-rm -f html.xsl
|
||||
-rm -f html.xsl xsltproc.sh xmllint.sh
|
||||
|
||||
xsltproc.sh: configure
|
||||
./configure
|
||||
|
@ -1,10 +1,8 @@
|
||||
#
|
||||
# Makefile.inc for Makefiles in sub-directories.
|
||||
# Makefile.inc for Makefiles in subdirectories.
|
||||
#
|
||||
|
||||
export SGML_CATALOG_FILES
|
||||
|
||||
# Use customized html.xsl file if exists...
|
||||
# Use customized html.xsl file if it exists...
|
||||
ifeq (html.xsl,$(wildcard html.xsl))
|
||||
HTML_XSL := html.xsl
|
||||
XSL_DEPS := $(HTML_XSL) ../html.xsl ../html-common.xsl
|
||||
@ -13,19 +11,15 @@ HTML_XSL := ../html.xsl
|
||||
XSL_DEPS := $(HTML_XSL) ../html-common.xsl
|
||||
endif
|
||||
|
||||
# Fall back to the default HTML stylesheet if not specified.
|
||||
# Fall back to the default HTML stylesheet if none is specified.
|
||||
HTML_STYLESHEET ?= ../default.css
|
||||
|
||||
# This is the main target...
|
||||
$(HTMLDIR)/index.html: documentation.xml $(XSL_DEPS)
|
||||
-rm -f $(HTMLDIR)/*
|
||||
$(XMLLINT) --noout --noent --postvalid --catalogs $<
|
||||
../xmllint.sh $<
|
||||
cp $(HTML_STYLESHEET) $(HTMLDIR)/
|
||||
ifeq (0,$(USE_SAXON))
|
||||
$(XSLTPROC) --catalogs -o $(HTMLDIR)/ $(HTML_XSL) $<
|
||||
else
|
||||
cd $(HTMLDIR) && $(SAXON_COMMAND) $(CURDIR)/$< $(CURDIR)/$(HTML_XSL)
|
||||
endif
|
||||
../xsltproc.sh $(HTMLDIR)/ $(HTML_XSL) $<
|
||||
|
||||
../html.xsl:
|
||||
sh ../gen-html.xsl.sh $(CHUNK_XSL) > $@
|
||||
cd .. && sh configure
|
||||
|
220
DOCS/xml/configure
vendored
Executable file
220
DOCS/xml/configure
vendored
Executable file
@ -0,0 +1,220 @@
|
||||
#!/bin/sh
|
||||
|
||||
# Script to check for catalogs, stylesheets, XSL processors and all
|
||||
# the other stuff necessary to convert the XML documentation.
|
||||
|
||||
_xsltwrapper="xsltproc.sh"
|
||||
_xmllintwrapper="xmllint.sh"
|
||||
|
||||
for _try_catalog in /etc/sgml/catalog /usr/share/sgml/docbook/xml-dtd-4.1.2/xmlcatalog /usr/share/apps/ksgmltools2/customization/en/catalog /usr/share/sgml/catalog /usr/local/share/sgml/catalog /usr/lib/sgml/catalog /usr/local/lib/sgml/catalog
|
||||
do
|
||||
if test -f "$_try_catalog"
|
||||
then
|
||||
_catalog=$_try_catalog
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test -n "$_catalog"
|
||||
then
|
||||
echo "Found SGML catalog at $_catalog"
|
||||
_sgmlcatalog="export SGML_CATALOG_FILES=$_catalog"
|
||||
else
|
||||
echo "No SGML catalog found."
|
||||
fi
|
||||
|
||||
|
||||
|
||||
echo "Searching for stylesheet..."
|
||||
for _try_chunk_xsl in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl /usr/share/sgml/docbook/yelp/docbook/html/chunk.xsl /usr/local/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl /usr/local/share/sgml/docbook/yelp/docbook/html/chunk.xsl
|
||||
do
|
||||
if test -f "$_try_chunk_xsl"
|
||||
then
|
||||
_chunk_xsl=$_try_chunk_xsl
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "$_chunk_xsl"
|
||||
then
|
||||
echo "Not found."
|
||||
_chunk_xsl=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/html/chunk.xsl
|
||||
else
|
||||
echo "Found chunk.xsl at $_chunk_xsl"
|
||||
fi
|
||||
|
||||
cat > html.xsl << EOF
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- **************************************************
|
||||
This file is generated automatically. DO NOT EDIT.
|
||||
************************************************** -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0">
|
||||
|
||||
<xsl:import href="$_chunk_xsl"/>
|
||||
<xsl:include href="html-common.xsl"/>
|
||||
|
||||
</xsl:stylesheet>
|
||||
EOF
|
||||
|
||||
|
||||
|
||||
echo "Looking for a valid XSLT processor..."
|
||||
# Checks for xsltproc, then checks for the Saxon processor (it needs Java).
|
||||
# Also checks for Jade/OpenJade.
|
||||
#FIXME: Add support for the xalan/xalan2 XSLT processors.
|
||||
|
||||
if xsltproc --version &> /dev/null
|
||||
then
|
||||
if test -n "$_chunk_xsl"
|
||||
then
|
||||
echo "Found xsltproc. If it works, it's probably the best choice."
|
||||
if test -n "$_catalog"
|
||||
then
|
||||
_xsltcommand="xsltproc --catalogs -o \$1 \$2 \$3"
|
||||
else
|
||||
_xsltcommand="xsltproc -o \$1 \$2 \$3"
|
||||
fi
|
||||
else
|
||||
echo "Found xsltproc but no stylesheets on your system."
|
||||
echo "xsltproc is unusable without stylesheets."
|
||||
fi
|
||||
fi
|
||||
|
||||
# xsltproc not found.
|
||||
# Now try to find a good Java virtual machine.
|
||||
# FIXME: We need more checks for Java virtual machines.
|
||||
if test -z "$_xsltcommand"
|
||||
then
|
||||
for _try_java in java gij-3.3 gij-3.2 gij-3.1 gij-3.0 gij
|
||||
do
|
||||
if $_try_java --version > /dev/null 2>&1 || $_try_java -version > /dev/null 2>&1
|
||||
then
|
||||
_java=$_try_java
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -z "$_java"
|
||||
then
|
||||
echo "Java VM not found."
|
||||
else
|
||||
# Try to find the right jar files for classpath.
|
||||
# This must not trigger on something like saxon-fop-6.4.4.jar.
|
||||
for _try_saxon_jar in /usr/share/java/saxon.jar /usr/local/share/java/saxon.jar /usr/share/java/saxon-[0-9]*.jar /usr/local/share/java/saxon-[0-9]*.jar
|
||||
do
|
||||
if test -f "$_try_saxon_jar"
|
||||
then
|
||||
_saxon_jar=$_try_saxon_jar
|
||||
#Don't break to find the _latest_ saxon.jar.
|
||||
fi
|
||||
done
|
||||
if test -n "$_saxon_jar"
|
||||
then
|
||||
if test -n "$_chunk_xsl"
|
||||
then
|
||||
_xsltcommand="cd \$1 && if test \"\`dirname \$2 | head -c 1\`\" = \".\" ; then $_java -classpath $_saxon_jar com.icl.saxon.StyleSheet \$_IN_DIR/\$3 \$_IN_DIR/\$2 ; else $_java -classpath $_saxon_jar com.icl.saxon.StyleSheet \$_IN_DIR/\$3 \$2 ;fi"
|
||||
echo "Found the Saxon XSLT Processor ($_saxon_jar), using Java VM '$_java'."
|
||||
else
|
||||
echo "Found the Saxon XSLT processor but no stylesheets on your system."
|
||||
echo "Saxon is unusable without stylesheets."
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if test -z "$_xsltcommand"
|
||||
then
|
||||
# Java not found.
|
||||
# now try openjade/jade.
|
||||
for _try_jade in jade openjade
|
||||
do
|
||||
if command -v $_try_jade > /dev/null
|
||||
then
|
||||
_jade=$_try_jade
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test -n "$_jade"
|
||||
then
|
||||
echo "xsltproc and Saxon XSLT processors not found."
|
||||
echo "I will try to use OpenJade or Jade (using '$_jade')."
|
||||
echo "They aren't (currently) fully supported, however."
|
||||
for _try_docbook_dsl in /usr/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl /usr/local/share/sgml/docbook/stylesheet/dsssl/modular/html/docbook.dsl
|
||||
do
|
||||
if test -f "$_try_docbook_dsl"
|
||||
then
|
||||
_docbook_dsl=$_try_docbook_dsl
|
||||
break
|
||||
fi
|
||||
done
|
||||
for _try_xml_dcl in /usr/share/sgml/declaration/xml.dcl /usr/local/share/sgml/declaration/xml.dcl
|
||||
do
|
||||
if test -f "$_try_xml_dcl"
|
||||
then
|
||||
_xml_dcl=$_try_xml_dcl
|
||||
break
|
||||
fi
|
||||
done
|
||||
if test "x$_docbook_dsl" = "x" -o "x$_xml_dcl" = "x"
|
||||
then
|
||||
echo "One of the files docbook.dsl and xml.dcl or both of them weren't found."
|
||||
echo "Bailing out."
|
||||
exit 1
|
||||
fi
|
||||
_xsltcommand="cd \$1 && $_jade -t xml -d $_docbook_dsl $_xml_dcl \$_IN_DIR/\$3 ; mv book1.html index.html"
|
||||
else
|
||||
echo "No valid XSLT processor found."
|
||||
echo "Bailing out."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
|
||||
|
||||
cat > $_xsltwrapper << EOF
|
||||
#!/bin/sh
|
||||
# **************************************************
|
||||
# This file is generated automatically. DO NOT EDIT.
|
||||
# **************************************************
|
||||
# This is a small wrapper script around many ways to call the XSLT processor.
|
||||
# It accepts 3 arguments: <output_dir> <stylesheet_name> <main XML file name>
|
||||
_IN_DIR=\`pwd\`
|
||||
|
||||
$_sgmlcatalog
|
||||
$_xsltcommand
|
||||
EOF
|
||||
|
||||
chmod +x $_xsltwrapper
|
||||
|
||||
|
||||
|
||||
for _try_xmllint in xmllint
|
||||
do
|
||||
if command -v $_try_xmllint
|
||||
then
|
||||
if test -n "$_catalog"
|
||||
then
|
||||
_xmllint_command="$_try_xmllint --noout --noent --postvalid --catalogs \$*"
|
||||
else
|
||||
_xmllint_command="$_try_xmllint --noout --noent --postvalid \$*"
|
||||
fi
|
||||
break
|
||||
fi
|
||||
done
|
||||
|
||||
if test -z "$_xmllint_command"
|
||||
then
|
||||
_xmllint_command=true
|
||||
fi
|
||||
|
||||
cat > $_xmllintwrapper << EOF
|
||||
#!/bin/sh
|
||||
# **************************************************
|
||||
# This file is generated automatically. DO NOT EDIT.
|
||||
# **************************************************
|
||||
# This is a small wrapper for XML lintian programs.
|
||||
$_sgmlcatalog
|
||||
$_xmllint_command
|
||||
EOF
|
||||
|
||||
chmod +x $_xmllintwrapper
|
@ -1,27 +0,0 @@
|
||||
#
|
||||
# Helper script to generate html.xsl.
|
||||
#
|
||||
|
||||
if test $# -ne 1; then
|
||||
echo "Usage: $0 <path to chunk.xsl>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if test -f "$1"; then :; else
|
||||
echo "$0: file not found: \"$1\""
|
||||
exit 1
|
||||
fi
|
||||
|
||||
cat << EOF
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!-- ***************************************************
|
||||
This file is generated automatically. DO NOT EDIT.
|
||||
*************************************************** -->
|
||||
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
||||
version="1.0">
|
||||
|
||||
<xsl:import href="$1"/>
|
||||
<xsl:include href="html-common.xsl"/>
|
||||
|
||||
</xsl:stylesheet>
|
||||
EOF
|
Loading…
Reference in New Issue
Block a user