<project name="XalanC" default="docs" basedir=".">

  <property name="name" value="xalan"/>
  <property name="Name" value="Xalan-C++"/>
  <property name="year" value="2003"/>
  
  <property name="version.VERSION" value="1"/>
  <property name="version.RELEASE" value="6"/>
  <property name="version.MINOR"   value="0"/>

  <property name="xdocs.dir" value="./xdocs"/>
  <property name="xdocs.book" value="${xdocs.dir}/sources/xalanLocal.xml"/>
  <property name="xdocs.site" value="${xdocs.dir}/sources/xalan.xml"/>  
  <property name="xdocs.style" value="${xdocs.dir}/style"/>
  <property name="xdocs.apidocs" value="${xdocs.dir}/html/apiDocs"/>  

  <property name="doc.generator" value="org.apache.stylebook.StyleBook"/>
  <property name="doc.generator.styletargz" value="${xdocs.dir}/xml-site-style.tar.gz"/>
  <property name="doc.generator.styletar" value="${xdocs.dir}/xml-site-style.tar"/>
  
  <property name="build.dir" value="./build"/>

  <property name="build.docs" value="${build.dir}/docs"/>
  <property name="build.apidocs" value="${build.docs}/apidocs"/>  
  <property name="site.dir" value="./xml-site"/>
  
  <property name="package.name"         value="Xalan-C"/>
  <property name="docs.package.name"    value="${build.dir}/${package.name}_${version.VERSION}_${version.RELEASE}-docs"/>
  <property name="webdocs.package.name" value="${build.dir}/${package.name}_${version.VERSION}_${version.RELEASE}-webdocs"/>
  <property name="src.package.name"     value="${build.dir}/${package.name}_${version.VERSION}_${version.RELEASE}-src"/>  

  <target name="prepare">
    <gunzip src="${doc.generator.styletargz}"/>
    <untar src="${doc.generator.styletar}" dest="${xdocs.dir}"/>
	<delete file="${doc.generator.styletar}"/>
    <mkdir dir="${build.apidocs}"/>
    <mkdir dir="${site.dir}/apidocs"/>
    <!--echo message="Transform commits.xml and put the result in ${xdocs.dir}/DONE"/>
    <java fork="yes" classname="org.apache.xalan.xslt.Process" classpath="${java.class.path}">
      <arg line="-in commits.xml -xsl ${xdocs.style}/stylesheets/done-c.xsl -out xdocs/sources/xalan/DONE"/>
    </java-->        
    
  </target>

  <target name="docs" depends="prepare">
    <java fork="yes" classname="${doc.generator}" classpath="${java.class.path}">
      <arg line="targetDirectory=${build.docs} ${xdocs.book} ${xdocs.style}"/>    
    </java>  
  </target>

  <target name="apidocs" depends="prepare">
    <copy todir="${build.apidocs}">
      <fileset dir="${xdocs.apidocs}"/>
    </copy>
    <exec executable="doxygen.exe" dir="${xdocs.dir}">
      <arg value="DoxyfileXalan"/>
    </exec>  
  </target>
    
  <target name="site" depends="prepare">
    <java fork="yes" classname="${doc.generator}" classpath="${java.class.path}">
      <arg line="targetDirectory=${site.dir} ${xdocs.site} ${xdocs.style}"/>    
    </java>
    <copy todir="${site.dir}/apidocs">
      <fileset dir="${build.apidocs}"/>
    </copy>      
      
  </target>
  
  <target name="clean">
    <delete dir="${build.dir}"/>
    <delete dir="${site.dir}"/>
  </target>
  
  <!-- =================================================================== -->
  <!-- Use FOP to create preliminary print (pdf) doc                       -->
  <!-- Note: fop.jar and xml.jar (from xml-fop) must be on classpath       -->

  <!-- This is VERY preliminary, not yet for inclusion in distribution     -->
  <!-- =================================================================== -->

  <!--Collate the xml sources into a single xml source with a litle extra structure -->
  <target name="print.docs" depends="prepare">
    <echo message="fop.jar and xml.jar must be on the classpath"/>
    <java fork="yes" classname="org.apache.xalan.xslt.Process"
      classpath="${java.class.path}:${build.dir}/xalan.jar">
      <arg line="-xsl ${xdocs.dir}/sources/xalan-c-collate.xsl 
                 -out ${xdocs.dir}/sources/xalan/xalan-c-collate.xml"/>
    </java>
    
    <!-- Transform collation into Formatting Objects 
         (with a little work on links along the way) -->    
    <java fork="yes" classname="org.apache.xalan.xslt.Process"
      classpath="${java.class.path}:${build.dir}/xalan.jar">
      <arg line="-in  ${xdocs.dir}/sources/xalan/xalan-c-collate.xml
                 -param resourceFile '../../sources/xalan/resources.xml'
                 -param project ${Name}
                 -xsl ${xdocs.style}/stylesheets/xml2fo.xsl 
                 -out ${build.docs}/xalan-c-collate.fo"/>
    </java>
    
    <!-- Use FOP to generate a pdf file -->
    <java fork="yes" classname="org.apache.fop.apps.CommandLine"
      classpath="${java.class.path}:${build.dir}/xalan.jar:${bin.dir}/fop.jar:${bin.dir}/w3c.jar">
      <arg line="${build.docs}/xalan-c-collate.fo build/docs/xalan-c.pdf"/>
    </java>
  </target>

  <!-- package documentation (user guide and apidocs) for distribution -->
  <target name="pack.docs">
    <tar tarfile="${docs.package.name}.tar" basedir="${build.docs}" includes="**"/>
    <gzip src="${docs.package.name}.tar" zipfile="${docs.package.name}.tar.gz"/>
    <delete file="${docs.package.name}.tar"/>
    
    <zip zipfile="${docs.package.name}.zip" basedir="${build.docs}" includes="**"/>
  </target>

  <!-- package documentation (user guide and apidocs) for transfer to website -->
  <target name="pack.webdocs">
    <tar tarfile="${webdocs.package.name}.tar" basedir="${site.dir}" includes="**"/>
    <gzip src="${webdocs.package.name}.tar" zipfile="${webdocs.package.name}.tar.gz"/>
    <delete file="${webdocs.package.name}.tar"/>
    
    <zip zipfile="${webdocs.package.name}.zip" basedir="${site.dir}" includes="**"/>
  </target>

  <!-- package source code for distribution -->
  <target name="pack.src">
    <tar tarfile="${src.package.name}.tar" basedir="../.." includes="xml-xalan/**" excludes="xml-xalan/c/build/** xml-xalan/c/xml-site/**" defaultexcludes="no"/>
    <gzip src="${src.package.name}.tar" zipfile="${src.package.name}.tar.gz"/>
    <delete file="${src.package.name}.tar"/>
    
    <!-- this rule is not picking up the CVS directories -- anybody know how to fix? -->
    <zip zipfile="${src.package.name}.zip" basedir="../.." includes="xml-xalan/**" excludes="xml-xalan/c/build/** xml-xalan/c/xml-site/**" defaultexcludes="no"/>
  </target>
  
</project>