mirror of
https://github.com/eclipse-aspectj/aspectj.git
synced 2024-07-30 20:20:12 +02:00
498 lines
19 KiB
XML
498 lines
19 KiB
XML
<!-- -*- Mode: SGML; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- -->
|
|
<!-- ========================================================================= -->
|
|
<!-- Copyright (c) 2002 Palo Alto Research Center, Incorporated (PARC), -->
|
|
<!-- 2004-2005 Contributors. -->
|
|
<!-- All rights reserved. -->
|
|
<!-- This program and the accompanying materials are made available -->
|
|
<!-- under the terms of the Eclipse Public License v1.0 -->
|
|
<!-- which accompanies this distribution and is available at -->
|
|
<!-- http://www.eclipse.org/legal/epl-v10.html -->
|
|
<!-- -->
|
|
<!-- Contributors: -->
|
|
<!-- Xerox/PARC initial implementation -->
|
|
<!-- ========================================================================= -->
|
|
|
|
<project name="docs" default="dist" basedir=".">
|
|
|
|
<property name="project.name" value="build-docs" />
|
|
|
|
<target name="product" depends="local-dist" />
|
|
<target name="clean"
|
|
depends="clean-doc-directories"
|
|
/>
|
|
|
|
<!-- ===================================================================== -->
|
|
<!-- Init -->
|
|
<!-- ===================================================================== -->
|
|
|
|
<import file="${basedir}/../build/build-properties.xml"/>
|
|
|
|
<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="xml-html-stylesheet" value="aspectj-docs.css" />
|
|
<property name="binary.pattern"
|
|
value="**/*.gif,**/*.png,**/*.doc,**/*.pdf,**/*.jpg,**/*.JPG,**/*.css"
|
|
/>
|
|
<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 and library sources"
|
|
>
|
|
|
|
<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>
|
|
<available file="${docs.src.dir}/../org.aspectj.lib/build-aspectjlib.xml"
|
|
property="org.aspectj.lib.available"
|
|
/>
|
|
<fail unless="org.aspectj.lib.available"
|
|
message="unable to find org.aspectj.lib"
|
|
/>
|
|
<mkdir dir="${docs.dist.dir}/doc/aspectjlib" />
|
|
<copy todir="${docs.dist.dir}/doc/aspectjlib" filtering="off">
|
|
<fileset dir="${docs.src.dir}/../org.aspectj.lib"
|
|
includes="build-aspectjlib.xml,src/**"
|
|
excludes="CVS"
|
|
/>
|
|
</copy>
|
|
</target>
|
|
|
|
<target name="api"
|
|
depends="init"
|
|
description="javadoc for AspectJ runtime and weaver"
|
|
>
|
|
<property file="${docs.src.dir}/docs.build.properties" />
|
|
<delete quiet="on">
|
|
<fileset dir="${docs.dist.dir}/doc" includes="*api/*" />
|
|
</delete>
|
|
<aspectj-javadoc module="runtime" />
|
|
<aspectj-javadoc module="aspectj5rt"/>
|
|
<aspectj-javadoc module="weaver" />
|
|
</target>
|
|
|
|
<macrodef name="aspectj-javadoc">
|
|
<attribute name="module" />
|
|
<sequential>
|
|
<mkdir dir="${docs.dist.dir}/doc/@{module}-api" />
|
|
<javadoc sourcepath="${@{module}.sourcepath}"
|
|
destdir="${docs.dist.dir}/doc/@{module}-api"
|
|
windowtitle="AspectJ(tm) @{module} API"
|
|
classpath="${@{module}.classpath}"
|
|
packagenames="${@{module}.packagenames}"
|
|
>
|
|
<link offline="true"
|
|
href="http://java.sun.com/j2se/1.5/docs/api"
|
|
packagelistLoc="${docs.src.dir}/jdk15-packages.txt"
|
|
/>
|
|
</javadoc>
|
|
</sequential>
|
|
</macrodef>
|
|
|
|
<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"
|
|
/>
|
|
<param name="xml-html-stylesheet" value="aspectj-faq.css" />
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="progguide" depends="init">
|
|
<antcall target="build-guide">
|
|
<param name="guide.dir" value="progGuideDB" />
|
|
<param name="guide.name" value="progguide" />
|
|
<param name="xml-html-copy"
|
|
value="dd_arrow.gif,aspects.gif,figureUML.gif,overview.gif,telecom.gif,aspectj-docs.css"/>
|
|
</antcall>
|
|
</target>
|
|
|
|
<target name="adk15guide" depends="init">
|
|
<antcall target="build-guide">
|
|
<param name="guide.dir" value="adk15ProgGuideDB" />
|
|
<param name="guide.name" value="adk15notebook" />
|
|
<param name="xml-html-copy"
|
|
value="dd_arrow.gif,aspectj-docs.css"/>
|
|
</antcall>
|
|
</target>
|
|
|
|
|
|
<target name="devguide" depends="init">
|
|
|
|
<copy todir="${docs.src.dir}/devGuideDB" filtering="off">
|
|
<fileset dir="${devguide.icons.dir}"
|
|
includes="${include.devguide.icons}"
|
|
/>
|
|
</copy>
|
|
|
|
<antcall target="build-guide">
|
|
<param name="xml-html-copy"
|
|
value="dd_arrow.gif,aspectj-docs.css,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">
|
|
<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 TODO pdf rendering completes, result is awful
|
|
<antcall target="xml-pdf">
|
|
<param name="xml-source-dir"
|
|
value="${docs.src.dir}/${guide.dir}"/>
|
|
<param name="xml-source-root" value="${guide.name}.xml"/>
|
|
<param name="pdf-target-file"
|
|
value="${docs.dist.dir}/doc/${guide.name}.pdf"/>
|
|
</antcall>
|
|
-->
|
|
|
|
</target>
|
|
|
|
<target name="test-pdf"
|
|
depends="init"
|
|
description="test pdf build of [prog|dev|adk]guide"
|
|
>
|
|
<!-- NPE in fop task when building programming guide.
|
|
see patch at https://bugs.eclipse.org/bugs/show_bug.cgi?id=81654
|
|
<antcall target="build-pdf">
|
|
<param name="guide.dir" value="progGuideDB" />
|
|
<param name="guide.name" value="progguide" />
|
|
</antcall>
|
|
-->
|
|
<antcall target="build-pdf">
|
|
<param name="guide.dir" value="adk15ProgGuideDB" />
|
|
<param name="guide.name" value="adk15notebook" />
|
|
</antcall>
|
|
<copy todir="${docs.src.dir}/devGuideDB" filtering="off">
|
|
<fileset dir="${devguide.icons.dir}"
|
|
includes="${include.devguide.icons}"
|
|
/>
|
|
</copy>
|
|
|
|
<antcall target="build-pdf">
|
|
<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>
|
|
</target>
|
|
|
|
<target name="build-pdf"
|
|
depends="init"
|
|
description="build prog or dev guide, using guide.dir and guide.name"
|
|
>
|
|
<antcall target="xml-pdf">
|
|
<param name="xml-source-dir"
|
|
value="${docs.src.dir}/${guide.dir}"
|
|
/>
|
|
<param name="xml-source-root" value="${guide.name}.xml" />
|
|
<param name="pdf-target-file"
|
|
value="${docs.dist.dir}/doc/${guide.name}.pdf"
|
|
/>
|
|
</antcall>
|
|
</target>
|
|
|
|
<!-- XML conversion stuff -->
|
|
|
|
<!-- xml-pdf -->
|
|
<target name="xml-pdf">
|
|
<delete file="${pdf-target-file}" />
|
|
<touch file="${pdf-target-file}" />
|
|
<delete file="${xml-source-dir}/index.fo" />
|
|
|
|
<!-- produce index.fo from docbook sources -->
|
|
<java classname="com.icl.saxon.StyleSheet" fork="yes">
|
|
<classpath>
|
|
<pathelement location="${aspectj.modules.lib.dir}/saxon/saxon.jar"
|
|
/>
|
|
</classpath>
|
|
<arg value="-o" />
|
|
<arg value="${xml-source-dir}/index.fo" />
|
|
<arg value="${xml-source-dir}/${xml-source-root}" />
|
|
<arg value="${aspectj.modules.lib.dir}/docbook/docbook-xsl/fo/docbook.xsl"
|
|
/>
|
|
</java>
|
|
|
|
<!-- index.fo to pdf (TODO if formatting fixed, to init-taskdefs) -->
|
|
<taskdef name="fop"
|
|
classname="org.apache.fop.tools.anttasks.Fop"
|
|
>
|
|
<classpath>
|
|
<fileset dir="${aspectj.modules.lib.dir}/docbook/fop">
|
|
<include name="fop.jar" />
|
|
<include name="batik.jar" />
|
|
<include name="avalon.jar" />
|
|
</fileset>
|
|
<fileset dir="${aspectj.modules.lib.dir}/ant">
|
|
<include name="xalan.jar" />
|
|
<include name="xercesImpl.jar" />
|
|
<include name="xml-apis.jar" />
|
|
</fileset>
|
|
</classpath>
|
|
</taskdef>
|
|
<!-- TODO messagelevel="info" -->
|
|
<fop format="application/pdf"
|
|
messagelevel="verbose"
|
|
basedir="${guide.dir}"
|
|
fofile="${guide.dir}/index.fo"
|
|
outfile="${pdf-target-file}"
|
|
>
|
|
</fop>
|
|
<delete quiet="on" file="${guide.dir}/index.fo" />
|
|
</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)
|
|
xml-html-stylesheet # style sheet to use (defaults to ${xml-html-stylesheet})"
|
|
>
|
|
|
|
<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" />
|
|
<arg value="html.stylesheet=${xml-html-stylesheet}" />
|
|
</java>
|
|
</target>
|
|
|
|
</project>
|