<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    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="drlvm" default="build">
    <description>
    	Build contributed source and lay out results in the required format 
    </description>
    
    <import file="make/properties.xml"/>

    <target name="help">
        <echo>
Apache Harmony DRLVM Build

Usage:

  ant build
    Compiles the java and native code to produce a jre in
    "deploy/jdk/jre".
    It is possible to build an individual component via 
    corresponding targets.

  ant clean
    Removes all the files generated by a build.

  ant rebuild
    Performs a full build - that is 'clean' then 'build'.

  ant test
    Runs smoke and unit tests.
            
  ant test2
    Runs all pre-commit tests (in parallel on multi-way machines).
    A single suite can be run as:
  ant cunit.test      - runs cunit tests
  ant ehwa.test       - runs automated Eclispe HWA scenario
  ant kernel.test     - runs tests for kernel.classes
  ant smoke.test      - runs smoke tests
  ant jvmti.test      - runs JVMTI tests
  ant reg.test        - runs regression tests
    Also, it is possible to run a single testcase from specific suite 
    and customize JRE configuration, e.g.:
  ant smoke.test -Dtest.case=exception.NPE -Dtest.mode=jit -Dtest.vmargs=-XX:+vm.crash_handler
            
  ant doc
    Generates the javadoc (TBD).

  ant fetch-depends
    Fetches dependencies. Note: Some of Harmony's dependencies are
    licensed under terms other than the Apache License v2.

  ant drlvm-echo echo debug-echo
    Display the common properties that are used in the ant build files.

        </echo>
    </target>

    <target name="fetch-depends">
        <ant antfile="make/depends.xml" target="fetch"/>
    </target>
    
    <target name="check-depends">
        <ant antfile="make/depends.xml" target="check"/>
    </target>

    <target name="rebuild" depends="clean,build"
        description="Performs a full build - that is 'clean' then 'build'" />

    <target name="build" 
        depends="drlvm-echo, -auto-fetch,
        setup,
        interpreter,
        kernel,
        em,
        vmi,
        jitrino,
        gc_gen,
        deploy,
        deploy-relocate,
        deploy-canonical"
        description="Compiles the java and native code to produce a jdk">
    </target>
    
    <target name="-auto-fetch" if="auto.fetch">
        <antcall target="fetch-depends"/>
    </target>

    <target name="clean" depends="" 
            description="Removes all the files generated by a build">
        <delete quiet="true" dir="${drlvm.build.dir}"/>
    </target>
    
    <!-- ================================================================
            build individual components
         ================================================================-->

    <target name="build-extra" depends=""
        description="Compiles external dependencies">
        <ant antfile="make/extra/apr.xml"/>
    </target>

    <target name="encoder">
        <ant antfile="make/vm/encoder.xml"/>
    </target>

    <target name="port" depends="build-extra">
        <ant antfile="make/vm/port.xml"/>
    </target>

    <target name="port_ch" depends="port">
        <ant antfile="make/vm/port_ch.xml"/>
    </target>

    <target name="hythr" depends="port">
        <ant antfile="make/vm/hythr.xml"/>
    </target>

    <target name="verifier">
        <ant antfile="make/vm/verifier.xml"/>
    </target>

    <target name="verifier-ext" description="Build a verifier extentions library">
        <ant antfile="make/vm/verifier-ext.xml"/>
    </target>

    <target name="clean-verifier-ext" description="Clean a verifier extentions library">
        <ant antfile="make/vm/verifier-ext.xml" target="clean"/>
    </target>

    <target name="vmcore" depends="encoder, port, port_ch, hythr, verifier">
        <ant antfile="make/vm/vmcore.xml"/>
    </target>

    <target name="em" depends="vmcore">
        <ant antfile="make/vm/em.xml"/>
    </target>

    <target name="interpreter" depends="vmcore">
        <ant antfile="make/vm/interpreter.xml"/>
    </target>

    <target name="kernel">
        <ant antfile="make/vm/kernel.xml"/>
    </target>

    <target name="vmi" depends="vmcore">
        <ant antfile="make/vm/vmi.xml"/>
    </target>

    <target name="jitrino" depends="vmcore">
        <ant antfile="make/vm/jitrino.xml"/>
    </target>

    <target name="gc_gen" depends="vmcore,kernel">
        <ant antfile="make/vm/gc_gen.xml"/>
    </target>


    <!-- ================================================================
            import the deploy stuff from hdk / classlib
         ================================================================-->
    <target name="setup">
        <mkdir dir="${drlvm.deploy.dir}/lib" />
        <mkdir dir="${drlvm.deploy.dir}/jdk/jre" />
        <mkdir dir="${drlvm.deploy.dir}/include" />        
        <copy todir="${drlvm.deploy.dir}">
            <fileset dir="${hy.hdk}">
                <include name="**" if="import.hdk"/>
                <include name="jdk/jre/**" unless="import.hdk"/>
                <exclude name="jdk/jre/bin/default/**" unless="import.hdk"/>
                <exclude name="jdk/jre/bin/*hythr*" unless="import.hdk"/>
            </fileset>
        </copy>
    </target>
        
    <!-- ================================================================
            deploy the rest of product
         ================================================================-->
    <target name="deploy">
        <copy todir="${drlvm.deploy.dir}/jdk/include">
            <fileset dir="${vm.home}/include">
                <include name="jni_types.h" />
                <include name="jvmti_types.h" />
                <include name="ncai_types.h" />
                <include name="jni.h" />
                <include name="jvmti.h" />
                <include name="ncai.h" />
            </fileset>
        </copy>

        <!-- a trick to drop duplicated dependencies -->
        <delete quiet="yes">
            <fileset dir="${drlvm.bin.dir}" includes="*" excludes="*hythr*">
                <not>
                    <different targetdir="${drlvm.deploy.dir}/jdk/jre/bin"/>
                </not>
            </fileset>
        </delete>
        
        <!-- launcher should use our hythr -->
        <copy todir="${drlvm.deploy.dir}/jdk/jre/bin" overwrite="yes">
            <fileset dir="${drlvm.bin.dir}">
                <include name="*hythr*"/>
            </fileset>
        </copy>
        
        <copy file="${drlvm.base.dir}/make/resources/harmonyvm.properties" 
            todir="${drlvm.bin.dir}"/>

        <copy file="${drlvm.base.dir}/make/resources/readme.txt" 
              tofile="${drlvm.deploy.dir}/jdk/jre/README"/>
        <replace file="${drlvm.deploy.dir}/jdk/jre/README" >
            <replacefilter token="@{hy.os}" value="${hy.os}"/>
            <replacefilter token="@{hy.arch}" value="${hy.arch}"/>
        </replace>
        <fixcrlf srcDir="${drlvm.deploy.dir}/jdk/jre" includes="README" />
        
        <chmod file="${drlvm.deploy.dir}/jdk/jre/bin/java*" perm="ugo+x" />
    </target>
    

    <!-- ==================================================================
      place things into canonical 'deploy' directory
      so irrespective of the platform, compiler or release/debug
      there's a predicable place to find the output 
      ================================================================== -->
    <target name="deploy-canonical" if="deploy.canonical.flag">
        <property name="canonical.deploy.dir" location="${drlvm.base.dir}/deploy" />
        <delete dir="${canonical.deploy.dir}" failonerror="false" />
        <mkdir dir="${canonical.deploy.dir}" />
        <copy todir="${canonical.deploy.dir}">
            <fileset dir="${drlvm.deploy.dir}"/>
        </copy>
        <chmod file="${canonical.deploy.dir}/jdk/jre/bin/java*" perm="ugo+x" />
    </target>

    <!-- ==================================================================
        relocate build for Windows
      ================================================================== -->
    <target name="deploy-relocate" if="is.windows">
        <fileset dir="${drlvm.deploy.dir}/jdk/jre/bin/" id="relocate.files">
            <include name="**/*.dll" />
            <!-- Ignore ICUInterface34 stub from classlib -->
            <exclude name="ICUInterface34.dll" />
        </fileset>

        <pathconvert pathsep=" " property="relocate.files.all" refid="relocate.files" />

        <exec executable="editbin" outputproperty="null" logerror="yes" failonerror="true">
            <arg value="/LARGEADDRESSAWARE" />
            <arg value="/BIND" />
            <arg value="${drlvm.deploy.dir}/jdk/jre/bin/java.exe" />
        </exec>

        <exec executable="editbin" outputproperty="null" logerror="yes" failonerror="true">
            <arg value="/LARGEADDRESSAWARE" />
            <arg value="/BIND" />
            <arg value="/rebase:base=0x500000" />
            <arg line="${relocate.files.all}" />
        </exec>
    </target>
        
    <!-- Main target for generating javadoc & deploying guildes -->
    <target name="doc">
        <echo message="Not yet completed"/>
    </target>

    <!-- Main target for tests run: call unit.test and smoke.test -->
    <target name="test" depends="drlvm-echo,
        jvmti.test, cunit.test, smoke.test, kernel.test">
        <fail if="test.failed" message="Some tests failed"/>
    </target>
    
    <target name="hut.test">
        <property name="hut.module" value="*"/>
        <property name="test.vmargs" value=""/>
        <ant antfile="${external.dep.CLASSLIB}/build.xml" inheritAll="no">
            <target name="properties"/>
            <target name="test"/>
            <property name="hy.test.vm.name" value="drl"/>
            <property name="test.jre.home" value="${drlvm.deploy.dir}/jdk/jre"/>
            <property name="short.report" value="true"/>
            <property name="hy.test.vmargs" value="${test.vmargs}"/>
            <property name="build.module" value="${hut.module}"/>
        </ant>
    </target>
    
    <target name="test2" depends="drlvm-echo">
        <property file="test.properties"/>
        <!--property name="run.all.tests" value="true"/-->
        <property name="short.report" value="true"/>
        <mkdir dir="${base.test.dir}"/>
        <parallel threadsPerProcessor="1" failonany="no">
            <ant target="hut.test"      output="${base.test.dir}/hut.log"/>
            <ant target="kernel.test"   output="${base.test.dir}/kernel.log"/>
            <ant target="ehwa.test"     output="${base.test.dir}/ehwa.log"/>
            <ant target="jvmti.test"    output="${base.test.dir}/jvmti.log"/>
            <ant target="smoke.test"    output="${base.test.dir}/smoke.log"/>
            <ant target="reg.test"      output="${base.test.dir}/reg.log"/>
            <ant target="cunit.test"    output="${base.test.dir}/cunit.log"/>
        </parallel>
        <fail if="test.failed" message="Some tests failed"/>
    </target>

    <!-- Run cunit tests only -->
    <target name="cunit.test">
        <ant antfile="make/tests/cunit-test.xml" target="cunit-test"/>
        <available property="test.failed" file="${base.test.dir}/cunit.test.failed" />
    </target>

    <!-- Main target to run smoke tests -->
    <target name="smoke.test">
        <ant antfile="make/tests/smoke-test.xml" target="smoke-test"/>
        <available property="test.failed" file="${base.test.dir}/smoke.test.failed" />
    </target>

    <!-- Main target to run kernel tests -->
    <target name="kernel.test">
        <ant antfile="make/tests/kernel-test.xml" target="kernel-test"/>
        <available property="test.failed" file="${base.test.dir}/kernel.test.failed" />
    </target>

    <!-- Main target to run Eclipse HelloWorld test scenario -->
    <target name="ehwa.test">
        <ant antfile="make/tests/ehwa-test.xml" target="ehwa"/>
        <available property="test.failed" file="${base.test.dir}/ehwa.test.failed" />
    </target>

    <!-- Main target to run jvmti tests /-->
    <target name="jvmti.test">
        <ant antfile="make/tests/jvmti-test.xml" target="jvmti-test"/>
        <available property="test.failed" file="${base.test.dir}/jvmti.test.failed" />
    </target>

    <!-- Main target to run regression test /-->
    <target name="reg.test">
        <ant antfile="make/tests/reg-test.xml" target="reg-test"/>
        <available property="test.failed" file="${base.test.dir}/reg.test.failed" />
    </target>

    <target name="lazy.test">
        <ant antfile="make/tests/lazy-test.xml" target="lazy-test"/>
        <available property="test.failed" file="${base.test.dir}/lazy.test.failed" />
    </target>

</project>
