<!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- --> <!-- ========================================================================= --> <!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC). --> <!-- All rights reserved. --> <!-- This program and the accompanying materials are made available --> <!-- under the terms of the Common Public License v1.0 --> <!-- which accompanies this distribution and is available at --> <!-- http://www.eclipse.org/legal/cpl-v10.html --> <!-- --> <!-- Contributors: --> <!-- Xerox/PARC initial implementation --> <!-- ========================================================================= --> <!DOCTYPE project [ <!ENTITY build-properties SYSTEM "file:../build/build-properties.xml"> ]> <project name="build-docs" default="dist" basedir="."> <property name="project.name" value="build-docs"/> <target name="product" depends="local-dist"/> <target name="clean" depends="clean-directories,clean-doc-directories"/> <!-- ===================================================================== --> <!-- Init --> <!-- ===================================================================== --> &build-properties; <target name="init" depends="init-properties,init-directories"> <property name="docs.src.pattern" value="**/*.xml,**/*.html,**/*.doc,**/*.gif,**/*.java,**/*.lst,**/*.pdf"/> <property name="docs.src.dir" location="${aspectj.modules.docs.dir}"/> <property name="docs.dist.dir" location="${aj.dist.dir}/docs"/> <property name="docs.temp.dir" location="${aj.temp.dir}/doc"/> <property name="web.doc.dir" location="${aj.webDeploy.dir}/documentation/dist"/> <property name="docs.product.name" value="aspectj-docs-${build.version}"/> <property name="docs.product.zip" location="${aj.dist.dir}/${docs.product.name}.zip"/> <!-- must specify (not *.gif) to not delete other gifs during build-in-place --> <!-- to find refs: gp ax imagedata | sed -n 's|.*\=\"\(..*\)\".*|\1|p' --> <property name="devguide.icons.dir" location="${aspectj.modules.dir}/ajde/src/org/aspectj/ajde/resources/actions"/> <property name="include.devguide.icons" value="build.gif,openConfig.gif,browseroptions.gif" /> <!-- callers of xml-html use these by default --> <property name="chunk.xsl.source" location="${aspectj.modules.lib.dir}/docbook/docbook-xsl/html/chunk.xsl"/> <property name="nochunk.xsl.source" location="${aspectj.modules.lib.dir}/docbook/docbook-xsl/html/docbook.xsl"/> <!-- default xml-html nochunking file (0-length dummy created when chunking) --> <property name="xml-target-file" location="${docs.temp.dir}/xml-target-file.dummy"/> <!-- default value for xml-html copying (copy all graphics) --> <property name="xml-html-copy" value="*.gif,*.png" /> <property name="binary.pattern" value="**/*.gif,**/*.png,**/*.doc,**/*.pdf,**/*.jpg,**/*.JPG"/> <uptodate property="local.dist.uptodate" targetfile="${docs.dist.dir}/doc/faq.html"> <!-- use faq as tag file --> <srcfiles dir="${docs.src.dir}" includes="${docs.src.pattern}"/> </uptodate> <uptodate property="dist.uptodate" targetfile="${docs.product.zip}"> <!-- use zip as tag file --> <srcfiles dir="${docs.src.dir}" includes="${docs.src.pattern}"/> <srcfiles dir="${docs.dist.dir}" includes="${docs.src.pattern}"/> </uptodate> </target> <target name="clean-doc-directories" depends="init" description="clean build dirs (including local deploy dir)"> <delete quiet="on"> <fileset dir="${docs.dist.dir}" /> <fileset dir="${docs.jar.dir}" /> <fileset dir="${docs.temp.dir}" /> </delete> </target> <target name="dist" depends="init,local-dist" description="create unused doc zip - see ../build/build.xml for installer" unless="dist.uptodate"> <delete file="${docs.product.zip}"/> <zip zipfile="${docs.product.zip}" basedir="${docs.dist.dir}"/> <echo message="find doc zip in ${docs.product.zip}"/> </target> <target name="web.deploy.faqonly" depends="init,faq" description="deploy docs.dist.dir faq to web.doc.dir"> <copy todir="${web.doc.dir}" filtering="on"> <fileset dir="${docs.dist.dir}/doc" includes="faq.html"/> </copy> <stripnonbodyhtml srcdir="${web.doc.dir}" includes="faq.html" /> <echo message="do link check on index and faq before release"/> </target> <target name="web.deploy.faqindex" depends="init,dist" description="deploy built faq and index to web.doc.dir"> <copy todir="${web.doc.dir}" filtering="on"> <fileset dir="${docs.dist.dir}/doc" includes="faq.html,index.html"/> </copy> <stripnonbodyhtml srcdir="${web.doc.dir}" includes="faq.html,index.html" /> <echo message="do link check on index and faq before release"/> </target> <target name="web.deploy" depends="web.deploy.README-11" /> <target name="web.deploy.README-11" depends="init" description="deploy README-11.html to the web site"> <property name="readme11.dir" location="${web.doc.dir}/documentation/readme11"/> <mkdir dir="${readme11.dir}"/> <delete file="${readme11.dir}/index.html"/> <mkdir dir="${readme11.dir}"/> <copy tofile="${readme11.dir}/index.html" file="${aspectj.products.dir}/tools/dist/README-11.html" filtering="on"/> <stripnonbodyhtml srcdir="${readme11.dir}" includes="index.html" /> </target> <target name="web.deploy.old" depends="init" description="deploy built docs to the web site"> <mkdir dir="${web.doc.dir}"/> <delete dir="${web.doc.dir}"/> <mkdir dir="${web.doc.dir}"/> <copy todir="${web.doc.dir}"> <fileset dir="${docs.dist.dir}/doc"/> </copy> <stripnonbodyhtml srcdir="${web.doc.dir}" includes="**/*.html" /> </target> <!-- ============================================================ --> <!-- build all doc products --> <!-- ============================================================ --> <target name="local-dist" depends="init" unless="local.dist.uptodate" description="avoid local-dist antecedants if uptodate"> <antcall target="do-local-dist"/> </target> <target name="do-local-dist" depends="init,init-filters,api,faq,devguide,progguide, adk15guide" description="finish products by copying dist files"> <copy todir="${docs.dist.dir}" filtering="on"> <fileset dir="${docs.src.dir}/dist" excludes="${binary.pattern}"/> </copy> <copy todir="${docs.dist.dir}" filtering="off"> <fileset dir="${docs.src.dir}/dist" includes="${binary.pattern}"/> </copy> </target> <target name="api" depends="init" description="javadoc for AspectJ lang, lang.reflect and org.aspectj.weaver.tools"> <delete dir="${docs.dist.dir}/doc/api"/> <mkdir dir="${docs.dist.dir}/doc/api"/> <javadoc sourcepath="${aspectj.modules.dir}/runtime/src;${aspectj.modules.dir}/weaver/src" destdir="${docs.dist.dir}/doc/api" windowtitle="AspectJ(tm) runtime API" link="http://java.sun.com/j2se/1.4.2/docs/api" classpath="${aspectj.modules.dir}/asm/bin;${aspectj.modules.dir}/bridge/bin;${aspectj.modules.dir}/util/bin;${aspectj.modules.dir}/lib/bcel/bcel.jar" packagenames="org.aspectj.lang,org.aspectj.lang.reflect,org.aspectj.weaver.tools" /> <!-- note: link ineffective at avoiding see tag warning --> </target> <target name="faq" depends="init"> <antcall target="xml-html"> <param name="xml-source-dir" value="${docs.src.dir}/faq"/> <param name="xml-source-root" value="faq.xml"/> <param name="xsl-source-file" value="${nochunk.xsl.source}"/> <param name="xml-target-dir" value="${docs.dist.dir}"/> <param name="xml-target-file" value="${docs.dist.dir}/doc/faq.html"/> </antcall> </target> <!-- experimental targets collapse guide-making (lose individual targets) --> <target name="progguide" depends="init"> <antcall target="build-guide"> <param name="guide.dir" value="progGuideDB"/> <param name="guide.name" value="progguide"/> </antcall> </target> <target name="adk15guide" depends="init"> <antcall target="build-guide"> <param name="guide.dir" value="adk15ProgGuideDB"/> <param name="guide.name" value="adk15notebook"/> </antcall> </target> <target name="devguide" depends="init"> <!-- GCH --> <echo message="**** docs: just inside devguide target"/> <copy todir="${docs.src.dir}/devGuideDB" filtering="off" > <fileset dir="${devguide.icons.dir}" includes="${include.devguide.icons}" /> </copy> <!-- GCH --> <echo message="**** docs: about to make call to build-guide target"/> <antcall target="build-guide"> <param name="xml-html-copy" value="ajbrowser-building.gif,ajbrowser-options.gif,${include.devguide.icons}" /> <param name="guide.dir" value="devGuideDB"/> <param name="guide.name" value="devguide"/> </antcall> <delete quiet="on"> <!-- clean icons for build-in-place --> <fileset dir="${docs.src.dir}/devGuideDB" includes="${include.devguide.icons}" /> </delete> </target> <target name="build-guide" depends="init" description="build prog or dev guide, using guide.dir and guide.name"> <!-- chunked --> <antcall target="xml-html"> <param name="xml-source-dir" value="${docs.src.dir}/${guide.dir}"/> <param name="xml-source-root" value="${guide.name}.xml"/> <param name="xsl-source-file" value="${chunk.xsl.source}"/> <param name="xml-target-dir" value="${docs.dist.dir}/doc/${guide.name}"/> </antcall> <!-- single --> <antcall target="xml-html"> <param name="xml-source-dir" value="${docs.src.dir}/${guide.dir}"/> <param name="xml-source-root" value="${guide.name}.xml"/> <param name="xsl-source-file" value="${nochunk.xsl.source}"/> <param name="xml-target-dir" value="${docs.dist.dir}/doc/${guide.name}"/> <param name="xml-target-file" value="${docs.dist.dir}/doc/${guide.name}/printable.html"/> </antcall> <!-- pdf - enable when it works <antcall target="xml-pdf"> <param name="xml-source-dir" value="${docs.src.dir}/doc/${guide.dir}"/> <param name="xml-source-root" value="${guide.name}.xml"/> <param name="xml-target-file" value="${docs.dist.dir}/doc/${guide.name}.pdf"/> </antcall> --> </target> <!-- end of experimental targets --> <!-- XML conversion stuff --> <!-- todo xml-pdf broken; when fixed, see xml-html for example --> <target name="xml-pdf"> <delete file="${xml-target-file}"/> <touch file="${xml-target-file}"/> <java classname="com.icl.saxon.StyleSheet" fork="yes"> <classpath> <pathelement location="${saxon.dir}/saxon.jar"/> </classpath> <arg value="-o"/> <arg value="${xml-source-dir}/index.fo"/> <arg value="${xml-source-dir}/${xml-source-root}"/> <arg value="${docbook.dir}/docbook-xsl/fo/docbook.xsl"/> </java> </target> <target name="xml-html" description="antcall(xml-source-dir, xml-source-root, xml-target-dir, xml-target-file) convert xml to html using docbook. parameters: xml-source-dir # base directory of source xml-source-root # base file of source (relative to xml-source-dir) xsl-source-file # xsl transform to apply (use chunk.xsl.source by default) xml-target-dir # target directory for output (used as xsl param base.dir) xml-target-file # full path to output file in xml-source-dir, ignored when chunking xml-html-copy # copy files to target (defaults to *.gif,*.png"> <mkdir dir="${xml-target-dir}"/> <copy todir="${xml-target-dir}"> <fileset dir="${xml-source-dir}" includes="${xml-html-copy}"/> </copy> <java classname="com.icl.saxon.StyleSheet" classpath="${aspectj.modules.lib.dir}/saxon/saxon.jar" fork="yes" failonerror="yes"> <!-- todo: establish failure policy --> <arg value="-o"/> <arg value="${xml-target-file}"/> <arg value="${xml-source-dir}/${xml-source-root}"/> <arg value="${xsl-source-file}"/> <arg value="base.dir=${xml-target-dir}/"/> <arg value="use.id.as.filename=1"/> </java> </target> <target name="info" description="misc info for writing and building docbook"> <echo> ---- misc info for writing and building docbook - link tag linkend attribute takes an id - xsl converts as needed during output - do NOT use ulink; this will be converted to "" (but see param citerefentry-link: might enable this) - to use sensible names for the files produced, - use an xsl wrapper to add/modify features - set flag to use the id of the top-level element in the output file as the filename. xsl:param name="use.id.as.filename" select="1" - fyi, other related parameters: html-ext, root-filename - In this example, the top-level element in the output file is the refentry, so set ids which become the basename of the file: refentry id="aspectj-mode" # in aspectj-mode.xml, produces aspecj-mode.html refentry id="ajdee" # in ajdee.xml, produces ajdee.html -- fyi - related parameters: html-ext, root-filename - these tags did not work for me: dbhtml filename="foo.htm" dbhtml prefix="foo-" - resources - the dtd reference for docbook http://www.oreilly.com/catalog/docbook/chapter/book/docbook.html - the stylesheet reference for docbook xsl http://docbook.sourceforge.net/projects/dsssl/doc/html.html - todo - fyi, generate.reference.titlepage appears not to be respected. tried to add if statement to html/refentry.xsl, but file still gen'd </echo> </target> </project>