<?xml version="1.0"?>
<!--
  Copyright 2002-2004 The Apache Software Foundation

  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project default="jar" basedir="." name="Forrest build file">

  <import file="src/forrestbar/build.xml"/>
  
  <description>
    Build system for Apache Xml Forrest.
    Run the build script: build.bat or build.sh
  </description>

   <target name="init">
    <tstamp>
      <format property="YEAR" pattern="yyyy" locale="en"/>
    </tstamp>

    <xmlproperty file="module.xml"     prefix="xgump"    keeproot="true"  collapseAttributes="true" />
    <xmlproperty file="status.xml"     prefix="xstatus"  keeproot="false" collapseAttributes="true" />   
    <xmlproperty file="properties.xml"                   keeproot="false" collapseAttributes="true" />

    <property name="name"                  value="apache-forrest"/>
    <property name="packages"              value="${xgump.module.project.packages}"/>
    <property name="version"
      value="${xgump.module.project.version.major}.${xgump.module.project.version.minor}${xgump.module.project.version.tag}"/>

    <property name="java.dir"              location="src/java"/>
    <property name="build.dir"             location="build"/>
    <property name="build.docs"            location="${build.dir}/docs"/>
    <property name="build.classes"         location="${build.dir}/classes"/>

    <property name="dist.dir"              location="${build.dir}/dist" />
    <property name="dist-shbat.dir"        location="${dist.dir}/shbat" />

    <property name="tools.dir"             location="tools"/>
    <property name="tools.jar"             location="${java.home}/../lib/tools.jar"/>
    <available file="${tools.jar}"         property="tools.jar.present"/>
    
    <property name="src-fresh-site"         location="src/core/fresh-site"/>
    
    <property name="forrestbot.dir"         location="scratchpad/forrestbot2"/>

    <buildnumber file="etc/build.number"/>
    <echo>
      --------------------------------------------------------------

      Using ${ant.version}
      Build file ${ant.file}
      Use 'build.[sh|bat] -projecthelp' to see other options.
      Build system home ${ant.home}
      Build number ${build.number}
      Project Name ${ant.project.name}
      Java Version ${ant.java.version}      
      Timestamp ${DSTAMP}${TSTAMP}
      This is: ${name} ${version}

      --------------------------------------------------------------
    </echo>
    
    <mkdir dir="${build.dir}"/>
        
    <path id="classpath">
      <fileset dir="lib" includes="**/*.jar"/>
      <fileset dir="${tools.dir}/jetty" includes="servlet*.jar"/>
      <pathelement location="${tools.jar}"/>
    </path>

  </target>

  <target name="clean" depends="init" description="Delete all generated files">
    <delete dir="${build.dir}"/>
    <delete dir="${forrestbot.dir}/logs"/>
    <delete dir="${forrestbot.dir}/work"/>
    <delete dir="${forrestbot.dir}/build"/>
    <delete dir="${forrestbot.dir}/webapp/target"/>
    <delete dir="${forrestbot.dir}/webapp/maven.log"/>
    <delete dir="src/core/context/WEB-INF/logs"/>
  </target>

  <target name="dist-clean" depends="init, clean" description="Delete all non-forrest files">
    <delete dir="${forrestbot.dir}/*.settings"/>
    <delete file="**/*.bak"/>
    <delete file="**/*~"/>
  </target>

  <!-- =================================================================== -->
  <!-- Make release distributions                                          -->
  <!-- =================================================================== -->


  <target name="release-dist" depends="init, dist-clean, dist-shbat" 
    description="Makes release distributions">
    <property name="release-name-bin" value="${name}-${version}"/>
    <zip
      file="${dist.dir}/${release-name-bin}.zip" >
      <zipfileset dir="${dist-shbat.dir}" prefix="${release-name-bin}"/>
      <zipfileset dir="etc"  prefix="${release-name-bin}/etc"/>
      <zipfileset dir="etc"  prefix="${release-name-bin}" includes="RELEASE-NOTES-${version}.txt"/>
    </zip>
    <tar longfile="gnu" compression="gzip"
      destfile="${dist.dir}/${release-name-bin}.tar.gz" >

      <tarfileset prefix="${release-name-bin}" dir="${dist-shbat.dir}"
        username="forrest" group="forrest">
        <exclude name="**/*.sh"/>
        <exclude name="**/ant"/>
        <exclude name="**/forrest"/>
      </tarfileset>
      <tarfileset prefix="${release-name-bin}" dir="${dist-shbat.dir}"
        mode="755" username="forrest" group="forrest">
        <include name="**/*.sh"/>
        <include name="**/ant"/>
        <include name="**/forrest"/>
      </tarfileset>
      <tarfileset prefix="${release-name-bin}/etc" dir="etc"/>
      <tarfileset prefix="${release-name-bin}" dir="etc" includes="RELEASE-NOTES-${version}.txt"/>
    </tar>
  </target>


  <!-- =================================================================== -->
  <!-- Make all known distributions                                        -->
  <!-- =================================================================== -->
  <target name="dist" 
    description="Makes all the known incarnations of forrest"
    depends="clean,dist-shbat" />

  <!-- =================================================================== -->
  <!-- Validate the important core configuration files                     -->
  <!-- =================================================================== -->
  <target name="validate-config" depends="init"
    description="Validate the important core configuration files">
    <!-- FIXME allow switch if="validate.config"  -->
    <taskdef name="jing" classname="com.thaiopensource.relaxng.util.JingTask">
      <classpath>
        <fileset dir="./lib/core" includes="*.jar" />
      </classpath>
    </taskdef>
    <!-- skinconf.xml -->
    <echo message="validating **/skinconf.xml ..."/>
    <xmlvalidate failonerror="true" lenient="no" warn="yes">
      <attribute name="http://apache.org/xml/features/validation/dynamic"  value="true"/>
      <xmlcatalog >
        <dtd publicId="-//APACHE//DTD Skin Configuration V0.6//EN"
        location="src/core/context/resources/schema/dtd/skinconfig-v06.dtd"/>
      </xmlcatalog>
      <fileset dir="./src/core"
        includes="**/skinconf.xml" />
    </xmlvalidate>
    <!-- All stylesheets **/*.xsl -->
    <echo message="validating stylesheets **/*.xsl ..."/>
    <jing rngfile="./src/core/context/resources/schema/relaxng/xslt.rng">
      <fileset dir="./src/core" includes="**/*.xsl"/>
      <fileset dir="${tools.dir}" includes="**/*.xsl"/>
    </jing>
    <!-- sitemap.xmap -->
    <echo message="validating **/sitemap.xmap ..."/>
    <jing rngfile="./src/core/context/resources/schema/relaxng/sitemap-v06.rng">
      <fileset dir="./src/core/context/" includes="*.xmap"/>
    </jing>
    <!-- book.xml -->
    <!-- FIXME: Need Norm Walsh catalog entity resolver or Jeff's DoctypeChanger.
    <echo message="validating **/book.xml ..."/>
    <jing rngfile="./src/resources/schema/relaxng/book-v01.rng">
      <fileset dir="./src" includes="**/book.xml"/>
    </jing>
    -->
  </target>
 
  <target name="dist-shbat" 
    depends="init, jar, validate-config" >

    <!-- fresh drop-off location for the distribution -->
    <delete dir="${dist-shbat.dir}" />
    <mkdir dir="${dist-shbat.dir}" />
    
    <!-- copy all Forrest -->
    <copy todir="${dist-shbat.dir}">
      <fileset dir="." >
        <exclude name="build/**"/>
      </fileset>
    </copy>
     <copy todir="${dist-shbat.dir}">
       <fileset dir="." >
        <include name="build/xml-forrest.jar"/>
      </fileset>
    </copy>
        
    <!-- Fix bin/ permissions -->
    <fixcrlf eol="crlf" srcdir="${dist-shbat.dir}/src/core/bin" includes="*.bat"/>
    <fixcrlf eol="lf" srcdir="${dist-shbat.dir}/src/core/bin" excludes="*.bat"/>
    <chmod dir="${dist-shbat.dir}/src/core/bin" perm="ugo+rx" excludes="*.bat"/> 

    <!-- Fix ant/bin/ permissions -->
    <fixcrlf eol="crlf" srcdir="${dist-shbat.dir}/tools/ant/bin" includes="*.bat"/>
    <fixcrlf eol="lf" srcdir="${dist-shbat.dir}/tools/ant/bin" excludes="*.bat"/>
    <chmod dir="${dist-shbat.dir}/tools/ant/bin" perm="ugo+rx" excludes="*.bat"/> 

    <echo>
  *-----------------------------------------------------------------
  | installation notice 
  *-----------------------------------------------------------------
  | You have succesfully built the shell-bat distribution of Forrest.
  | Please find it at: ${dist-shbat.dir}
  | Please copy the contents to the install directory of your choice
  | Please have the environment variable FORREST_HOME point to
  |  ${dist-shbat.dir}/src/core
  | It is recommended to add
  |    unix: $FORREST_HOME/bin: to your $PATH
  |    win: %FORREST_HOME%\bin; to your %PATH%
  | Calling
  |    unix: $FORREST_HOME/bin/forrest -projecthelp
  |    win: %FORREST_HOME%\bin\forrest -projecthelp
  | will list options for the 'forrest' command
  | More help at http://xml.apache.org/forrest/ and forrest-dev@xml.apache.org
  *-----------------------------------------------------------------
    </echo>
  </target>

  <!-- =================================================================== -->
  <!-- Generate project-site                                               -->
  <!-- =================================================================== -->
  <target name="docs" depends="site"/>
  <target name="site" depends="dist-shbat"
    description="Generates static HTML documentation">
    <property name="forrest.home" value="${dist-shbat.dir}" />
    <ant antfile="${forrest.home}/forrest.antproxy.xml" target="site"/>
  </target>

  <!-- ================================== -->
  <!--        Test targets                -->
  <!-- ================================== -->
  <target name="test" 
          depends="testseed" 
          description="Test that the features are ok before committing."/>

  <target  name="testseed" depends="init" description="Test that the features are ok before committing.">
    <property name="forrest.home" value="${dist-shbat.dir}" />  
    <property name="test.dir" value="${build.dir}/test"/>
    <delete dir="${test.dir}"/>
    <mkdir dir="${test.dir}"/>
    <ant antfile="${forrest.home}/forrest.build.xml" target="seed">
      <property name="forrest.home" value="${dist-shbat.dir}" />  
      <property name="project.home" value="${test.dir}"/>
    </ant>
    
    <ant antfile="${test.dir}/forrest-targets.xml" target="site"/>
    
    <!--    
    <ant antfile="${forrest.home}/forrest.build.xml" target="site">
      <property name="forrest.home" value="${dist-shbat.dir}" />  
      <property name="project.home" value="${test.dir}"/>
    </ant>-->
  </target>
  
  <!-- ================================== -->
  <!--        Target used by Gump         -->
  <!-- ================================== -->
  <target  name="gump" description="Target used by Gump">
    <!--<antcall target="test"/>-->
    <antcall target="site"/>
    <antcall target="webapp"/>
  </target>


  <!-- =================================================================== -->
  <!-- Compile Cocoon java classes                                         -->
  <!-- =================================================================== -->
  <target name="compile" depends="init">
    <mkdir dir="${build.classes}"/>
    <!-- this is put so that CVS ignores the contents even if the build dir is renamed -->
	<copy file="src/core/var/full.cvsignore" tofile="${build.dir}/.cvsignore"/>
    <javac srcdir=   "${java.dir}"
      destdir=       "${build.classes}"
      debug=         "${build.compiler.debug}"
      optimize=      "${build.compiler.optimize}"
      deprecation=   "${build.compiler.deprecation}"
      nowarn=        "${build.compiler.nowarn}"
      classpathref=  "classpath">
    </javac>
  </target>

  <!-- =================================================================== -->
  <!-- Jar Cocoon classes                                                  -->
  <!-- =================================================================== -->
  <target name="jar" depends="init, compile">
    <jar destfile="${build.dir}/xml-forrest.jar"
      basedir="${build.classes}"/>
  </target>

  <!-- =================================================================== -->
  <!-- Generate DTDs with entities expanded                                -->
  <!-- =================================================================== -->
  <target name='expand-dtd' depends="init" description="Generates '-full' DTDs,
	  with all entity refs expanded, for use with catalog-ignorant editors like
	  IDEA">

	<taskdef name="dtd2xml" classpathref="classpath" classname="org.cyberneko.dtd.anttasks.DTD2XML"/>
	<property name="dtdx.dir" location="build/tmp/dtdx"/>
	<mkdir dir="${dtdx.dir}"/>
	<!-- Generate an intermediate XML representation of each DTD -->
	<dtd2xml classpathref="classpath" outputDir="${dtdx.dir}" preserveDirs="yes" extension=".dtdx">
		<fileset dir="./src/core/context/resources/schema/dtd">
			<include name="changes-v12.dtd"/>
			<include name="document-v11.dtd"/>
			<include name="document-v12.dtd"/>
			<include name="faq-v12.dtd"/>
			<include name="howto-v12.dtd"/>
			<include name="todo-v12.dtd"/>
			<include name="v20a/document-v20.dtd"/>
			<include name="v20a/faq-v20.dtd"/>
		</fileset>
	</dtd2xml>

	<!-- Now transform the intermediate format back to the regular DTD format -->
	<!-- Note that we could also transform to XSD or RNG -->
	<xslt basedir="${dtdx.dir}"
		destdir="${dist-shbat.dir}/context/resources/schema/dtd"
		extension="-full.dtd"
    style="tools/dtdconverters/dtdx2dtd.xsl">
    <include name="*.dtdx"/>
    <include name="v20a/*.dtdx"/>
  </xslt>

  </target>


  <!-- =================================================================== -->
  <!-- Use Apache Ant to generate a patch file                             -->
  <!-- =================================================================== -->
    <target name="patch">
      <ant antfile="tools/targets/patch.xml" target="patchpackage"/>
    </target>


</project>
