From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 5964 invoked by alias); 26 Jan 2015 17:04:43 -0000 Mailing-List: contact jit-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Post: List-Help: List-Subscribe: Sender: jit-owner@gcc.gnu.org Received: (qmail 31394 invoked by uid 89); 26 Jan 2015 17:03:42 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=0.0 required=5.0 tests=TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 X-Spam-Status: No, score=0.0 required=5.0 tests=TIME_LIMIT_EXCEEDED autolearn=unavailable version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-Spam-User: qpsmtpd, 2 recipients X-HELO: mx1.redhat.com Message-ID: <1422290574.1463.38.camel@surprise> Subject: Re: [PATCH] update_web_docs_svn: support the JIT docs (PR jit/64257) From: David Malcolm To: Gerald Pfeifer Cc: jit@gcc.gnu.org, gcc-patches@gcc.gnu.org Date: Thu, 01 Jan 2015 00:00:00 -0000 In-Reply-To: References: <1422053051-11954-1-git-send-email-dmalcolm@redhat.com> Content-Type: multipart/mixed; boundary="=-nZsT3MnAXv2R9saeiHt0" Mime-Version: 1.0 X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-SW-Source: 2015-q1/txt/msg00040.txt.bz2 --=-nZsT3MnAXv2R9saeiHt0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 3055 On Mon, 2015-01-26 at 12:43 +0100, Gerald Pfeifer wrote: > On Friday 2015-01-23 17:44, David Malcolm wrote: > > The following patch builds and installs the JIT documentation for > > the website (just HTML for now). > > > > It's tricky to test (I don't have a copy of /www/gcc/bin/preprocess), > > but I was able to use this to generate sane-looking documentation, > > both for the .texi files, and for the JIT documentation. > You can easily get the preprocess script by checking out wwwdocs, > cf. https://gcc.gnu.org/about.html. Thanks. > That still will require MetaHTML which, sadly, became an abandoned > FSF project, and will require a hack or two to build, so let's just > go with your patch. > > A few notes, though: > > > maintainer-scripts/ChangeLog: > > PR jit/64257 > > * update_web_docs_svn: Don't delete gcc/jit/docs, > > since the jit docs are not .tex files (Makefile, .rst and > > .png). Special-case the building of the JIT docs (using > > sphinx-build). Special-case copying them up (since they > > contain .css, .js and .png files in addition to .html, and > > have nested subdirectories). > > The "since" should be part of the code, not the ChangeLog. Fair point; I've moved both of these to comments in the file. > > diff --git a/maintainer-scripts/update_web_docs_svn b/maintainer-scripts/update_web_docs_svn > > index c661220..c7eb890 100755 > > --- a/maintainer-scripts/update_web_docs_svn > > +++ b/maintainer-scripts/update_web_docs_svn > > +# The JIT is a special-case, using sphinx rather than texinfo. > > special case Fixed. > > +# The jit Makefile uses "sphinx-build", which is packaged in > > +# Fedora and EPEL 6 within "python-sphinx". > > JIT (above) vs jit (here)? I now use lowercase "jit" throughout. > How about saying "...packaged in "python-sphinx" in Fedora and > EPEL 6 and in "python-Sphinx" in openSUSE"? Added. > > +# Again, the jit is a special case, with nested subdirectories > > +# below "jit", and with some non-HTML files (.png images from us, > > +# plus .js and .css supplied by sphinx). > > +for file in $(find jit \ > > + -name "*.html" -o -name "*.css" \ > > + -o -name "*.js" -o -name "*.png"); do > > This looks like a Bash-ism. Can you use backticks of something > like > > find ... | while read file; ... > > ? Done. (Your proposal is superior since it avoids potentially long command lines; but out of interest, why specifically avoid bash here?) > > + cp $file $DOCSDIR/$file > > Just "cp $file $DOCSDIR/" ? This one may be a better of style, > but is easier to tweak in case we need to quote later on, for > example. The jit documentation has a nested directory structure (e.g. there are 7 instances of an "index.html" within them), "$file" actually will contain a path to a file, so we do need to have $file on the right-hand side of the cp command. I've added a comment to clarify that. I'm attaching a revised patch which I hope addresses these issues; tested (crudely) as before. How does this look? Thanks Dave --=-nZsT3MnAXv2R9saeiHt0 Content-Disposition: attachment; filename="update_web_docs_svn-support-the-JIT-documention-v2.patch" Content-Type: text/x-patch; name="update_web_docs_svn-support-the-JIT-documention-v2.patch"; charset="UTF-8" Content-Transfer-Encoding: 7bit Content-length: 2742 >From 7f7e15881981228e51b347f23df6e3106ddd68ea Mon Sep 17 00:00:00 2001 From: David Malcolm Date: Fri, 23 Jan 2015 17:26:57 -0500 Subject: [PATCH] update_web_docs_svn: support the JIT documentation maintainer-scripts/ChangeLog: * update_web_docs_svn: Don't delete gcc/jit/docs or gcc/jit/jit-common.h, gcc/jit/notes.txt. Special case the building of the jit docs (using sphinx-build). Special case copying them up. --- maintainer-scripts/update_web_docs_svn | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/maintainer-scripts/update_web_docs_svn b/maintainer-scripts/update_web_docs_svn index c661220..ac3bae6 100755 --- a/maintainer-scripts/update_web_docs_svn +++ b/maintainer-scripts/update_web_docs_svn @@ -111,11 +111,18 @@ fi # generator programs with the installed library, not the new one and # (b) to avoid packaging all the sources instead of only documentation # sources. +# Note that we have to preserve gcc/jit/docs since the jit docs are +# not .texi files (Makefile, .rst and .png), and the jit docs use +# include directives to pull in content from jit/jit-common.h and +# jit/notes.txt, so we have to preserve those also. find gcc -type f \( -name '*.texi' \ -o -path gcc/gcc/doc/install.texi2html \ -o -path gcc/gcc/doc/include/texinfo.tex \ -o -path gcc/gcc/BASE-VER \ -o -path gcc/gcc/DEV-PHASE \ + -o -path "gcc/gcc/jit/docs/*" \ + -o -path "gcc/gcc/jit/jit-common.h" \ + -o -path "gcc/gcc/jit/notes.txt" \ -o -print0 \) | xargs -0 rm -f # Build a tarball of the sources. @@ -158,6 +165,16 @@ for file in $MANUALS; do fi done +# The jit is a special-case, using sphinx rather than texinfo. +# The jit Makefile uses "sphinx-build". This is packaged in +# Fedora and EPEL 6 within "python-sphinx", and in openSUSE +# within "python-Sphinx". +pushd gcc/gcc/jit/docs +make html +popd +cp -a gcc/gcc/jit/docs/_build/html jit +mkdir -p $DOCSDIR/jit + # Work around makeinfo generated file names and references with # "_002d" instead of "-". find . -name '*.html' | while read f; do @@ -204,6 +221,19 @@ for file in */*.html *.ps *.pdf *.tar; do fi done +# Again, the jit is a special case, with nested subdirectories +# below "jit", and with some non-HTML files (.png images from us, +# plus .css and .js supplied by sphinx). +find jit \ + -name "*.html" -o -name "*.png" \ + -o -name "*.css" -o -name "*.js" | + while read file ; do + # Note that $file here will contain path fragments beginning + # with "jit/", e.g. "jit/cp/topics/functions.html" + mkdir -p $(dirname $DOCSDIR/$file) + cp $file $DOCSDIR/$file + done + cd $DOCSDIR # Finally, generate the installation documentation -- 1.8.5.3 --=-nZsT3MnAXv2R9saeiHt0--