<?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="**" unless="skip.import.hdk"/>
                <include name="jdk/jre/**" if="skip.import.hdk"/>
                <exclude name="jdk/jre/bin/default/**" if="skip.import.hdk"/>
                <exclude name="jdk/jre/bin/*hythr*" if="skip.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" unless="skip.deploy.canonical">
        <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>
