<project name="BEASTGen" default="build" basedir=".">
    <description>
        Build file for the phylogeography.jar tools package.
        $Id:$
    </description>
    <!-- set global properties for this build -->
    <property name="src" location="src"/>
    <property name="build" location="build"/>
    <property name="lib" location="lib"/>
    <property name="dist" location="dist"/>

    <path id="classpath">
		<fileset dir="${lib}" includes="**/*.jar"/>
	</path>

    <property environment="env"/>

    <target name="init">
        <!-- Create the time stamp -->
        <echo message="${ant.project.name}: ${ant.file}" />
        <tstamp/>
        <!-- Create the build directory structure used by compile -->
        <mkdir dir="${build}"/>
        <mkdir dir="${dist}"/>
    </target>

    <target name="compile" depends="init">
        <!-- Compile the java code from ${src} into ${build} -->
        <javac source="1.6" srcdir="${src}" destdir="${build}" classpathref="classpath">
            <include name="dr/app/beastgen/**"/>
            <include name="dr/app/beast/**"/>
            <include name="dr/app/beauti/**"/>
            <include name="dr/app/util/**"/>
            <include name="dr/evolution/**"/>
            <include name="dr/evoxml/**"/>
            <include name="dr/inference/trace/**"/>
            <include name="dr/matrix/**"/>
            <include name="dr/stats/**"/>
            <include name="dr/math/**"/>
            <include name="dr/util/**"/>
            <include name="dr/xml/**"/>
        </javac>
    </target>

    <target name="build" depends="compile" description="generate the jar file">
        <!-- Create the distribution directory -->
        <mkdir dir="${dist}"/>

        <!-- Put everything in ${build} into the treestat.jar file -->
        <jar jarfile="${dist}/beastgen.jar">
            <manifest>
                <attribute name="Built-By" value="${user.name}"/>
                <attribute name="Main-Class" value="dr.app.beastgen.BEASTGen"/>
            </manifest>
            <fileset dir="${build}">
                <include name="dr/app/beastgen/**/*.class"/>
                <include name="dr/app/beast/BeastVersion.class"/>
                <include name="dr/app/beauti/options/*.class"/>
                <include name="dr/app/util/**/*.class"/>
                <include name="dr/evolution/**/*.class"/>
                <include name="dr/evoxml/**/*.class"/>
                <include name="dr/inference/trace/**/*.class"/>
                <include name="dr/matrix/**/*.class"/>
                <include name="dr/stats/**/*.class"/>
                <include name="dr/math/**/*.class"/>
                <include name="dr/util/**/*.class"/>
                <include name="dr/xml/**/*.class"/>
            </fileset>
            <zipgroupfileset dir="${lib}" includes="**/jebl.jar"/>
            <zipgroupfileset dir="${lib}" includes="**/freemarker.jar"/>
            <zipgroupfileset dir="${lib}" includes="**/jdom.jar"/>
        </jar>
    </target>

    <property name="version" value="1.0.2" />
    <property name="release_dir" value="release_beastgen" />
    <property name="name" value="BEASTGen" />

    <property name="common_dir" value="${release_dir}/common" />

    <property name="package_dir" value="${release_dir}/${name}_v${version}" />

    <target name="package" depends="build" description="release Linux/Unix version">
        <delete dir="${package_dir}" />
        <!-- Create the release directory -->
        <mkdir dir="${package_dir}" />

        <copy todir="${package_dir}/bin">
            <fileset dir="${common_dir}/bin"/>
        </copy>

        <chmod dir="${package_dir}/bin" perm="755" includes="**/**"/>

        <copy todir="${package_dir}/templates">
            <fileset dir="${common_dir}/templates"/>
        </copy>

        <copy file="${dist}/beastgen.jar" todir="${package_dir}/lib"/>
        <copy file="${common_dir}/README.txt" todir="${package_dir}"/>

        <tar destfile="${release_dir}/${name}_v${version}.tgz" compression="gzip">
            <tarfileset dir="${package_dir}" prefix="${name}_v${version}"/>
        </tar>
        
        <zip destfile="${release_dir}/${name} v${version}.zip">
            <zipfileset dir="${package_dir}" prefix="${name} v${version}"/>
        </zip>

        <echo message="Linux/Unix version release is finished." />
    </target>

</project>