<?xml version="1.0"?>

<!--
    Licensed to the Apache Software Foundation (ASF) under one or more
    contributor license agreements.  See the NOTICE file distributed with
    this work for additional information regarding copyright ownership.
    The ASF licenses this file to You 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 name="snowball" default="default">

  <description>
    Snowball Analyzers
  </description>

  <import file="../contrib-build.xml"/>

  <property name="snowball.cvsroot" value=":pserver:cvsuser@cvs.tartarus.org:/home/cvs"/>
  <property name="snowball.cvs.password" value="anonymous"/>
  <property name="snowball.root" value="snowball/website"/>
  <property name="bin.dir" location="bin"/>

  <target name="jar" depends="compile" description="Create JAR">
    <jarify>
      <metainf-includes>
        <metainf dir=".">
          <include name="SNOWBALL-LICENSE.txt"/>
        </metainf>
      </metainf-includes>
    </jarify>
  </target>

  <target name="jar-src" depends="init"
    description="Packages the sources as JAR file">
  	<jarify basedir="${src.dir}" destfile="${build.dir}/${final.name}-src.jar">
  	  <metainf-includes>
        <metainf dir=".">
          <include name="SNOWBALL-LICENSE.txt"/>
        </metainf>
      </metainf-includes>
  	</jarify>
  </target>

	
  <!-- ====================================================== -->
  <!-- Download Snowball code                                 -->
  <!-- ====================================================== -->
  <target name="download" depends="init">
    <cvs cvsRoot="${snowball.cvsroot}"
      package="${snowball.root}"
      passfile="snowball.cvspass"/>
  </target>

  <target name="create-passfile">
    <cvspass cvsroot="${snowball.cvsroot}"
      password="${snowball.cvs.password}"
      passfile="snowball.cvspass"
      />
  </target>

  <!-- ====================================================== -->
  <!-- Compile Snowball C code                                -->
  <!-- ====================================================== -->
  <target name="compile-compiler" depends="download">
    <apply failonerror="true" executable="gcc" parallel="true">
      <arg value="-O"/>
      <arg value="-o"/>
      <arg value="${bin.dir}/snowball"/>
      <fileset dir="${snowball.root}/p" includes="*.c"/>
    </apply>
  </target>

  <!-- ====================================================== -->
  <!-- Generate Java code                                     -->
  <!-- ====================================================== -->
  <target name="generate" depends="compile-compiler">
    <apply failonerror="true" executable="${bin.dir}/snowball.sh">
      <srcfile/>
      <arg value="${src.dir}/net/sf/snowball/ext"/>
      <fileset dir="${snowball.root}" includes="**/stem.sbl"/>
    </apply>

    <copy todir="${src.dir}/net">
      <fileset dir="${snowball.root}/net">
        <include name="**/*.java"/>
      </fileset>
    </copy>

  </target>


  <target name="docs">
    <taskdef
      name="anakia"
      classname="org.apache.velocity.anakia.AnakiaTask"
      >
      <classpath refid="anakia.classpath"/>
    </taskdef>

    <anakia
      basedir="${docs.src}"
      destdir="${docs.dest}/"
      extension=".html" style="./site.vsl"
      projectFile="stylesheets/project.xml"
      excludes="**/stylesheets/** empty.xml"
      includes="**/*.xml"
      lastModifiedCheck="true"
      templatePath="${jakarta.site2.home}/xdocs/stylesheets"
      >
    </anakia>

  </target>


</project>
