From: Ben Pfaff Date: Sun, 6 Jun 2010 22:19:19 +0000 (-0700) Subject: start working on HTML results X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?p=pspp;a=commitdiff_plain;h=8e8f500a7d956de742daa3a7709ef815d6ce10b6 start working on HTML results --- diff --git a/.gitignore b/.gitignore index 685509605d..423d59e79e 100644 --- a/.gitignore +++ b/.gitignore @@ -5,7 +5,6 @@ /autom4te.cache/ /build[0-9]*/ /buildnr -/buildnr/ /buildtmp/ /config.log /config.status diff --git a/Makefile.am b/Makefile.am index 4102ff5166..858849ec68 100644 --- a/Makefile.am +++ b/Makefile.am @@ -9,10 +9,10 @@ AUTOM4TE = autom4te make-builder.in: make-builder.as $(AUTOM4TE) --language M4sh make-builder.as -o $@ -make-src-dist.in: make-src-dist.as make-pspp.m4 - $(AUTOM4TE) --language make-pspp make-src-dist.as -o $@ -make-bin-dist.in: make-bin-dist.as make-pspp.m4 - $(AUTOM4TE) --language make-pspp make-bin-dist.as -o $@ +make-src-dist.in: make-src-dist.as build-pspp.m4 + $(AUTOM4TE) --language build-pspp make-src-dist.as -o $@ +make-bin-dist.in: make-bin-dist.as build-pspp.m4 + $(AUTOM4TE) --language build-pspp make-bin-dist.as -o $@ edit = sed \ -e 's|@VERSION[@]|$(VERSION)|g' \ diff --git a/build-aux/gendocs.sh b/build-aux/gendocs.sh new file mode 100755 index 0000000000..67d5b52cab --- /dev/null +++ b/build-aux/gendocs.sh @@ -0,0 +1,367 @@ +#!/bin/sh -e +# gendocs.sh -- generate a GNU manual in many formats. This script is +# mentioned in maintain.texi. See the help message below for usage details. + +scriptversion=2010-02-13.20 + +# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 +# Free Software Foundation, Inc. +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Original author: Mohit Agarwal. +# Send bug reports and any other correspondence to bug-texinfo@gnu.org. + +prog=`basename "$0"` +srcdir=`pwd` + +scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh" +templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template" + +: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} +: ${MAKEINFO="makeinfo"} +: ${TEXI2DVI="texi2dvi -t @finalout"} +: ${DVIPS="dvips"} +: ${DOCBOOK2HTML="docbook2html"} +: ${DOCBOOK2PDF="docbook2pdf"} +: ${DOCBOOK2PS="docbook2ps"} +: ${DOCBOOK2TXT="docbook2txt"} +: ${GENDOCS_TEMPLATE_DIR="."} +: ${TEXI2HTML="texi2html"} +unset CDPATH +unset use_texi2html + +version="gendocs.sh $scriptversion + +Copyright 2009 Free Software Foundation, Inc. +There is NO warranty. You may redistribute this software +under the terms of the GNU General Public License. +For more information about these matters, see the files named COPYING." + +usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE + +Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source. +See the GNU Maintainers document for a more extensive discussion: + http://www.gnu.org/prep/maintain_toc.html + +Options: + -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} + -o OUTDIR write files into OUTDIR, instead of manual/. + --email ADR use ADR as contact in generated web pages. + --docbook convert to DocBook too (xml, txt, html, pdf and ps). + --html ARG pass indicated ARG to makeinfo or texi2html for HTML targets. + --texi2html use texi2html to generate HTML targets. + --help display this help and exit successfully. + --version display version information and exit successfully. + +Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" + +Typical sequence: + cd PACKAGESOURCE/doc + wget \"$scripturl\" + wget \"$templateurl\" + $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" + +Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR +to override). Move all the new files into your web CVS tree, as +explained in the Web Pages node of maintain.texi. + +Please use the --email ADDRESS option to specify your bug-reporting +address in the generated HTML pages. + +MANUAL-TITLE is included as part of the HTML of the overall +manual/index.html file. It should include the name of the package being +documented. manual/index.html is created by substitution from the file +$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the +generic template for your own purposes.) + +If you have several manuals, you'll need to run this script several +times with different MANUAL values, specifying a different output +directory with -o each time. Then write (by hand) an overall index.html +with links to them all. + +If a manual's Texinfo sources are spread across several directories, +first copy or symlink all Texinfo sources into a single directory. +(Part of the script's work is to make a tar.gz of the sources.) + +You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to +control the programs that get executed, and GENDOCS_TEMPLATE_DIR to +control where the gendocs_template file is looked for. (With --docbook, +the environment variables DOCBOOK2HTML, DOCBOOK2PDF, DOCBOOK2PS, and +DOCBOOK2TXT are also respected.) + +By default, makeinfo is run in the default (English) locale, since +that's the language of most Texinfo manuals. If you happen to have a +non-English manual and non-English web site, see the SETLANG setting +in the source. + +Email bug reports or enhancement requests to bug-texinfo@gnu.org. +" + +calcsize() +{ + size=`ls -ksl $1 | awk '{print $1}'` + echo $size +} + +MANUAL_TITLE= +PACKAGE= +EMAIL=webmasters@gnu.org # please override with --email +htmlarg= +outdir=manual +srcfile= + +while test $# -gt 0; do + case $1 in + --email) shift; EMAIL=$1;; + --help) echo "$usage"; exit 0;; + --version) echo "$version"; exit 0;; + -s) shift; srcfile=$1;; + -o) shift; outdir=$1;; + --docbook) docbook=yes;; + --html) shift; htmlarg=$1;; + --texi2html) use_texi2html=1;; + -*) + echo "$0: Unknown option \`$1'." >&2 + echo "$0: Try \`--help' for more information." >&2 + exit 1;; + *) + if test -z "$PACKAGE"; then + PACKAGE=$1 + elif test -z "$MANUAL_TITLE"; then + MANUAL_TITLE=$1 + else + echo "$0: extra non-option argument \`$1'." >&2 + exit 1 + fi;; + esac + shift +done + +if test -n "$srcfile"; then + : +elif test -s "$srcdir/$PACKAGE.texinfo"; then + srcfile=$srcdir/$PACKAGE.texinfo +elif test -s "$srcdir/$PACKAGE.texi"; then + srcfile=$srcdir/$PACKAGE.texi +elif test -s "$srcdir/$PACKAGE.txi"; then + srcfile=$srcdir/$PACKAGE.txi +else + echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 + exit 1 +fi + +if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then + echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 + echo "$0: it is available from $templateurl." >&2 + exit 1 +fi + +case $outdir in + /*) dotdot_outdir="$outdir";; + *) dotdot_outdir="../$outdir";; +esac + +echo Generating output formats for $srcfile + +cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\"" +echo "Generating info files... ($cmd)" +eval "$cmd" +mkdir -p $outdir/ +tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info* +info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz` +# do not mv the info files, there's no point in having them available +# separately on the web. + +cmd="${TEXI2DVI} \"$srcfile\"" +echo "Generating dvi ... ($cmd)" +eval "$cmd" + +# now, before we compress dvi: +echo Generating postscript... +${DVIPS} $PACKAGE -o +gzip -f -9 $PACKAGE.ps +ps_gz_size=`calcsize $PACKAGE.ps.gz` +mv $PACKAGE.ps.gz $outdir/ + +# compress/finish dvi: +gzip -f -9 $PACKAGE.dvi +dvi_gz_size=`calcsize $PACKAGE.dvi.gz` +mv $PACKAGE.dvi.gz $outdir/ + +cmd="${TEXI2DVI} --pdf \"$srcfile\"" +echo "Generating pdf ... ($cmd)" +eval "$cmd" +pdf_size=`calcsize $PACKAGE.pdf` +mv $PACKAGE.pdf $outdir/ + +cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\"" +echo "Generating ASCII... ($cmd)" +eval "$cmd" +ascii_size=`calcsize $PACKAGE.txt` +gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz +ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz` +mv $PACKAGE.txt $outdir/ + +html_split() +{ + opt="--split=$1 $htmlarg --node-files" + cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" + echo "Generating html by $1... ($cmd)" + eval "$cmd" + split_html_dir=$PACKAGE.html + ( + cd ${split_html_dir} || exit 1 + ln -sf ${PACKAGE}.html index.html + tar -czf $dotdot_outdir/${PACKAGE}.html_$1.tar.gz -- *.html + ) + eval html_$1_tgz_size=`calcsize $outdir/${PACKAGE}.html_$1.tar.gz` + rm -f $outdir/html_$1/*.html + mkdir -p $outdir/html_$1/ + mv ${split_html_dir}/*.html $outdir/html_$1/ + rmdir ${split_html_dir} +} + +if test -z "$use_texi2html"; then + opt="--no-split --html -o $PACKAGE.html $htmlarg" + cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" + echo "Generating monolithic html... ($cmd)" + rm -rf $PACKAGE.html # in case a directory is left over + eval "$cmd" + html_mono_size=`calcsize $PACKAGE.html` + gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz + html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz` + mv $PACKAGE.html $outdir/ + + cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $htmlarg \"$srcfile\"" + echo "Generating html by node... ($cmd)" + eval "$cmd" + split_html_dir=$PACKAGE.html + ( + cd ${split_html_dir} || exit 1 + tar -czf $dotdot_outdir/${PACKAGE}.html_node.tar.gz -- *.html + ) + html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz` + rm -f $outdir/html_node/*.html + mkdir -p $outdir/html_node/ + mv ${split_html_dir}/*.html $outdir/html_node/ + rmdir ${split_html_dir} +else + cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $htmlarg \"$srcfile\"" + echo "Generating monolithic html... ($cmd)" + rm -rf $PACKAGE.html # in case a directory is left over + eval "$cmd" + html_mono_size=`calcsize $PACKAGE.html` + gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz + html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz` + mv $PACKAGE.html $outdir/ + + html_split node + html_split chapter + html_split section +fi + +echo Making .tar.gz for sources... +d=`dirname $srcfile` +srcfiles=`ls $d/*.texinfo $d/*.texi $d/*.txi $d/*.eps 2>/dev/null` || true +tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles +texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz` + +if test -n "$docbook"; then + cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml" + echo "Generating docbook XML... ($cmd)" + eval "$cmd" + docbook_xml_size=`calcsize $PACKAGE-db.xml` + gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz + docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz` + mv $PACKAGE-db.xml $outdir/ + + cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml" + echo "Generating docbook HTML... ($cmd)" + eval "$cmd" + split_html_db_dir=html_node_db + ( + cd ${split_html_db_dir} || exit 1 + tar -czf $dotdot_outdir/${PACKAGE}.html_node_db.tar.gz -- *.html + ) + html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz` + rm -f $outdir/html_node_db/*.html + mkdir -p $outdir/html_node_db + mv ${split_html_db_dir}/*.html $outdir/html_node_db/ + rmdir ${split_html_db_dir} + + cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml" + echo "Generating docbook ASCII... ($cmd)" + eval "$cmd" + docbook_ascii_size=`calcsize $PACKAGE-db.txt` + mv $PACKAGE-db.txt $outdir/ + + cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml" + echo "Generating docbook PS... ($cmd)" + eval "$cmd" + gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz + docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz` + mv $PACKAGE-db.ps $outdir/ + + cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml" + echo "Generating docbook PDF... ($cmd)" + eval "$cmd" + docbook_pdf_size=`calcsize $PACKAGE-db.pdf` + mv $PACKAGE-db.pdf $outdir/ +fi + +echo "Writing index file..." +if test -z "$use_texi2html"; then + CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ + /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" +else + CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" +fi +curdate=`$SETLANG date '+%B %d, %Y'` +sed \ + -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ + -e "s!%%EMAIL%%!$EMAIL!g" \ + -e "s!%%PACKAGE%%!$PACKAGE!g" \ + -e "s!%%DATE%%!$curdate!g" \ + -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ + -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ + -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ + -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ + -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ + -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ + -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ + -e "s!%%PDF_SIZE%%!$pdf_size!g" \ + -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \ + -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ + -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ + -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ + -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ + -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ + -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \ + -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ + -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ + -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ + -e "s,%%SCRIPTURL%%,$scripturl,g" \ + -e "s!%%SCRIPTNAME%%!$prog!g" \ + -e "$CONDS" \ +$GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html + +echo "Done, see $outdir/ subdirectory for new files." + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-end: "$" +# End: diff --git a/build-aux/gendocs_template b/build-aux/gendocs_template new file mode 100644 index 0000000000..ee6a5c566e --- /dev/null +++ b/build-aux/gendocs_template @@ -0,0 +1,96 @@ +<!--#include virtual="/server/header.html" --> +<title>%%TITLE%% - GNU Project - Free Software Foundation (FSF) + +

