summaryrefslogtreecommitdiff
path: root/cmake
diff options
context:
space:
mode:
authorJuergen Kahrs <Juergen.Kahrs@googlemail.com>2013-05-19 11:45:18 +0200
committerJuergen Kahrs <Juergen.Kahrs@googlemail.com>2013-05-19 11:45:18 +0200
commit2cd2431737dd088c4eb957e27aa6a1edb17aa88e (patch)
treeff4de92a1688fe685d94f099b4d9fa431e60f9d7 /cmake
parent9c32ff7ed5aeca6906dbdb5bcf602f675893f3be (diff)
downloadgawk-2cd2431737dd088c4eb957e27aa6a1edb17aa88e.tar.gz
Added more doc dependencies; some of them incomplete.
Diffstat (limited to 'cmake')
-rwxr-xr-xcmake/docmaker145
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
+