diff options
Diffstat (limited to 'Master/texmf-dist/doc/plain/pwebmac/makeall')
-rw-r--r-- | Master/texmf-dist/doc/plain/pwebmac/makeall | 239 |
1 files changed, 175 insertions, 64 deletions
diff --git a/Master/texmf-dist/doc/plain/pwebmac/makeall b/Master/texmf-dist/doc/plain/pwebmac/makeall index 6f0762a8d92..a97508f4169 100644 --- a/Master/texmf-dist/doc/plain/pwebmac/makeall +++ b/Master/texmf-dist/doc/plain/pwebmac/makeall @@ -21,7 +21,7 @@ else OPTS=$(getopt $SHRTOPTS $*) fi if [ $? -eq 0 ] # Check return code from getopt -then eval set -- "$OPTS" +then eval set -- $OPTS else echo "Failed to parse options." >&2; exit 1 fi @@ -32,7 +32,7 @@ do -n | --new ) NEW=true; shift ;; -o | --outdir ) OUTDIR="$2"; shift 2 ;; -p | --pdftocfront ) PDFTOCFRONT=true; shift ;; - -t | --tex ) TEX="$2"; shift 2 ;; + -t | --tex ) TEX=$2; shift 2 ;; -- ) shift; break ;; * ) break ;; esac @@ -44,48 +44,92 @@ KNUTHWARE=$(dirname $KNUTHWHERE) export CWEBINPUTS=$KNUTHWARE//: export WEBINPUTS=$KNUTHWARE//: -# WEB and CWEB programs we want to get formatted; 'xetex.web' must be last, -# because it switches the TEX engine! +if [ xetex = $TEX ] +then CWEAVE="cweave -f -lp+" +else CWEAVE="cweave -f" +fi +CTWILL="ctwill -f +lpdf" + +# WEB and CWEB programs we want to get formatted for f in \ - $KNUTHWARE/*.web \ - common ctangle cweave ctwill ctie tie \ - pdftex.web xetex.web + $KNUTHWARE/*.web pdftex.web xetex.web \ + common ctangle cweave ctwill ctie tie do + f=$(basename $f .web) + if $CHANGES then - c=$(basename $f .web).ch - - # pdftex.ch and xetex.ch for TeX Live are here + # pdftex.ch and xetex.ch for TeX Live are assembled here WEBINPUTS=$KNUTHWARE/../../Work//:$WEBINPUTS: case $f in - *.web ) weave $f $c ;; - "common" ) cweave -f $f comm-w2c ;; - "ctangle" ) cweave -f $f ctang-w2c ;; - "cweave" ) cweave -f $f cweav-w2c ;; - "ctwill" ) cweave -f cweave $f-w2c $f ;; - "ctie" ) cweave -f $f $f-k ;; - "tie" ) cweave -f $f $f-w2c ;; + common ) $CWEAVE $f comm-w2c ;; + ctangle ) $CWEAVE $f ctang-w2c ;; + cweave ) $CWEAVE $f cweav-w2c ;; + ctwill ) ;; # do nothing for CTWILL + ctie ) $CWEAVE $f $f-k ;; + tie ) $CWEAVE $f $f-w2c ;; + + * ) weave $f $f ;; esac - # make full documentation with changes applied - sed -i -e "s/\(\\\\let\\\\maybe=\)\\\\iffalse/\1\\\\iftrue/" \ - $(basename $f .web).tex + # only document changed modules/sections + case $f in + # pdfTeX and XeTeX have overlong tables-of-contents + pdftex ) sed -i -e "s/\(\\\\let\\\\maybe=\)\\\\iftrue/\1\\\\iffalse/" \ + -e "s/\(\\\\pageno=3\)/\1\n\\\\def\\\\contentspagenumber{1}/" \ + $f.tex ;; + + # XeTeX uses '\pdfTeX' from section 114, which + # is not changed and thus 'disappears' + xetex ) sed -i -e "s/\(\\\\let\\\\maybe=\)\\\\iftrue/\1\\\\iffalse\n\\\\def\\\\pdfTeX{pdf\\\\TeX}/" \ + -e "s/\(\\\\pageno=3\)/\1\n\\\\def\\\\contentspagenumber{1}/" \ + $f.tex ;; + + ctwill ) ;; # do nothing for CTWILL + + * ) sed -i -e "s/\(\\\\let\\\\maybe=\)\\\\iftrue/\1\\\\iffalse/" \ + $f.tex ;; + esac else case $f in - *.web ) weave $f ;; - "common"|"ctangle"|"cweave"|"ctie"|"tie" ) - cweave -f $f ;; - "ctwill" ) cweave -f cweave $f-w2c $f ;; + common | ctangle | cweave | ctie | tie ) $CWEAVE $f ;; + ctwill ) ;; # do nothing for CTWILL + * ) weave $f ;; esac fi - f=$(basename $f .web) + # Format CTWILL in its own format + if [ ctwill = $f ] + then + WEBINPUTS=/opt/github/cwebbin:$WEBINPUTS \ + tie -m $f.w cweave.w $f-w2c.ch $f-mini.ch + cp -an /opt/github/cwebbin/*.bux . + $CTWILL $f + $CTWILL $f + fi # use extended macros for TeX Live PDF documentation if $NEW then sed -i -e "1 s/\\\\input webmac/\\\\input pwebmac/" $f.tex + + # timestamp on table-of-contents page or the first page + case $f in + bibtex | patgen | tangle | weave ) + sed -i -e "s/\(\\\\def\\\\title\)/\\\\datecontentspage\n\1/" $f.tex ;; + + mf | tex | pdftex | xetex ) + sed -i -e "s/\(\\\\def\\\\botofcontents\)/\\\\datethis\n\1/" $f.tex ;; + + c* | tie ) ;; # do nothing for CWEB programs + + * ) sed -i -e "s/\(\\\\def\\\\botofcontents\)/%\1/" \ + -e "s/ \\\\centerline{\(\\\\hsize\)/\\\\def\\\\covernote{\1/" \ + -e "s/\(Publishing Company.}}\)}/\1\n\\\\datecontentspage/" \ + -e "s/\(trademark of the American Mathematical Society.}}\)}/\1\n\\\\datecontentspage/" \ + $f.tex ;; + esac fi # replace former convention to indicate "not a title page" @@ -99,27 +143,28 @@ do # 'E' no longer free to be active character # fix table-of-contents page for bibtex # FIX: don't wait for Oren Patashnik. - "bibtex" ) sed -i -e "s/titlefalse/titletrue/" \ - -e "70,77d" $f.tex ;; + bibtex ) sed -i -e "s/titlefalse/titletrue/" $f.tex + if ! $CHANGES + then + sed -i -e "71,78d" $f.tex + fi ;; # make room for new material in weave.web # FIX: should be fixed upstream. - "tangle" ) sed -i -e "s/number{123}/number{125}/" $f.tex ;; + tangle ) sed -i -e "s/number{123}/number{125}/" $f.tex ;; # amend '\N' redefinition for PDF outlines in mf.tex and # tex.tex (also pdftex.web and xetex.web); depends on the # extended 'pwebmac.tex' macros - "mf"|"tex"|"pdftex"|"xetex" ) - if [ "xetex" = $f ] + mf | tex | pdftex | xetex ) + if [ xetex = $f ] then # purge obsolete macros from XeTeX sed -i -e "/\\\\input xewebmac/d" $f.tex - # only XeTeX can process XeTeX - TEX=xetex fi if $NEW then - if [ "pdftex" = $f ] + if [ pdftex = $f ] then # pdfTeX has a looong table-of-contents cat > pdftex.patch << FI @@ -147,51 +192,117 @@ FI rm texmf-pdf.patch fi ;; - "common"|"ctangle"|"cweave"|"ctwill"|"ctie"|"tie" ) + common | ctangle | cweave | ctie | tie ) # Use nicer format for C comments and assignment - sed -i -e "1 s/\(\\\\input cwebmac\)/\1\n\\\\input Xcwebmac/" \ - $f.tex - - # 'cwebmac.tex' needs a little push for 'xetex' - # FIX: should be fixed upstream in 'cwebmac.tex'. - if [ "xetex" = $TEX ] - then - sed -i -e "1 s/\(\\\\input cwebmac\)/\\\\let\\\\pdf+\n\1\n/" \ - $f.tex - fi ;; + sed -i -e "1 s/\(cwebmac\)/\1\n\\\\input Xcwebmac/" \ + $f.tex ;; esac if $PDFTOCFRONT then # shift table-of-contents pages to the front in PDF sed -i -e "1 s/\(webmac\)/\1\n\\\\input pdfwebtocfront/" $f.tex - sed -i -e "2 s/\(cwebmac\)/\1\n\\\\input pdfwebtocfront/" $f.tex - $TEX $f # run TeX twice + + if [ xetex = $f ] + then $f $f # run TeX twice + else $TEX $f # run TeX twice + fi fi - $TEX $f + if [ xetex = $f ] + then $f $f + else $TEX $f + fi + + if [ ctwill = $f ] + then + ctwill-refsort < $f.ref > $f.sref + $TEX $f + fi done +# Finally, build the remaining documents +# * TeX and Metafont test routines +# * WEB and CWEB manuals +if ! $CHANGES +then + export TEXINPUTS=./:$(kpsewhich --var-value=TEXMFDIST)//:$KNUTHWARE// + + # FIX: Prepare 'trapman' for automatic processing; several input + # files are renamed in TeX Live (in fact, there are additional + # files for MetaPost). + rm -f trapman.tex cwebman.tex + + f=$(kpsewhich -engine tex trapman) + tie -m $(basename $f) $f /opt/github/web/$(basename $f .tex).ch + + # Prepare 'cwebman' with footnotes describing the extended CWEB. + f=$(kpsewhich -engine tex cwebman) + tie -m $(basename $f) $f $(basename $f .tex)-w2c.ch + + for f in trip trap web cweb + do + $TEX ${f}man + done +fi + if $PDFTOCFRONT then # create tarballs for publication - pax vftovp.pdf vptovf.pdf -wvzf $OUTDIR/etc.tar.gz -s ,^,etc/, - pax mf.pdf -wvzf $OUTDIR/mf.tar.gz -s ,^,mf/, - pax gftodvi.pdf gftopk.pdf gftype.pdf mft.pdf \ - -wvzf $OUTDIR/mfware.tar.gz -s ,^,mfware/, - pax tex.pdf -wvzf $OUTDIR/tex.tar.gz -s ,^,tex/, - pax dvitype.pdf pltotf.pdf pooltype.pdf tftopl.pdf \ - -wvzf $OUTDIR/texware.tar.gz -s ,^,texware/, - pax tangle.pdf weave.pdf -wvzf $OUTDIR/web.tar.gz -s ,^,web/, - pax bibtex.pdf -wvzf $OUTDIR/bibtex.tar.gz -s ,^,bibtex/, - pax dvicopy.pdf patgen.pdf pktogf.pdf pktype.pdf \ - -wvzf $OUTDIR/other.tar.gz -s ,^,other/, - pax pdftex.pdf -wvzf $OUTDIR/pdftex.tar.gz -s ,^,pdftex/, - pax xetex.pdf -wvzf $OUTDIR/xetex.tar.gz -s ,^,xetex/, - pax ctie.pdf -wvzf $OUTDIR/ctie.tar.gz -s ,^,ctie/, - pax tie.pdf -wvzf $OUTDIR/tie.tar.gz -s ,^,tie/, - pax common.pdf ctangle.pdf cweave.pdf ctwill.pdf \ - -wvzf $OUTDIR/cweb.tar.gz -s ,^,cweb/, + if $CHANGES + then + for f in *.pdf + do + mv $f $(basename $f .pdf)-changes.pdf + done + pax vftovp-changes.pdf vptovf-changes.pdf \ + -wvzf "$OUTDIR/etc-changes.tar.gz" -s ,^,etc/, + pax mf-changes.pdf -wvzf "$OUTDIR/mf-changes.tar.gz" -s ,^,mf/, + pax gftodvi-changes.pdf gftopk-changes.pdf \ + gftype-changes.pdf mft-changes.pdf \ + -wvzf "$OUTDIR/mfware-changes.tar.gz" -s ,^,mfware/, + pax tex-changes.pdf -wvzf "$OUTDIR/tex-changes.tar.gz" -s ,^,tex/, + pax dvitype-changes.pdf pltotf-changes.pdf \ + pooltype-changes.pdf tftopl-changes.pdf \ + -wvzf "$OUTDIR/texware-changes.tar.gz" -s ,^,texware/, + pax tangle-changes.pdf weave-changes.pdf \ + -wvzf "$OUTDIR/web-changes.tar.gz" -s ,^,web/, + pax bibtex-changes.pdf \ + -wvzf "$OUTDIR/bibtex-changes.tar.gz" -s ,^,bibtex/, + pax dvicopy-changes.pdf patgen-changes.pdf \ + pktogf-changes.pdf pktype-changes.pdf \ + -wvzf "$OUTDIR/other-changes.tar.gz" -s ,^,other/, + pax pdftex-changes.pdf \ + -wvzf "$OUTDIR/pdftex-changes.tar.gz" -s ,^,pdftex/, + pax xetex-changes.pdf \ + -wvzf "$OUTDIR/xetex-changes.tar.gz" -s ,^,xetex/, + pax ctie-changes.pdf \ + -wvzf "$OUTDIR/ctie-changes.tar.gz" -s ,^,ctie/, + pax tie-changes.pdf \ + -wvzf "$OUTDIR/tie-changes.tar.gz" -s ,^,tie/, + pax common-changes.pdf ctangle-changes.pdf \ + cweave-changes.pdf \ + -wvzf "$OUTDIR/cweb-changes.tar.gz" -s ,^,cweb/, + else + pax vftovp.pdf vptovf.pdf -wvzf "$OUTDIR/etc.tar.gz" -s ,^,etc/, + pax mf.pdf trapman.pdf -wvzf "$OUTDIR/mf.tar.gz" -s ,^,mf/, + pax gftodvi.pdf gftopk.pdf gftype.pdf mft.pdf \ + -wvzf "$OUTDIR/mfware.tar.gz" -s ,^,mfware/, + pax tex.pdf tripman.pdf -wvzf "$OUTDIR/tex.tar.gz" -s ,^,tex/, + pax dvitype.pdf pltotf.pdf pooltype.pdf tftopl.pdf \ + -wvzf "$OUTDIR/texware.tar.gz" -s ,^,texware/, + pax webman.pdf tangle.pdf weave.pdf \ + -wvzf "$OUTDIR/web.tar.gz" -s ,^,web/, + pax bibtex.pdf -wvzf "$OUTDIR/bibtex.tar.gz" -s ,^,bibtex/, + pax dvicopy.pdf patgen.pdf pktogf.pdf pktype.pdf \ + -wvzf "$OUTDIR/other.tar.gz" -s ,^,other/, + pax pdftex.pdf -wvzf "$OUTDIR/pdftex.tar.gz" -s ,^,pdftex/, + pax xetex.pdf -wvzf "$OUTDIR/xetex.tar.gz" -s ,^,xetex/, + pax ctie.pdf -wvzf "$OUTDIR/ctie.tar.gz" -s ,^,ctie/, + pax tie.pdf -wvzf "$OUTDIR/tie.tar.gz" -s ,^,tie/, + pax cwebman.pdf common.pdf ctangle.pdf cweave.pdf ctwill.pdf \ + -wvzf "$OUTDIR/cweb.tar.gz" -s ,^,cweb/, + fi fi exit 0 |