%%TITLE%%

+ + + + + + + +
Free Software Foundation
+
last updated %%DATE%%
+ +

This manual (%%PACKAGE%%) is available in the following formats:

+ + + +

You can buy printed copies of +some manuals (among other items) from the Free Software Foundation; +this helps support FSF activities.

+ +

(This page generated by the %%SCRIPTNAME%% +script.)

+ + + + + + + + + + + + + diff --git a/build-aux/gendocs_template_min b/build-aux/gendocs_template_min new file mode 100644 index 0000000000..58b8944add --- /dev/null +++ b/build-aux/gendocs_template_min @@ -0,0 +1,101 @@ + + + + + +%%TITLE%% - GNU Project - Free Software Foundation (FSF) + + + + + + + + + + + + + +

%%TITLE%%

+ +
Free Software Foundation
+
last updated %%DATE%%
+

+ +  [image of the head of a GNU] + +

+
+ +

This manual (%%PACKAGE%%) is available in the following formats:

+ + + +

(This page generated by the %%SCRIPTNAME%% +script.)

+ + + + + diff --git a/build-pspp.m4 b/build-pspp.m4 index 2068f7a172..c346d4d557 100644 --- a/build-pspp.m4 +++ b/build-pspp.m4 @@ -5,22 +5,18 @@ m4_define([_m4_divert(INIT_PREPARE)], 300) m4_pattern_forbid([^_?BP_]) m4_pattern_allow([_BP_EOF]) -# BP_INIT([LOGFILE]) -# ------------------ -# Initializes and starts logging to LOGFILE. +# BP_INIT +# ------- m4_define([BP_INIT], [AS_INIT -_BP_INIT_LOG([$1]) -_BP_INIT_RESULTS AS_PREPARE ]) -# _BP_INIT_LOG([LOGFILE]) +# BP_INIT_LOG([LOGFILE]) # ----------------------- # Initialize the log file descriptor and write header to it. -m4_define([_BP_INIT_LOG], -[m4_divert_text([INIT_PREPARE], -[m4_define([BP_LOG_FILE], [$1]) +m4_define([BP_INIT_LOG], +[m4_define([BP_LOG_FILE], [$1])dnl m4_define([AS_MESSAGE_LOG_FD], 5)dnl cat >$1 <<_BPEOF This file is a build log. @@ -36,18 +32,19 @@ AS_UNAME >&AS_MESSAGE_LOG_FD cat >&AS_MESSAGE_LOG_FD <<_BPEOF _BPEOF -])])# _BP_INIT_LOG +]) -# _BP_INIT_RESULTS -m4_define([_BP_INIT_RESULTS], -[AS_MKDIR_P([results]) +# BP_INIT_RESULTS([RESULTSDIR]) +m4_define([BP_INIT_RESULTS], +[m4_define([BP_RESULTS_DIR], [$1])dnl +AS_MKDIR_P([BP_RESULTS_DIR]) m4_define([BP_VARS_FD], 6)dnl -exec BP_VARS_FD>results/VARS +exec BP_VARS_FD>BP_RESULTS_DIR/VARS ]) -# _BP_INIT_DEFAULTS +# BP_INIT_DEFAULTS # ----------------- -m4_define([_BP_INIT_DEFAULTS], +m4_define([BP_INIT_DEFAULTS], [m4_divert_push([DEFAULTS])dnl test -n "$DJDIR" || exec AS_ORIGINAL_STDIN_FD<&0 &AS_MESSAGE_LOG_FD 2>&1])]) +BP_RUN([mv $2 BP_RESULTS_DIR/ >&AS_MESSAGE_LOG_FD 2>&1])]) # BP_COPY_OUTPUT(DESCRIPTION, FILE) m4_define([BP_COPY_OUTPUT], [BP_OUTPUT([$1], [$2]) -BP_RUN([cp -R $2 results/ >&AS_MESSAGE_LOG_FD 2>&1])]) +BP_RUN([cp -R $2 BP_RESULTS_DIR/ >&AS_MESSAGE_LOG_FD 2>&1])]) # BP_TRY_RUN(COMMAND) m4_define([BP_TRY_RUN], @@ -112,7 +109,7 @@ m4_define([BP_FAIL], # BP_FINISH m4_define([BP_FINISH], -[BP_START_STEP([success])]) +[BP_START_STEP([Success])]) # BP_ERROR(MESSAGE) m4_define([BP_ERROR], diff --git a/gendocs.sh b/gendocs.sh deleted file mode 100755 index 67d5b52cab..0000000000 --- a/gendocs.sh +++ /dev/null @@ -1,367 +0,0 @@ -#!/bin/sh -e -# gendocs.sh -- generate a GNU manual in many formats. This script is -# mentioned in maintain.texi. See the help message below for usage details. - -scriptversion=2010-02-13.20 - -# Copyright 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 -# Free Software Foundation, Inc. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see . -# -# Original author: Mohit Agarwal. -# Send bug reports and any other correspondence to bug-texinfo@gnu.org. - -prog=`basename "$0"` -srcdir=`pwd` - -scripturl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs.sh" -templateurl="http://savannah.gnu.org/cgi-bin/viewcvs/~checkout~/texinfo/texinfo/util/gendocs_template" - -: ${SETLANG="env LANG= LC_MESSAGES= LC_ALL= LANGUAGE="} -: ${MAKEINFO="makeinfo"} -: ${TEXI2DVI="texi2dvi -t @finalout"} -: ${DVIPS="dvips"} -: ${DOCBOOK2HTML="docbook2html"} -: ${DOCBOOK2PDF="docbook2pdf"} -: ${DOCBOOK2PS="docbook2ps"} -: ${DOCBOOK2TXT="docbook2txt"} -: ${GENDOCS_TEMPLATE_DIR="."} -: ${TEXI2HTML="texi2html"} -unset CDPATH -unset use_texi2html - -version="gendocs.sh $scriptversion - -Copyright 2009 Free Software Foundation, Inc. -There is NO warranty. You may redistribute this software -under the terms of the GNU General Public License. -For more information about these matters, see the files named COPYING." - -usage="Usage: $prog [OPTION]... PACKAGE MANUAL-TITLE - -Generate various output formats from PACKAGE.texinfo (or .texi or .txi) source. -See the GNU Maintainers document for a more extensive discussion: - http://www.gnu.org/prep/maintain_toc.html - -Options: - -s SRCFILE read Texinfo from SRCFILE, instead of PACKAGE.{texinfo|texi|txi} - -o OUTDIR write files into OUTDIR, instead of manual/. - --email ADR use ADR as contact in generated web pages. - --docbook convert to DocBook too (xml, txt, html, pdf and ps). - --html ARG pass indicated ARG to makeinfo or texi2html for HTML targets. - --texi2html use texi2html to generate HTML targets. - --help display this help and exit successfully. - --version display version information and exit successfully. - -Simple example: $prog --email bug-gnu-emacs@gnu.org emacs \"GNU Emacs Manual\" - -Typical sequence: - cd PACKAGESOURCE/doc - wget \"$scripturl\" - wget \"$templateurl\" - $prog --email BUGLIST MANUAL \"GNU MANUAL - One-line description\" - -Output will be in a new subdirectory \"manual\" (by default, use -o OUTDIR -to override). Move all the new files into your web CVS tree, as -explained in the Web Pages node of maintain.texi. - -Please use the --email ADDRESS option to specify your bug-reporting -address in the generated HTML pages. - -MANUAL-TITLE is included as part of the HTML of the overall -manual/index.html file. It should include the name of the package being -documented. manual/index.html is created by substitution from the file -$GENDOCS_TEMPLATE_DIR/gendocs_template. (Feel free to modify the -generic template for your own purposes.) - -If you have several manuals, you'll need to run this script several -times with different MANUAL values, specifying a different output -directory with -o each time. Then write (by hand) an overall index.html -with links to them all. - -If a manual's Texinfo sources are spread across several directories, -first copy or symlink all Texinfo sources into a single directory. -(Part of the script's work is to make a tar.gz of the sources.) - -You can set the environment variables MAKEINFO, TEXI2DVI, and DVIPS to -control the programs that get executed, and GENDOCS_TEMPLATE_DIR to -control where the gendocs_template file is looked for. (With --docbook, -the environment variables DOCBOOK2HTML, DOCBOOK2PDF, DOCBOOK2PS, and -DOCBOOK2TXT are also respected.) - -By default, makeinfo is run in the default (English) locale, since -that's the language of most Texinfo manuals. If you happen to have a -non-English manual and non-English web site, see the SETLANG setting -in the source. - -Email bug reports or enhancement requests to bug-texinfo@gnu.org. -" - -calcsize() -{ - size=`ls -ksl $1 | awk '{print $1}'` - echo $size -} - -MANUAL_TITLE= -PACKAGE= -EMAIL=webmasters@gnu.org # please override with --email -htmlarg= -outdir=manual -srcfile= - -while test $# -gt 0; do - case $1 in - --email) shift; EMAIL=$1;; - --help) echo "$usage"; exit 0;; - --version) echo "$version"; exit 0;; - -s) shift; srcfile=$1;; - -o) shift; outdir=$1;; - --docbook) docbook=yes;; - --html) shift; htmlarg=$1;; - --texi2html) use_texi2html=1;; - -*) - echo "$0: Unknown option \`$1'." >&2 - echo "$0: Try \`--help' for more information." >&2 - exit 1;; - *) - if test -z "$PACKAGE"; then - PACKAGE=$1 - elif test -z "$MANUAL_TITLE"; then - MANUAL_TITLE=$1 - else - echo "$0: extra non-option argument \`$1'." >&2 - exit 1 - fi;; - esac - shift -done - -if test -n "$srcfile"; then - : -elif test -s "$srcdir/$PACKAGE.texinfo"; then - srcfile=$srcdir/$PACKAGE.texinfo -elif test -s "$srcdir/$PACKAGE.texi"; then - srcfile=$srcdir/$PACKAGE.texi -elif test -s "$srcdir/$PACKAGE.txi"; then - srcfile=$srcdir/$PACKAGE.txi -else - echo "$0: cannot find .texinfo or .texi or .txi for $PACKAGE in $srcdir." >&2 - exit 1 -fi - -if test ! -r $GENDOCS_TEMPLATE_DIR/gendocs_template; then - echo "$0: cannot read $GENDOCS_TEMPLATE_DIR/gendocs_template." >&2 - echo "$0: it is available from $templateurl." >&2 - exit 1 -fi - -case $outdir in - /*) dotdot_outdir="$outdir";; - *) dotdot_outdir="../$outdir";; -esac - -echo Generating output formats for $srcfile - -cmd="$SETLANG $MAKEINFO -o $PACKAGE.info \"$srcfile\"" -echo "Generating info files... ($cmd)" -eval "$cmd" -mkdir -p $outdir/ -tar czf $outdir/$PACKAGE.info.tar.gz $PACKAGE.info* -info_tgz_size=`calcsize $outdir/$PACKAGE.info.tar.gz` -# do not mv the info files, there's no point in having them available -# separately on the web. - -cmd="${TEXI2DVI} \"$srcfile\"" -echo "Generating dvi ... ($cmd)" -eval "$cmd" - -# now, before we compress dvi: -echo Generating postscript... -${DVIPS} $PACKAGE -o -gzip -f -9 $PACKAGE.ps -ps_gz_size=`calcsize $PACKAGE.ps.gz` -mv $PACKAGE.ps.gz $outdir/ - -# compress/finish dvi: -gzip -f -9 $PACKAGE.dvi -dvi_gz_size=`calcsize $PACKAGE.dvi.gz` -mv $PACKAGE.dvi.gz $outdir/ - -cmd="${TEXI2DVI} --pdf \"$srcfile\"" -echo "Generating pdf ... ($cmd)" -eval "$cmd" -pdf_size=`calcsize $PACKAGE.pdf` -mv $PACKAGE.pdf $outdir/ - -cmd="$SETLANG $MAKEINFO -o $PACKAGE.txt --no-split --no-headers \"$srcfile\"" -echo "Generating ASCII... ($cmd)" -eval "$cmd" -ascii_size=`calcsize $PACKAGE.txt` -gzip -f -9 -c $PACKAGE.txt >$outdir/$PACKAGE.txt.gz -ascii_gz_size=`calcsize $outdir/$PACKAGE.txt.gz` -mv $PACKAGE.txt $outdir/ - -html_split() -{ - opt="--split=$1 $htmlarg --node-files" - cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $opt \"$srcfile\"" - echo "Generating html by $1... ($cmd)" - eval "$cmd" - split_html_dir=$PACKAGE.html - ( - cd ${split_html_dir} || exit 1 - ln -sf ${PACKAGE}.html index.html - tar -czf $dotdot_outdir/${PACKAGE}.html_$1.tar.gz -- *.html - ) - eval html_$1_tgz_size=`calcsize $outdir/${PACKAGE}.html_$1.tar.gz` - rm -f $outdir/html_$1/*.html - mkdir -p $outdir/html_$1/ - mv ${split_html_dir}/*.html $outdir/html_$1/ - rmdir ${split_html_dir} -} - -if test -z "$use_texi2html"; then - opt="--no-split --html -o $PACKAGE.html $htmlarg" - cmd="$SETLANG $MAKEINFO $opt \"$srcfile\"" - echo "Generating monolithic html... ($cmd)" - rm -rf $PACKAGE.html # in case a directory is left over - eval "$cmd" - html_mono_size=`calcsize $PACKAGE.html` - gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz - html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz` - mv $PACKAGE.html $outdir/ - - cmd="$SETLANG $MAKEINFO --html -o $PACKAGE.html $htmlarg \"$srcfile\"" - echo "Generating html by node... ($cmd)" - eval "$cmd" - split_html_dir=$PACKAGE.html - ( - cd ${split_html_dir} || exit 1 - tar -czf $dotdot_outdir/${PACKAGE}.html_node.tar.gz -- *.html - ) - html_node_tgz_size=`calcsize $outdir/${PACKAGE}.html_node.tar.gz` - rm -f $outdir/html_node/*.html - mkdir -p $outdir/html_node/ - mv ${split_html_dir}/*.html $outdir/html_node/ - rmdir ${split_html_dir} -else - cmd="$SETLANG $TEXI2HTML --output $PACKAGE.html $htmlarg \"$srcfile\"" - echo "Generating monolithic html... ($cmd)" - rm -rf $PACKAGE.html # in case a directory is left over - eval "$cmd" - html_mono_size=`calcsize $PACKAGE.html` - gzip -f -9 -c $PACKAGE.html >$outdir/$PACKAGE.html.gz - html_mono_gz_size=`calcsize $outdir/$PACKAGE.html.gz` - mv $PACKAGE.html $outdir/ - - html_split node - html_split chapter - html_split section -fi - -echo Making .tar.gz for sources... -d=`dirname $srcfile` -srcfiles=`ls $d/*.texinfo $d/*.texi $d/*.txi $d/*.eps 2>/dev/null` || true -tar cvzfh $outdir/$PACKAGE.texi.tar.gz $srcfiles -texi_tgz_size=`calcsize $outdir/$PACKAGE.texi.tar.gz` - -if test -n "$docbook"; then - cmd="$SETLANG $MAKEINFO -o - --docbook \"$srcfile\" > ${srcdir}/$PACKAGE-db.xml" - echo "Generating docbook XML... ($cmd)" - eval "$cmd" - docbook_xml_size=`calcsize $PACKAGE-db.xml` - gzip -f -9 -c $PACKAGE-db.xml >$outdir/$PACKAGE-db.xml.gz - docbook_xml_gz_size=`calcsize $outdir/$PACKAGE-db.xml.gz` - mv $PACKAGE-db.xml $outdir/ - - cmd="${DOCBOOK2HTML} -o $split_html_db_dir ${outdir}/$PACKAGE-db.xml" - echo "Generating docbook HTML... ($cmd)" - eval "$cmd" - split_html_db_dir=html_node_db - ( - cd ${split_html_db_dir} || exit 1 - tar -czf $dotdot_outdir/${PACKAGE}.html_node_db.tar.gz -- *.html - ) - html_node_db_tgz_size=`calcsize $outdir/${PACKAGE}.html_node_db.tar.gz` - rm -f $outdir/html_node_db/*.html - mkdir -p $outdir/html_node_db - mv ${split_html_db_dir}/*.html $outdir/html_node_db/ - rmdir ${split_html_db_dir} - - cmd="${DOCBOOK2TXT} ${outdir}/$PACKAGE-db.xml" - echo "Generating docbook ASCII... ($cmd)" - eval "$cmd" - docbook_ascii_size=`calcsize $PACKAGE-db.txt` - mv $PACKAGE-db.txt $outdir/ - - cmd="${DOCBOOK2PS} ${outdir}/$PACKAGE-db.xml" - echo "Generating docbook PS... ($cmd)" - eval "$cmd" - gzip -f -9 -c $PACKAGE-db.ps >$outdir/$PACKAGE-db.ps.gz - docbook_ps_gz_size=`calcsize $outdir/$PACKAGE-db.ps.gz` - mv $PACKAGE-db.ps $outdir/ - - cmd="${DOCBOOK2PDF} ${outdir}/$PACKAGE-db.xml" - echo "Generating docbook PDF... ($cmd)" - eval "$cmd" - docbook_pdf_size=`calcsize $PACKAGE-db.pdf` - mv $PACKAGE-db.pdf $outdir/ -fi - -echo "Writing index file..." -if test -z "$use_texi2html"; then - CONDS="/%%IF *HTML_SECTION%%/,/%%ENDIF *HTML_SECTION%%/d;\ - /%%IF *HTML_CHAPTER%%/,/%%ENDIF *HTML_CHAPTER%%/d" -else - CONDS="/%%ENDIF.*%%/d;/%%IF *HTML_SECTION%%/d;/%%IF *HTML_CHAPTER%%/d" -fi -curdate=`$SETLANG date '+%B %d, %Y'` -sed \ - -e "s!%%TITLE%%!$MANUAL_TITLE!g" \ - -e "s!%%EMAIL%%!$EMAIL!g" \ - -e "s!%%PACKAGE%%!$PACKAGE!g" \ - -e "s!%%DATE%%!$curdate!g" \ - -e "s!%%HTML_MONO_SIZE%%!$html_mono_size!g" \ - -e "s!%%HTML_MONO_GZ_SIZE%%!$html_mono_gz_size!g" \ - -e "s!%%HTML_NODE_TGZ_SIZE%%!$html_node_tgz_size!g" \ - -e "s!%%HTML_SECTION_TGZ_SIZE%%!$html_section_tgz_size!g" \ - -e "s!%%HTML_CHAPTER_TGZ_SIZE%%!$html_chapter_tgz_size!g" \ - -e "s!%%INFO_TGZ_SIZE%%!$info_tgz_size!g" \ - -e "s!%%DVI_GZ_SIZE%%!$dvi_gz_size!g" \ - -e "s!%%PDF_SIZE%%!$pdf_size!g" \ - -e "s!%%PS_GZ_SIZE%%!$ps_gz_size!g" \ - -e "s!%%ASCII_SIZE%%!$ascii_size!g" \ - -e "s!%%ASCII_GZ_SIZE%%!$ascii_gz_size!g" \ - -e "s!%%TEXI_TGZ_SIZE%%!$texi_tgz_size!g" \ - -e "s!%%DOCBOOK_HTML_NODE_TGZ_SIZE%%!$html_node_db_tgz_size!g" \ - -e "s!%%DOCBOOK_ASCII_SIZE%%!$docbook_ascii_size!g" \ - -e "s!%%DOCBOOK_PS_GZ_SIZE%%!$docbook_ps_gz_size!g" \ - -e "s!%%DOCBOOK_PDF_SIZE%%!$docbook_pdf_size!g" \ - -e "s!%%DOCBOOK_XML_SIZE%%!$docbook_xml_size!g" \ - -e "s!%%DOCBOOK_XML_GZ_SIZE%%!$docbook_xml_gz_size!g" \ - -e "s,%%SCRIPTURL%%,$scripturl,g" \ - -e "s!%%SCRIPTNAME%%!$prog!g" \ - -e "$CONDS" \ -$GENDOCS_TEMPLATE_DIR/gendocs_template >$outdir/index.html - -echo "Done, see $outdir/ subdirectory for new files." - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: diff --git a/gendocs_template b/gendocs_template deleted file mode 100644 index ee6a5c566e..0000000000 --- a/gendocs_template +++ /dev/null @@ -1,96 +0,0 @@ -<!--#include virtual="/server/header.html" --> -<title>%%TITLE%% - GNU Project - Free Software Foundation (FSF) - -

