<?xml version="1.0"?>
<project name="ADQLlib" default="cleanInstall" basedir=".">
    <property environment="env"/>
    <property name="lib" value="./lib"/>
    <property name="classes" value="./classes"/>
    <property name="generated" value="./src/generated"/>
    <property name="adqlversion" value="v0.7.4"/>
    <property name="bin" value="${env.NVOSS_HOME}/bin"/>
    <property name="dist" value="./dist"/>

    <taskdef resource="axis-tasks.properties"/>

    <target name="init">
       <mkdir dir="${classes}"/>
       <mkdir dir="${dist}"/>
       <mkdir dir="${generated}"/>
       <mkdir dir="${lib}"/>

       <copy todir="${generated}">
          <fileset dir="etc/${adqlversion}/schemas">
             <filename name="*.xsd"/>
          </fileset>
          <fileset dir="etc/${adqlversion}/wsdls">
             <filename name="ADQLConvert*.wsdl"/>
          </fileset>
       </copy>
             
    </target>

    <target name="distclean">
       <delete includeEmptyDirs="true">
          <fileset dir="${classes}" />
          <fileset dir="${dist}" />
          <fileset dir="${generated}" />
          <fileset dir="${lib}" >
             <filename name="adql.jar" />
          </fileset>
          <fileset dir="./doc/api" />
          <fileset dir="${bin}">
             <filename name="xalan*" />
          </fileset>
          <fileset dir="${bin}">
             <filename name="convertADQL*" />
          </fileset>
          <fileset dir="${bin}">
             <filename name="validate*" />
          </fileset>
       </delete>
    </target>

    <target name="clean">
       <delete includeEmptyDirs="true">
          <fileset dir="${classes}">
             <include name="**" />
             <exclude name="test/**" />
          </fileset>
       </delete>
    </target>

    <target name="cleanInstall" depends="install,clean" />

    <target name="codeGen" depends="init">
       <axis-wsdl2java output="${generated}" testcase="false" verbose="false"
                       url="${generated}/ADQLConvertService.wsdl"
                       serverside="true" skeletondeploy="true"/>
    </target>

    <target name="compileGen" depends="codeGen">
       <javac destdir="${classes}" srcdir="${generated}" 
              includeAntruntime="false">
          <classpath>
            <pathelement path="${java.class.path}"/>
            <pathelement path="${lib}/xercesImpl.jar:${lib}/xmlParserAPIs.jar"/>
            <pathelement location="${classes}" />
          </classpath>
       </javac>
    </target>

    <target name="compile" depends="compileGen">
       <javac destdir="${classes}" srcdir="src/java" 
              includeAntruntime="false">
          <classpath>
            <pathelement path="${java.class.path}"/>
            <pathelement location="${classes}" />
          </classpath>
       </javac>
    </target>

    <target name="jarlib" depends="compile">
       <copy file="etc/${adqlversion}/stylesheets/ADQLx2s.xsl" 
             todir="${classes}/net/ivoa/adql/app/conf" />
       <copy file="src/java/net/ivoa/adql/app/conf/ConvertADQL.xml"
             todir="${classes}/net/ivoa/adql/app/conf" />
       <jar destfile="${lib}/adql.jar" basedir="${classes}" excludes="text/*" />
    </target>

    <target name="apidoc" depends="codeGen">
       <javadoc destdir="doc/api" windowtitle="ADQL Library" 
                sourcepath="src/java:src/generated"
                packagenames="net.*,nvo_coords.*,nvo_regions.*,ncsa.*,test.*" />
    </target>

    <target name="install" depends="jarlib,apidoc">
       <copy file="src/scripts/validate" todir="${bin}"/>
       <copy file="src/scripts/validate.cmd" todir="${bin}"/>
       <copy file="src/scripts/xalan" todir="${bin}"/>
       <copy file="src/scripts/xalan.cmd" todir="${bin}"/>
       <copy file="src/scripts/convertADQL" todir="${bin}"/>
       <copy file="src/scripts/convertADQL.cmd" todir="${bin}"/>
       <chmod perm="a+rx">
          <fileset dir="${bin}" includes="validate,xalan,convertADQL"/>
       </chmod>
    </target>

</project>
