#!/usr/bin/bash # This script regenerates the prebuilt documentation # checked into the source tree. set -e echo "Generating documentation" SCRIPT=$(readlink -f $0) BASE=$(dirname $SCRIPT)/.. TEMP=$(mktemp -d -p /tmp) && pushd $TEMP SBG=SystemTap_Beginners_Guide STR=SystemTap_Tapset_Reference DOCS=$BASE/doc # Beginners Guide documentation echo "Generating beginner pdf" xmlto --with-fop --skip-validation -o $DOCS/$SBG/en-US/ -x $DOCS/$SBG/en-US/xsl/pdf.xsl pdf $DOCS/$SBG/en-US/$SBG.xml # Tapset Reference documentation ### # The build process is as follows (targets): # (xmldocs) [by docproc] # file.tmpl --> file.xml +--> file.ps (psdocs) [by xmlto] # +--> file.pdf (pdfdocs) [by xmlto] # +--> DIR=file (htmldocs) [by xmlto] # +--> man/ (mandocs) [by xmlto] # Update syscalls docs $(dirname $SCRIPT)/update-syscall-docs echo "Generating tapsets.xml" gcc -o docproc $DOCS/$STR/docproc.c sed -e '/^!Syscalls/{r $DOCS/$STR/syscalls.xmlpart' -e 'd}' $DOCS/$STR/tapsets.tmpl > tapsets.tmpl.new SRCTREE=$BASE/ ./docproc doc tapsets.tmpl.new > tapsets.xml.new python $DOCS/$STR/overload.py tapsets.xml.new > tapsets.xml.new1 if [ $? -ne 0 ]; then echo "FAILED: python lxml library required"; exit 1; fi xsltproc $DOCS/$STR/sort-tapsets.xslt tapsets.xml.new1 > tapsets.xml.new2 rm tapsets.xml.new tapsets.xml.new1 tapsets.tmpl.new if test -s tapsets.xml && cmp tapsets.xml.new2 tapsets.xml >/dev/null ; then echo tapsets.xml unchanged; rm tapsets.xml.new2; else mv tapsets.xml.new2 tapsets.xml; fi # Publicanize cp tapsets.xml $DOCS/$STR/ $DOCS/$STR/publicanize.sh echo "Generating tapsets pdf" env pool_size=6000000 hash_extra=6000000 xmlto --with-fop --stringparam refentry.generate.name=0 --stringparam refentry.generate.title=1 pdf -o $DOCS/$STR/ tapsets.xml echo "Generating tapsets man pages" xmlto --stringparam man.authors.section.enabled=0 --stringparam man.copyright.section.enabled=0 man -o man3 tapsets.xml SRCTREE=$BASE $DOCS/$STR/manpager # generate tapset::* pages cp $DOCS/$STR/syscalls.3stap man_pages/tapset\:\:syscalls.3stap # use cached syscall page cp -R man3 $DOCS/$STR/ cp -R man_pages $DOCS/$STR/ popd && rm -rf $TEMP echo "Finished generating documentation"