%%TITLE%%

- - - - - - - -
Free Software Foundation
-
last updated %%DATE%%
- -

This manual (%%PACKAGE%%) is available in the following formats:

- - - -

You can buy printed copies of -some manuals (among other items) from the Free Software Foundation; -this helps support FSF activities.

- -

(This page generated by the %%SCRIPTNAME%% -script.)

- - - - - - - - - - - - - diff --git a/gendocs_template_min b/gendocs_template_min deleted file mode 100644 index 58b8944add..0000000000 --- a/gendocs_template_min +++ /dev/null @@ -1,101 +0,0 @@ - - - - - -%%TITLE%% - GNU Project - Free Software Foundation (FSF) - - - - - - - - - - - - - -

%%TITLE%%

- -
Free Software Foundation
-
last updated %%DATE%%
-

- -  [image of the head of a GNU] - -

-
- -

This manual (%%PACKAGE%%) is available in the following formats:

- - - -

(This page generated by the %%SCRIPTNAME%% -script.)

- - - - - diff --git a/make-bin-dist.as b/make-bin-dist.as index 742f2bf8d7..295b498a16 100644 --- a/make-bin-dist.as +++ b/make-bin-dist.as @@ -1,13 +1,13 @@ # -* autoconf -*- -BP_INIT([make-binary.log]) +BP_INIT usage=["\ -Usage: $0 [OPTION]... PSPP_DIST.TAR.GZ -where PSPP_DIST.TAR.GZ is a PSPP tarball prepared by \"make dist\". +Usage: $0 [OPTION]... PSPP_DIST.TAR.GZ BINID +where PSPP_DIST.TAR.GZ is a PSPP tarball prepared by \"make dist\" + and BINID briefly identifies the target, e.g. \"debian-squeeze-i386\". Options: - -b, --binid=BINID Use BINID to identify binary. -h, --help Print this usage message and exit -f, --force Delete existing directory instead of aborting @@ -35,7 +35,6 @@ exit_missing_arg=' # Variables. overwrite=false -BINID= # Parse command line. while test $# -gt 0 ; do @@ -52,14 +51,6 @@ while test $# -gt 0 ; do --force | -f ) overwrite=true ;; - --binid=* | -b?* ) - BINID=$optarg - shift ;; - --binid | -b ) - test $# = 1 && eval "$exit_missing_arg" - BINID=$2 - shift; shift ;; - -- ) # Stop option processing shift; break ;; - ) # Use stdin as input. @@ -74,8 +65,9 @@ done # Find the input file. case $# in - 1) + 2) tarball=$1 + BINID=$2 ;; *) exec >&2 AS_ERROR([invalid number of arguments$as_nl$help]) ;; @@ -86,35 +78,50 @@ if test ! -e "$tarball"; then AS_ERROR([$tarball does not exist]) fi +if test -e "$BINID"; then + if test $overwrite = true; then + chmod -R u+w "$BINID" + rm -rf "$BINID" + else + exec >&2 + AS_ERROR([$BINID exists and --force not specified]) + fi +fi + +BP_INIT_RESULTS([$BINID]) +BP_INIT_LOG([$BINID/LOG]) + +BP_SET_VAR([BUILD_NUMBER], [@BUILD_NUMBER@]) +BP_SET_VAR([PSPP_COMMIT], [@PSPP_COMMIT@]) +BP_SET_VAR([PSPP_REPO], [@PSPP_REPO@]) +BP_SET_VAR([GNULIB_COMMIT], [@GNULIB_COMMIT@]) +BP_SET_VAR([GNULIB_REPO], [@GNULIB_REPO@]) +BP_SET_VAR([BRANCH], [@BRANCH@]) + +BP_SET_VAR([BINID]) + BP_START_STEP([Determining $tarball target directory]) DIST_DIR=`zcat $tarball | tar tf - 2>/dev/null | sed 1q | sed s,/.*,,` BP_SET_VAR([DIST_DIR]) if test X$DIST_DIR = X; then BP_ERROR([failed to determine $tarball target directory]) -elif test -e "$DIST_DIR"; then - if test $overwrite = true; then - chmod -R u+w "$DIST_DIR" - rm -rf "$DIST_DIR" - else - BP_ERROR([$DIST_DIR exists and --force not specified]) - fi fi BP_START_STEP([Extracting source tarball]) -BP_RUN([zcat $tarball | tar xf - >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([zcat $tarball | tar xkf - >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Extracting tar version]) DIST_VERSION=`$DIST_DIR/configure --version 2>/dev/null | sed 1q | sed 's/.* //'` BP_SET_VAR([DIST_VERSION]) BP_START_STEP([Configuring]) -BP_RUN([mkdir $DIST_DIR/_build >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([mkdir $DIST_DIR/_$BINID >&AS_MESSAGE_LOG_FD 2>&1]) BP_RUN([chmod -R a-w $DIST_DIR >&AS_MESSAGE_LOG_FD 2>&1]) -BP_RUN([chmod u+w $DIST_DIR/_build >&AS_MESSAGE_LOG_FD 2>&1]) -BP_TRY_RUN([(cd $DIST_DIR/_build && ../configure --enable-relocatable --prefix='') >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([chmod u+w $DIST_DIR/_$BINID >&AS_MESSAGE_LOG_FD 2>&1]) +BP_TRY_RUN([(cd $DIST_DIR/_$BINID && ../configure --enable-relocatable --prefix='') >&AS_MESSAGE_LOG_FD 2>&1]) _bp_status=$? for base in config.h config.log; do - fn=$DIST_DIR/_build/$base + fn=$DIST_DIR/_$BINID/$base if test -e "$fn"; then BP_COPY_OUTPUT([build configuration], [$fn]) fi @@ -123,30 +130,21 @@ if test $_bp_status != 0; then AS_ECHO(["$as_me:$LINENO: command exited with status $_bp_status"]) >&AS_MESSAGE_LOG_FD fi -BP_START_STEP([Determine target name]) -if test "X$BINID" = X; then - BINID=`sed -n 's/^Target: \(.*\)$/\1/p' < $DIST_DIR/_build/config.log 2>/dev/null | sed 1q` - if test "X$BINID" = X; then - BINID=`./config.guess` - fi -fi -BP_SET_VAR([BINID]) - BP_START_STEP([Build]) -BP_RUN([(cd $DIST_DIR/_build && make) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd $DIST_DIR/_$BINID && make) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Install]) -BP_RUN([(cd $DIST_DIR/_build && make install DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd $DIST_DIR/_$BINID && make install DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Make binary distribution]) -BP_RUN([(cd $DIST_DIR/_build && tar cfz pspp-$DIST_VERSION-$BINID.tar.gz pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) -BP_MOVE_OUTPUT([binary distribution], [$DIST_DIR/_build/pspp-$DIST_VERSION-$BINID.tar.gz]) +BP_RUN([(cd $DIST_DIR/_$BINID && tar cfz pspp-$DIST_VERSION-$BINID.tar.gz pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_MOVE_OUTPUT([binary distribution], [$DIST_DIR/_$BINID/pspp-$DIST_VERSION-$BINID.tar.gz]) BP_START_STEP([Check]) -BP_TRY_RUN([(cd $DIST_DIR/_build && make check) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_TRY_RUN([(cd $DIST_DIR/_$BINID && make check) >&AS_MESSAGE_LOG_FD 2>&1]) _bp_status=$? for base in tests/testsuite.log tests/testsuite.dir; do - fn=$DIST_DIR/_build/$base + fn=$DIST_DIR/_$BINID/$base if test -e "$fn"; then BP_MOVE_OUTPUT([test logs], [$fn]) fi @@ -156,10 +154,10 @@ if test $_bp_status != 0; then fi BP_START_STEP([Uninstall]) -BP_RUN([(cd $DIST_DIR/_build && make uninstall DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd $DIST_DIR/_$BINID && make uninstall DESTDIR=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Check uninstall]) -BP_RUN([(cd $DIST_DIR/_build && make distuninstallcheck distuninstallcheck_dir=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd $DIST_DIR/_$BINID && make distuninstallcheck distuninstallcheck_dir=$PWD/pspp-$DIST_VERSION-$BINID) >&AS_MESSAGE_LOG_FD 2>&1]) # distcleancheck diff --git a/make-builder.as b/make-builder.as index a30e4374ce..8a90693f35 100644 --- a/make-builder.as +++ b/make-builder.as @@ -30,7 +30,7 @@ where REPO and BRANCH are a Git repository and branch to clone. Options: -h, --help Print this usage message and exit -b, --build=NUMBER Set build number (default: next available) - -o, --output=DIRECTORY Set build directory (default: build\$BUILDNR) + -o, --output=DIRECTORY Set build directory (default: build\$BUILD_NUMBER) -f, --force Overwrite files in existing directory Report bugs to . @@ -58,7 +58,8 @@ exit_missing_arg=' # Variables. outdir= overwrite=false -buildnr= +BUILD_NUMBER= +GNULIB_REPO=git://git.sv.gnu.org/gnulib.git # Parse command line. while test $# -gt 0 ; do @@ -85,11 +86,11 @@ while test $# -gt 0 ; do shift; shift ;; --build=* | -b?* ) - buildnr=$optarg + BUILD_NUMBER=$optarg shift ;; --build | -b ) test $# = 1 && eval "$exit_missing_arg" - buildnr=$2 + BUILD_NUMBER=$2 shift; shift ;; --force | -f ) @@ -110,15 +111,15 @@ done # Find the input file. case $# in 2) - repository=$1 - branch=$2 + PSPP_REPO=$1 + PSPP_BRANCH=$2 ;; *) exec >&2 AS_ERROR([invalid number of arguments$as_nl$help]) ;; esac # Choose build number. -if test "x$buildnr" = x; then +if test "x$BUILD_NUMBER" = x; then lock_file () { echo $$ > $[1].$$ if ln $[1].$$ $[1].lock; then @@ -138,22 +139,22 @@ if test "x$buildnr" = x; then done if test -e buildnr; then - buildnr=`cat buildnr` + BUILD_NUMBER=`cat buildnr` else - buildnr=1 + BUILD_NUMBER=1 fi - echo `expr $buildnr + 1` > buildnr + echo `expr $BUILD_NUMBER + 1` > buildnr rm build_number.lock fi # Check that build number is a number. -if expr "X$buildnr" : '[X[0-9][0-9]*$]' >/dev/null; then - : -else - exec >&2 - AS_ERROR([invalid build number `$buildnr'$as_nl$help]) #` -fi +case $BUILD_NUMBER in # ( + "" | *[!0-9]*) + exec >&2 + AS_ERROR([invalid build number `$BUILD_NUMBER'$as_nl$help]) #` + ;; +esac # Ensure that git repository exists. GIT_DIR=$PWD/repo.git @@ -161,28 +162,28 @@ export GIT_DIR git init # Fetch PSPP source. -git fetch $repository +$branch:refs/builds/$buildnr/pspp +git fetch $PSPP_REPO +$PSPP_BRANCH:refs/builds/$BUILD_NUMBER/pspp # Get PSPP commit number. -pspp_commit=`git rev-parse refs/builds/$buildnr/pspp` +PSPP_COMMIT=`git rev-parse refs/builds/$BUILD_NUMBER/pspp` # Get gnulib commit number. -gnulib_commit=`\ - git show refs/builds/$buildnr/pspp:README.Git | \ +GNULIB_COMMIT=`\ + git show refs/builds/$BUILD_NUMBER/pspp:README.Git | \ sed -n 's/^[[ ]]*commit \([[0-9a-fA-F]]\{8,\}\)$/\1/p' | \ head -1` # Fetch Gnulib source. -if git rev-parse --verify --quiet $gnulib_commit^0 > /dev/null; then +if git rev-parse --verify --quiet $GNULIB_COMMIT^0 > /dev/null; then : else # We don't have the right commit yet, update Gnulib. - git fetch git://git.sv.gnu.org/gnulib.git +refs/heads/*:refs/remotes/gnulib/* + git fetch $GNULIB_REPO +refs/heads/*:refs/remotes/gnulib/* fi -git update-ref refs/builds/$buildnr/gnulib $gnulib_commit +git update-ref refs/builds/$BUILD_NUMBER/gnulib $GNULIB_COMMIT # Choose and create output directory. -test -z "$outdir" && outdir=build$buildnr +test -z "$outdir" && outdir=build$BUILD_NUMBER if test -e "$outdir" && test $overwrite = false; then exec >&2 AS_ERROR([$outdir exists and --force not specified$as_nl$help]) @@ -190,19 +191,28 @@ fi AS_MKDIR_P([$outdir]) # Make source tarballs. -git archive --format=tar --prefix=pspp-$pspp_commit/ $pspp_commit \ - | gzip > $outdir/pspp-$pspp_commit.tar.gz -git archive --format=tar --prefix=gnulib-$gnulib_commit/ $gnulib_commit \ - | gzip > $outdir/gnulib-$gnulib_commit.tar.gz +mkdir "$outdir/repo" +git archive --format=tar --prefix=pspp-$PSPP_COMMIT/ $PSPP_COMMIT \ + | gzip > $outdir/repo/pspp-$PSPP_COMMIT.tar.gz +git archive --format=tar --prefix=gnulib-$GNULIB_COMMIT/ $GNULIB_COMMIT \ + | gzip > $outdir/repo/gnulib-$GNULIB_COMMIT.tar.gz # Make build scripts. -sed < dist-pspp.in > "$outdir/dist-pspp" " -s,[@]PSPP_COMMIT[@],$pspp_commit,g -s,[@]GNULIB_COMMIT[@],$gnulib_commit,g -s,[@]BRANCH[@],$branch,g +for base in make-src-dist make-bin-dist; do + sed < $base.in > "$outdir/$base" " +s,[@]BUILD_NUMBER[@],$BUILD_NUMBER,g +s,[@]PSPP_REPO[@],$PSPP_REPO,g +s,[@]PSPP_BRANCH[@],$PSPP_BRANCH,g +s,[@]PSPP_COMMIT[@],$PSPP_COMMIT,g +s,[@]GNULIB_COMMIT[@],$GNULIB_COMMIT,g +s,[@]GNULIB_REPO[@],$GNULIB_REPO,g s,[@]CONFIGUREFLAGS[@],,g " -chmod +x "$outdir/dist-pspp" + chmod +x "$outdir/$base" +done -# Copy in scripts. -cp gendocs.sh gendocs_template gendocs_template_min "$outdir/" +# Copy in auxiliary files. +mkdir "$outdir/build-aux" +for base in gendocs.sh gendocs_template gendocs_template_min; do + cp "build-aux/$base" "$outdir/build-aux/" +done diff --git a/make-src-dist.as b/make-src-dist.as index 3d3f225a04..81d42eabe8 100644 --- a/make-src-dist.as +++ b/make-src-dist.as @@ -1,29 +1,34 @@ # -* autoconf -*- -BP_INIT([dist-pspp.log]) +BP_INIT -BP_SET_VAR([COMMIT], [@PSPP_COMMIT@]) +BP_INIT_RESULTS([source]) +BP_INIT_LOG([source/LOG]) + +BP_SET_VAR([BUILD_NUMBER], [@BUILD_NUMBER@]) +BP_SET_VAR([PSPP_REPO], [@PSPP_REPO@]) +BP_SET_VAR([PSPP_BRANCH], [@PSPP_BRANCH@]) +BP_SET_VAR([PSPP_COMMIT], [@PSPP_COMMIT@]) BP_SET_VAR([GNULIB_COMMIT], [@GNULIB_COMMIT@]) -BP_SET_VAR([BRANCH], [@BRANCH@]) +BP_SET_VAR([GNULIB_REPO], [@GNULIB_REPO@]) ABBREV_COMMIT=`expr "$COMMIT" : '\(......\)'` -BP_SET_VAR([ABBREV_COMMIT]) BP_START_STEP([Extracting Git sources]) -tar xzf pspp-$COMMIT.tar.gz +BP_RUN([(cd repo && zcat pspp-$PSPP_COMMIT.tar.gz | tar xf -) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Extract repository version number]) -(cd pspp-$COMMIT && autoconf -t AC_INIT) > tmp$$ -IFS=: read FILE LINE macro PACKAGE REPO_VERSION BUG_REPORT TARNAME URL < tmp$$ +BP_RUN([(cd repo/pspp-$PSPP_COMMIT && autoconf -t AC_INIT) >tmp$$ 2>&AS_MESSAGE_LOG_FD]) +BP_RUN([IFS=: read FILE LINE macro PACKAGE REPO_VERSION BUG_REPORT TARNAME URL &AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([rm tmp$$ >&AS_MESSAGE_LOG_FD 2>&1]) BP_SET_VAR([REPO_VERSION]) BP_START_STEP([Checking Automake mode]) -if grep gnits pspp-$COMMIT/Makefile.am >/dev/null 2>&1; then +if grep gnits repo/pspp-$PSPP_COMMIT/Makefile.am >/dev/null 2>&1; then AM_MODE=gnits else AM_MODE=gnu fi -BP_SET_VAR([AM_MODE]) BP_START_STEP([Generate build version number]) case $AM_MODE-$REPO_VERSION in # ( @@ -40,54 +45,55 @@ esac BP_SET_VAR([VERSION]) BP_START_STEP([Update version number in configure.ac]) -echo "AC_INIT([[$PACKAGE], [$VERSION], [$BUG_REPORT], [$TARNAME], [$URL]])" > tmp$$ +AS_ECHO(["AC_INIT([$PACKAGE], [$VERSION], [$BUG_REPORT], [$TARNAME], [$URL])]") > tmp$$ sed -n "${LINE}r tmp$$ -$LINE!p" < pspp-$COMMIT/$FILE > pspp-$COMMIT/$FILE.new -mv pspp-$COMMIT/$FILE.new pspp-$COMMIT/$FILE +$LINE!p" < repo/pspp-$PSPP_COMMIT/$FILE > repo/pspp-$PSPP_COMMIT/$FILE.new +mv repo/pspp-$PSPP_COMMIT/$FILE.new repo/pspp-$PSPP_COMMIT/$FILE BP_START_STEP([Updating NEWS]) { - sed -n '/^Changes/q;p' pspp-$COMMIT/NEWS + sed -n '/^Changes/q;p' repo/pspp-$PSPP_COMMIT/NEWS cat <<_BP_EOF Changes from $REPO_VERSION to $VERSION: - * Built from PSPP commit $COMMIT - in branch $BRANCH on host `hostname`. + * Built from PSPP commit $PSPP_COMMIT + in branch $PSPP_BRANCH from repository $PSPP_REPO. - * Built from Gnulib commit $GNULIB_COMMIT. + * Built from Gnulib commit $GNULIB_COMMIT + from repository $GNULIB_REPO. _BP_EOF - sed -n '/^Changes/,$p' pspp-$COMMIT/NEWS + sed -n '/^Changes/,$p' repo/pspp-$PSPP_COMMIT/NEWS } > NEWS.new -mv NEWS.new pspp-$COMMIT/NEWS +mv NEWS.new repo/pspp-$PSPP_COMMIT/NEWS BP_START_STEP([Extract Gnulib source]) -BP_RUN([tar xzf gnulib-$GNULIB_COMMIT.tar.gz >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd repo && zcat gnulib-$GNULIB_COMMIT.tar.gz | tar xf -) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Bootstrap (make -f Smake)]) -BP_RUN([(cd pspp-$COMMIT && make -f Smake GNULIB=../gnulib-$GNULIB_COMMIT) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd repo/pspp-$PSPP_COMMIT && make -f Smake GNULIB=../gnulib-$GNULIB_COMMIT) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Configure]) -AS_MKDIR_P([pspp-$COMMIT/_build]) -BP_RUN([(cd pspp-$COMMIT/_build && ../configure @CONFIGUREFLAGS@) >&AS_MESSAGE_LOG_FD 2>&1]) +mkdir repo/pspp-$PSPP_COMMIT/_dist +BP_RUN([(cd repo/pspp-$PSPP_COMMIT/_dist && ../configure @CONFIGUREFLAGS@) >&AS_MESSAGE_LOG_FD 2>&1]) BP_START_STEP([Make source tarball]) -BP_RUN([(cd pspp-$COMMIT/_build && make dist) >&AS_MESSAGE_LOG_FD 2>&1]) -BP_MOVE_OUTPUT([source distribution], [pspp-$COMMIT/_build/pspp-$VERSION.tar.gz]) +BP_RUN([(cd repo/pspp-$PSPP_COMMIT/_dist && make dist) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_MOVE_OUTPUT([source distribution], [repo/pspp-$PSPP_COMMIT/_dist/pspp-$VERSION.tar.gz]) -potfile=pspp-$COMMIT/_build/po/pspp.pot +potfile=repo/pspp-$PSPP_COMMIT/_dist/po/pspp.pot if test ! -e $potfile; then - potfile=pspp-$COMMIT/po/pspp.pot + potfile=repo/pspp-$PSPP_COMMIT/po/pspp.pot fi BP_COPY_OUTPUT([translation templates], [$potfile]) BP_START_STEP([Build user manual]) -BP_RUN([(cd pspp-$COMMIT && cp _build/doc/*.texi doc/) >&AS_MESSAGE_LOG_FD 2>&1]) -BP_RUN([(cd pspp-$COMMIT && GENDOCS_TEMPLATE_DIR=.. ../gendocs.sh -s doc/pspp.texinfo -o results/user-manual --email bug-gnu-pspp@gnu.org pspp "GNU PSPP User Manual") >&AS_MESSAGE_LOG_FD 2>&1]) -BP_OUTPUT([User Manual], [user-manual]) +BP_RUN([(cd repo/pspp-$PSPP_COMMIT && cp _dist/doc/*.texi doc/) >&AS_MESSAGE_LOG_FD 2>&1]) +BP_RUN([(cd repo/pspp-$PSPP_COMMIT && GENDOCS_TEMPLATE_DIR=../../build-aux ../../build-aux/gendocs.sh -s doc/pspp.texinfo -o BP_RESULTS_DIR/user-manual --email bug-gnu-pspp@gnu.org pspp "GNU PSPP User Manual") >&AS_MESSAGE_LOG_FD 2>&1]) +BP_OUTPUT([User Manual], [repo/user-manual]) BP_START_STEP([Build developers guide]) -BP_RUN([(cd pspp-$COMMIT && GENDOCS_TEMPLATE_DIR=.. ../gendocs.sh -s doc/pspp-dev.texinfo -o results/dev-guide --email bug-gnu-pspp@gnu.org pspp-dev "GNU PSPP Developers Guide") >&AS_MESSAGE_LOG_FD 2>&1]) -BP_OUTPUT([Developers Guide], [dev-guide]) +BP_RUN([(cd repo/pspp-$PSPP_COMMIT && GENDOCS_TEMPLATE_DIR=../../build-aux ../../build-aux/gendocs.sh -s doc/pspp-dev.texinfo -o BP_RESULTS_DIR/dev-guide --email bug-gnu-pspp@gnu.org pspp-dev "GNU PSPP Developers Guide") >&AS_MESSAGE_LOG_FD 2>&1]) +BP_OUTPUT([Developers Guide], [repo/dev-guide]) BP_FINISH diff --git a/results2html b/results2html index 448d1e5e41..c6aaab634d 100755 --- a/results2html +++ b/results2html @@ -38,7 +38,6 @@ my (%vars) = read_vars ('VARS'); my (@products); my (@steps); -my ($new_page) = 0; my ($result) = "failure"; my (%dist_files); my ($dist_dir); @@ -47,13 +46,6 @@ while () { my $ln = $.; chomp; - if (/^ $/) { - $new_page = 1; - @dirstack = (); - print LOG_HTML "
\n";
-	next;
-    }
-
     if (/Entering directory `(.*)'$/) {
         push (@dirstack, $1);
     } elsif (/Leaving directory `(.*)'$/) {
@@ -61,10 +53,9 @@ while () {
     }
 
     my $log_class;
-    if ($new_page) {
-	$new_page = 0;
+    if (my ($title) = /^## (.*) ##$/) {
 	$log_class = "step";
-	if (my ($name, $product) = /^Saving(?:\s+([^:]*):)?\s+(.*)$/) {
+	if (my ($name, $product) = $title =~ /^Saving(?:\s+([^:]*):)?\s+(.*)$/) {
 	    my $href = "$product/index.html";
 	    $href = $product if ! -e $href;
 
@@ -88,13 +79,14 @@ while () {
 		}
 		close (DIST);
 	    }
-	} else {
+	} elsif ($title eq 'Success') {
+	    $result = 'success';
+	} elsif ($title !~ /^-+$/) {
 	    my (%s);
-	    $s{TITLE} = $_;
+	    $s{TITLE} = $title;
 	    $s{LN} = $ln;
 	    push (@steps, \%s);
 	}
-	$result = 'success' if $_ eq 'Success';
     } else {
 	if (my ($diagnostic) = /(error|warning):/i) {
 	    my (%d);