<!--
        Build script for Eclipse.org Articles
        $Id: build.xml,v 1.3 2008/09/09 02:24:03 wbeaton Exp $
        author: Chris Aniszczyk <zx@us.ibm.com>
        author: Lawrence Mandel <lmandel@ca.ibm.com>
-->

<project name="eclipse.org article (docbook)" default="build-doc" basedir=".">
	
	<!-- ========== Properties: User Defined Options ========================= -->	
	
	<property name="article.name" value="AuthoringWithEclipse"/>
	<property name="article.stylesheet" value="../article.xsl"/>
	
	<property name="dest.dir" value="."/>
	<property name="dest.name" value="index"/>
	<property name="download.dir" value="${java.io.tmpdir}${file.separator}downloads"/>
	
	<property name="docbook.version" value="1.73.2" />
	<property name="docbook.dir" value="${download.dir}${file.separator}docbook-xsl-${docbook.version}"/>
	<property name="docbookxsl.url" value="http://internap.dl.sourceforge.net/sourceforge/docbook/docbook-xsl-${docbook.version}.zip"/>
	<property name="fop.dir" value="${download.dir}${file.separator}fop-0.20.5"/>
	<property name="fop.url" value="http://archive.apache.org/dist/xmlgraphics/fop/binaries/fop-0.20.5-bin.zip"/>
	<property name="jai.dir" value="ENTER_JAI_DIRECTORY"/>
	
	<property name="build.home" value="build"/>
		
	<!-- ========== Macro Definition =================================================== -->	
	
    <macrodef name="docbook2pdf">
        <attribute name="source"/>
    	<attribute name="target"/>
        <sequential>
        	<taskdef name="fop" classname="org.apache.fop.tools.anttasks.Fop">
        		<classpath>
        			<pathelement location="${fop.dir}${file.separator}build${file.separator}fop.jar" />
        			<pathelement location="${fop.dir}${file.separator}lib${file.separator}avalon-framework-cvs-20020806.jar" />
        			<pathelement location="${fop.dir}${file.separator}lib${file.separator}batik.jar" />
        			<pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_core.jar" />
        			<pathelement location="${jai.dir}${file.separator}lib${file.separator}jai_codec.jar" />
        		</classpath>
        	</taskdef>
        	<fop 
        		format="application/pdf" 
        		fofile="@{source}" 
        		outfile="@{target}"
        		messagelevel="info"/>
        </sequential>
    </macrodef>
	
	<!-- ========== Targets =================================================== -->	
		
	<target name="init">
		<mkdir dir="${download.dir}"/>
		
		<available file="${jai.dir}" property="jai.exists"/>
		<antcall target="notifyJAI"/>
	</target>
	
	<target name="initpdf" depends="init">
			<available file="${jai.dir}" property="jai.exists"/>
			<antcall target="notifyJAI"/>
		</target>
	
	<target name="notifyJAI" unless="jai.exists">
		<echo message="The Java Advanced Imaging (JAI) library is not available."/>
		<echo message="JAI is required if you want to use PNG images in your article."/>
		<echo message="You can download JAI from http://java.sun.com/products/java-media/jai/downloads/download-1_1_2_01.html."/>
		<echo message="Specify the JAI installation directory to the article build by providing the parameter jai.dir to this build script."/>
	</target>
	
	<target name="build-doc" depends="init, get-docbook-xsl">
			<echo>Building Article...</echo>
			<antcall target="docbook2html"/>
			<antcall target="dist"/>
		</target>
	
	<target name="build-doc-pdf" depends="initpdf, get-docbook-xsl, get-fop">
		<echo>Building Article...</echo>
		<antcall target="docbook2html"/>
		<antcall target="docbook2pdf"/>
		<antcall target="dist"/>
	</target>
		
	<target name="check-docbook">
		<available file="${download.dir}${file.separator}docbook.zip" property="hasDocbook"/>
	</target>
	
	<target name="check-fop">
		<available file="${download.dir}${file.separator}fop.zip" property="hasFOP"/>
	</target>
		
	<target name="get-docbook-xsl" description="Downloads docbook xsl" depends="check-docbook" unless="hasDocbook">
		<echo>Downloading DocBook XSL...</echo>
		<get dest="${download.dir}${file.separator}docbook.zip" src="${docbookxsl.url}"/>
		<unzip src="${download.dir}${file.separator}docbook.zip" dest="${download.dir}"/>
	</target>
	
	<target name="get-fop" description="Downloads FOP" depends="check-fop" unless="hasFOP">
		<echo>Downloading FOP...</echo>
		<get dest="${download.dir}${file.separator}fop.zip" src="${fop.url}"/>
		<unzip src="${download.dir}${file.separator}fop.zip" dest="${download.dir}"/>
	</target>
	
	<target name="docbook2html">
		<echo>Converting article to HTML...</echo>
		<delete file="${dest.dir}${file.separator}${dest.name}.html"/>
		<xslt in="${article.name}.xml" extension="xml" out="${dest.dir}${file.separator}${dest.name}.html" style="${article.stylesheet}">
			<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
				<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
			</factory>
			<xmlcatalog>
				<entity 
					publicId="docbook.xsl"
					location="${docbook.dir}${file.separator}html${file.separator}docbook.xsl"/>
			</xmlcatalog>
			<param name="header.rule" expression="1" />
			<param name="admon.graphics.extension" expression=".gif"/>
			<param name="admon.textlabel" expression="0"/>
			<param name="ulink.target" expression="_new"/>
		</xslt>
	</target>
	
	<target name="docbook2pdf">
		<echo>Converting article to PDF...</echo>

		<delete file="${dest.dir}${file.separator}${article.name}.pdf"/>
		<delete file="${dest.dir}${file.separator}${article.name}.fo"/>
		<xslt in="${article.name}.xml" extension="xml" out="${dest.dir}${file.separator}${article.name}.fo" style="${docbook.dir}${file.separator}fo${file.separator}docbook.xsl">
			<factory name="org.apache.xalan.processor.TransformerFactoryImpl">
				<attribute name="http://xml.apache.org/xalan/features/optimize" value="true"/>
			</factory>
			<xmlcatalog>
				<entity 
					publicId="docbook.xsl"
					location="${docbook.dir}${file.separator}fo${file.separator}docbook.xsl"/>
			</xmlcatalog>
			<param name="generate.toc" expression="book toc" />
			<param name="show.comments" expression="0" />
			<param name="header.rule" expression="1" />
			<param name="admon.graphics.extension" expression=".gif"/>
			<param name="admon.textlabel" expression="0"/>
			<param name="admon.graphics" expression="1"/>
		</xslt>
		
		<docbook2pdf 
			source="${dest.dir}${file.separator}${article.name}.fo"
			target="${dest.dir}${file.separator}${article.name}.pdf"/>
		
		<!-- Remove the resulting formatting object. This object isn't necessary in the
		     result of this build. -->
		<delete file="${dest.dir}${file.separator}${article.name}.fo"/>
	</target>
	
	<target name="dist">
		<echo>Building article zip file...</echo>
		<delete file="${dest.dir}${file.separator}${article.name}.zip"/>
		<zip basedir="${dest.dir}" destfile="${dest.dir}${file.separator}${article.name}.zip"
			 excludes="article.xsl, build.xml, ${article.name}.fo, ${article.name}.zip, .project">
		</zip>
		<echo>If you're done with your article, please post the zip file on the related bugzilla entry.</echo>
	</target>

</project>