diff options
author | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-05-19 11:45:18 +0200 |
---|---|---|
committer | Juergen Kahrs <Juergen.Kahrs@googlemail.com> | 2013-05-19 11:45:18 +0200 |
commit | 2cd2431737dd088c4eb957e27aa6a1edb17aa88e (patch) | |
tree | ff4de92a1688fe685d94f099b4d9fa431e60f9d7 /cmake | |
parent | 9c32ff7ed5aeca6906dbdb5bcf602f675893f3be (diff) | |
download | egawk-2cd2431737dd088c4eb957e27aa6a1edb17aa88e.tar.gz egawk-2cd2431737dd088c4eb957e27aa6a1edb17aa88e.tar.bz2 egawk-2cd2431737dd088c4eb957e27aa6a1edb17aa88e.zip |
Added more doc dependencies; some of them incomplete.
Diffstat (limited to 'cmake')
-rwxr-xr-x | cmake/docmaker | 145 |
1 files changed, 92 insertions, 53 deletions
diff --git a/cmake/docmaker b/cmake/docmaker index f9a821e9..873d9463 100755 --- a/cmake/docmaker +++ b/cmake/docmaker @@ -1,61 +1,100 @@ #!/bin/sh -# TODO -# Check all dependencies first, then build the target. -# Each target shall be implemented as one function. - -if test $# -lt 1; then +# The first parameter is the target, the file to be built. +# All remaining parameters are dependencies (file names). +if [ $# -lt 1 ] ; then echo " $0: Incorrect number ($#) of parameters passed: $*" fi OUTFILE=$1 -if test $OUTFILE = gawk.texi; then - INFILE=gawktexi.in - COMMAND="awk -f sidebar.awk < gawktexi.in > gawk.texi" -elif test $OUTFILE = gawk.dvi; then - INFILE=gawk.texi - COMMAND="texi2dvi -q --clean gawk.texi" -elif test $OUTFILE = gawkinet.dvi; then - INFILE=gawkinet.texi - COMMAND="texi2dvi -q --clean gawkinet.texi" -elif test $OUTFILE = gawk.1.ps; then - INFILE=gawk.1 - COMMAND="groff -z -man gawk.1 > gawk.1.ps" -elif test $OUTFILE = igawk.1.ps; then - INFILE=igawk.1 - COMMAND="groff -z -man igawk.1 > igawk.1.ps" -elif test $OUTFILE = gawk.1.pdf; then - INFILE=gawk.1.ps - COMMAND="ps2pdf -q gawk.1.ps gawk.1.pdf" -elif test $OUTFILE = igawk.1.pdf; then - INFILE=igawk.1.ps - COMMAND="ps2pdf -q igawk.1.ps igawk.1.pdf" -elif test $OUTFILE = gawk.ps; then - INFILE=gawk.dvi - COMMAND="dvips -q -o gawk.ps gawk.dvi" -elif test $OUTFILE = gawkinet.ps; then - INFILE=gawkinet.dvi - COMMAND="dvips -q -o gawkinet.ps gawkinet.dvi" -elif test $OUTFILE = gawk.pdf; then - INFILE=gawk.ps - COMMAND="ps2pdf -q gawk.ps gawk.pdf" -elif test $OUTFILE = gawkinet.pdf; then - INFILE=gawkinet.ps - COMMAND="ps2pdf -q gawkinet.ps gawkinet.pdf" -else - echo " unknwon target $OUTFILE" - exit 1 -fi +shift 1 +INFILES="$@" -if ! test -r "$INFILE"; then - echo " $0: Cannot read input file $INFILE" - exit 1 -fi +MAKEINFO="makeinfo --no-split --force" +TROFF="groff -t -Tps -U" +SEDME="sed -e \"s/^level0 restore/level0 restore flashme 100 72 moveto (Copyright `date '+%m-%d-%y %T'`, FSF, Inc. (all)) show/\" -e \"s/^\/level0 save def/\/level0 save def 30 -48 translate/\"" +SEDME2="sed '/%%Page: 10 10/,/0 Cg EP/d'" + +function BuildTarget() +{ + local OUTFILE=$1 + local INFILE="" + local COMMAND="" + + FILEBASE=${OUTFILE%.*} + case $OUTFILE in + *\.in | *\.1 | macros | cardfonts | colors | ad.block | setter.outline | \ + gawkinet.texi | rflashlight.eps | api-figure1.fig | api-figure2.fig | api-figure3.fig | \ + general-program.fig | process-flow.fig | statist.eps) + INFILE=$OUTFILE + ;; + *\.texi) + if [ $FILEBASE = gawk ] ; then + INFILE=gawktexi.in + else + INFILE=$OUTFILE.in + fi + COMMAND="awk -f sidebar.awk < $INFILE > $OUTFILE" + ;; + *\.dvi) + INFILE=$FILEBASE.texi + COMMAND="texi2dvi -q --clean $INFILE" + ;; + *\.info) + INFILE=$FILEBASE.texi + COMMAND="${MAKEINFO} $INFILE" + ;; + *\.ps) + if [ $FILEBASE = awkcard ] ; then + INFILE=awkcard.in + COMMAND="${TROFF} $* | ${SEDME} | cat setter.outline - | ${SEDME2} > awkcard.ps" + elif [ $FILEBASE = gawk.1 -o $FILEBASE = igawk.1 ] ; then + INFILE=$FILEBASE + COMMAND="groff -z -man $INFILE > $OUTFILE" + else + INFILE=$FILEBASE.dvi + COMMAND="dvips -q -o $OUTFILE $INFILE" + fi + ;; + *\.pdf) + INFILE=$FILEBASE.ps + COMMAND="ps2pdf -q $INFILE $OUTFILE" + ;; + *\.tr) + INFILE=$FILEBASE.in + COMMAND="sed 's:SRCDIR:.:' < $INFILE > $OUTFILE" + ;; + *\.nc) + INFILE=$FILEBASE.in + COMMAND="sed 's:SRCDIR:.:' < $INFILE > $OUTFILE" + COMMAND="${TROFF} $* | ${SEDME} | cat setter.outline - | ${SEDME2} > $FILEBASE.ps && touch $OUTFILE" + ;; + *) + echo " unknwon target $OUTFILE" + exit 1 + esac -if test -f "$OUTFILE"; then - if test "$INFILE" -ot "$OUTFILE" ; then - printf " Target %15s is up-to-date\n" $OUTFILE - exit 0 + if [ ! -r "$INFILE" ] ; then + echo " $0: Cannot read input file $INFILE" + exit 1 fi -fi -echo " Generating $OUTFILE from $INFILE" -echo $COMMAND | sh + + if [ -f "$OUTFILE" ] ; then + if [ "$INFILE" -ot "$OUTFILE" ] ; then + #printf " Target %15s is up-to-date\n" $OUTFILE + exit 0 + fi + fi + #echo " Generating $OUTFILE from $INFILE" + echo $COMMAND | sh -x + #echo "COMMAND=$COMMAND" +} + +# Build all dependencies first, then build the target. +for dep in $INFILES +do + #echo $OUTFILE depends on $dep + BuildTarget $dep + : +done +BuildTarget $OUTFILE + |