| <?xml version="1.0" encoding="UTF-8"?> |
| |
| <!-- |
| 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="build-harmony" default="build" basedir="."> |
| |
| <!-- name of the target directory to use for building and final assembly --> |
| <property name="hy.target" value="target" /> |
| |
| <!-- release property file which is added to source release --> |
| <property file="release.properties" /> |
| |
| <!-- debug or release version --> |
| <property name="hy.cfg" value="release" /> |
| |
| <property name="hy.select" value="false" /> |
| |
| <property name="hy.hdk" location="${hy.target}/hdk" /> |
| <property name="hy.component" location="federated" /> |
| <property name="hy.module" location="toplevel" /> |
| |
| <!-- property to identify when components are being built by the |
| federated build --> |
| <property name="is.federated.build" value="true" /> |
| |
| <property name="vm.dir" value="drlvm" /> |
| <property name="vm.dir.loc" location="${vm.dir}" /> |
| |
| <!-- import some vm-specific properties --> |
| <property file="${vm.dir.loc}/make/build.properties" /> |
| |
| <property name="common.resources" location="common_resources" /> |
| |
| <mkdir dir="${hy.hdk}/build/ant" /> |
| <copy todir="${hy.hdk}/build/ant" preservelastmodified="true"> |
| <fileset dir="${common.resources}/make" includes="*.xml"/> |
| </copy> |
| |
| <import file="${hy.hdk}/build/ant/properties.xml" /> |
| <init-hdk /> |
| |
| <description> |
| Apache Harmony project federation script |
| </description> |
| |
| <target name="help"> |
| <echo> |
| Apache Harmony Ant Build |
| |
| Usage: |
| |
| ant build |
| Compiles the java and native code to produce a jdk in |
| "${hy.target}/hdk". |
| |
| ant clean |
| Removes all the files generated by a build. |
| |
| ant rebuild |
| Performs a full build - that is 'clean' then 'build'. |
| |
| ant snapshot |
| Produces a archive (tar/zip) of a build. |
| |
| ant fetch-depends |
| Fetches dependencies. Note: Some of Harmony's dependencies are |
| licensed under terms other than the Apache License v2. |
| |
| ant properties |
| Display the common build properties. |
| |
| </echo> |
| </target> |
| |
| |
| <!-- ============================================================== --> |
| <!-- main target - should checkout, build and package hdk, |
| jdk and jre --> |
| <!-- ============================================================== --> |
| <target name="all" |
| description="setup and build complete implementation" |
| depends="setup, |
| clean, |
| build, |
| bundle-hdk, |
| bundle-jdk, |
| bundle-jre"/> |
| |
| <target name="snapshot" |
| description="setup and build complete src + binaries set" |
| depends="bundle-src, |
| clean, |
| build, |
| bundle-hdk, |
| bundle-jdk, |
| bundle-jre"/> |
| |
| <target name="build" |
| description="build complete implementation" |
| depends="properties, |
| build-classlib, |
| build-vm, |
| build-jdktools, |
| assemble-artifacts"/> |
| |
| <target name="bundle-src" |
| description="assemble source snapshot" |
| depends="setup, |
| copy-src, |
| bundle-src-tgz, |
| bundle-src-zip" /> |
| |
| <target name="rat" depends="setup,copy-src"> |
| <property name="rat.version" value="0.7" /> |
| <fail |
| message="Set rat.home property to directory containing rat build"> |
| <condition><not><available file="${rat.home}" /></not></condition> |
| </fail> |
| <typedef resource="org/apache/rat/anttasks/antlib.xml" |
| uri="antlib:org.apache.rat.anttasks"> |
| <!-- these work if rat.home is a built source checkout --> |
| <classpath path="${rat.home}/apache-rat-tasks/target/apache-rat-tasks-${rat.version}.jar" /> |
| <classpath path="${rat.home}/apache-rat-core/target/apache-rat-core-${rat.version}.jar" /> |
| <classpath path="${rat.home}/apache-rat/target/apache-rat-${rat.version}.jar" /> |
| |
| <!-- these work if rat.home is a binary build --> |
| <classpath path="${rat.home}/apache-rat-tasks-${rat.version}.jar" /> |
| <classpath path="${rat.home}/apache-rat-core-${rat.version}.jar" /> |
| <classpath path="${rat.home}/apache-rat-${rat.version}.jar" /> |
| </typedef> |
| <delete file="${hy.target}/rat.report.txt" /> |
| <rat:report xmlns:rat="antlib:org.apache.rat.anttasks" |
| reportFile="${hy.target}/rat.report.txt" > |
| <fileset dir="${hy.target}/src" excludesfile="rat.excludes" /> |
| </rat:report> |
| <property name="rat.location" |
| location="${hy.target}/rat.report.txt" /> |
| <echo>Rat report generated at |
| ${rat.location} |
| </echo> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- creates the HDK bundle appropriate for the platform --> |
| <!-- ============================================================== --> |
| <target name="bundle-hdk" |
| depends="assemble-artifacts, |
| bundle-hdk-tgz, |
| bundle-hdk-zip" /> |
| |
| <!-- ============================================================== --> |
| <!-- builds with a clean first --> |
| <!-- ============================================================== --> |
| <target name="rebuild" depends="clean, build" |
| description="Performs a full build - that is 'clean' then 'build'" /> |
| |
| <!-- ============================================================== --> |
| <!-- fetches external dependencies --> |
| <!-- ============================================================== --> |
| <target name="fetch-depends" |
| description="Fetches dependencies for all components. Note: Some of Harmony dependencies are licensed under terms other than the Apache License v2." |
| depends="-init-hdk, |
| fetch-depends-classlib, |
| fetch-depends-vm, |
| fetch-depends-jdktools"/> |
| |
| <target name="check-depends" |
| description="Checks dependencies for all components." |
| depends="-init-hdk, |
| check-depends-classlib, |
| check-depends-vm, |
| check-depends-jdktools"/> |
| |
| <target name="bundle-hdk-tgz" depends="init" if="is.unix"> |
| |
| <!-- create the tar file and then md5 checksum using harmony-hdk-rev as the root, |
| and setting exec bits as needed --> |
| <tar tarfile="${hy.target}/${deploy.hdk.tar}" compression="gzip"> |
| <tarfileset dir="${hy.target}/hdk" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}" |
| mode="755"> |
| <include name="jdk/jre/bin/java"/> |
| <include name="jdk/jre/bin/keytool"/> |
| <include name="jdk/jre/bin/pack200"/> |
| <include name="jdk/jre/bin/policytool"/> |
| <include name="jdk/jre/bin/unpack200"/> |
| <include name="jdk/bin/*"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/hdk" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="jdk/jre/bin/java"/> |
| <exclude name="jdk/jre/bin/keytool"/> |
| <exclude name="jdk/jre/bin/pack200"/> |
| <exclude name="jdk/jre/bin/policytool"/> |
| <exclude name="jdk/jre/bin/unpack200"/> |
| <exclude name="jdk/bin/*"/> |
| <exclude name="jdk/jre/README"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}"> |
| <include name="README"/> |
| </tarfileset> |
| </tar> |
| |
| <chksum dir="${hy.target}" file="${deploy.hdk.tar}" /> |
| <chksum dir="${hy.target}" file="${deploy.hdk.tar}" type="sha" /> |
| |
| </target> |
| |
| <target name="bundle-hdk-zip" depends="init" unless="is.unix"> |
| <!-- create the tar file and then md5 checksum using harmony-hdk-rev as the root, |
| and setting exec bits as needed --> |
| <zip destfile="${hy.target}/${deploy.hdk.zip}" > |
| <zipfileset dir="${hy.target}/hdk" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}" |
| filemode="755"> |
| <include name="jdk/jre/bin/java.exe"/> |
| <include name="jdk/jre/bin/javaw.exe"/> |
| <include name="jdk/jre/bin/keytool.exe"/> |
| <include name="jdk/jre/bin/pack200.exe"/> |
| <include name="jdk/jre/bin/policytool.exe"/> |
| <include name="jdk/jre/bin/unpack200.exe"/> |
| <include name="jdk/bin/*"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/hdk" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="jdk/jre/bin/java.exe"/> |
| <exclude name="jdk/jre/bin/javaw.exe"/> |
| <exclude name="jdk/jre/bin/keytool.exe"/> |
| <exclude name="jdk/jre/bin/pack200.exe"/> |
| <exclude name="jdk/jre/bin/policytool.exe"/> |
| <exclude name="jdk/jre/bin/unpack200.exe"/> |
| <exclude name="jdk/bin/*"/> |
| <exclude name="jdk/jre/README"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}hdk-${harmony.version}"> |
| <include name="README"/> |
| </zipfileset> |
| </zip> |
| |
| <chksum dir="${hy.target}" file="${deploy.hdk.zip}" /> |
| <chksum dir="${hy.target}" file="${deploy.hdk.zip}" type="sha" /> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- creates the JDK bundle appropriate for the platform --> |
| <!-- ============================================================== --> |
| <target name="bundle-jdk" |
| depends="assemble-jdk-doc, |
| bundle-jdk-tgz, |
| bundle-jdk-zip" /> |
| |
| <target name="bundle-jdk-tgz" depends="init" if="is.unix"> |
| |
| <tar tarfile="${hy.target}/${deploy.jdk.tar}" compression="gzip" > |
| <tarfileset dir="${hy.target}/hdk/jdk" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}" |
| mode="755"> |
| <include name="jre/bin/java"/> |
| <include name="jre/bin/keytool"/> |
| <include name="jre/bin/pack200"/> |
| <include name="jre/bin/policytool"/> |
| <include name="jre/bin/unpack200"/> |
| <include name="bin/*"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/hdk/jdk" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="jre/bin/java"/> |
| <exclude name="jre/bin/keytool"/> |
| <exclude name="jre/bin/pack200"/> |
| <exclude name="jre/bin/policytool"/> |
| <exclude name="jre/bin/unpack200"/> |
| <exclude name="bin/*"/> |
| <exclude name="jre/README"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}"> |
| <include name="README"/> |
| </tarfileset> |
| </tar> |
| |
| <chksum dir="${hy.target}" file="${deploy.jdk.tar}" /> |
| <chksum dir="${hy.target}" file="${deploy.jdk.tar}" type="sha" /> |
| |
| </target> |
| |
| <target name="bundle-jdk-zip" depends="init" unless="is.unix"> |
| <zip destfile="${hy.target}/${deploy.jdk.zip}"> |
| <zipfileset dir="${hy.target}/hdk/jdk" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}" |
| filemode="755"> |
| <include name="jre/bin/java.exe"/> |
| <include name="jre/bin/javaw.exe"/> |
| <include name="jre/bin/keytool.exe"/> |
| <include name="jre/bin/pack200.exe"/> |
| <include name="jre/bin/policytool.exe"/> |
| <include name="jre/bin/unpack200.exe"/> |
| <include name="bin/*"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/hdk/jdk" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="jre/bin/java.exe"/> |
| <exclude name="jre/bin/javaw.exe"/> |
| <exclude name="jre/bin/keytool.exe"/> |
| <exclude name="jre/bin/pack200.exe"/> |
| <exclude name="jre/bin/policytool.exe"/> |
| <exclude name="jre/bin/unpack200.exe"/> |
| <exclude name="bin/*"/> |
| <exclude name="jre/README"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jdk-${harmony.version}"> |
| <include name="README"/> |
| </zipfileset> |
| </zip> |
| <chksum dir="${hy.target}" file="${deploy.jdk.zip}" /> |
| <chksum dir="${hy.target}" file="${deploy.jdk.zip}" type="sha" /> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- creates the JRE bundle appropriate for the platform --> |
| <!-- ============================================================== --> |
| <target name="bundle-jre" |
| depends="assemble-jre-doc, |
| bundle-jre-tgz, |
| bundle-jre-zip" /> |
| |
| |
| <target name="bundle-jre-tgz" depends="init" if="is.unix"> |
| |
| <tar tarfile="${hy.target}/${deploy.jre.tar}" compression="gzip" > |
| <tarfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jre-${harmony.version}" |
| mode="755"> |
| <include name="bin/java"/> |
| <include name="bin/keytool"/> |
| <include name="bin/pack200"/> |
| <include name="bin/policytool"/> |
| <include name="bin/unpack200"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jre-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="bin/java"/> |
| <exclude name="bin/keytool"/> |
| <exclude name="bin/pack200"/> |
| <exclude name="bin/policytool"/> |
| <exclude name="bin/unpack200"/> |
| <exclude name="**/*-src.jar"/> |
| </tarfileset> |
| </tar> |
| |
| <chksum dir="${hy.target}" file="${deploy.jre.tar}" /> |
| <chksum dir="${hy.target}" file="${deploy.jre.tar}" type="sha" /> |
| |
| </target> |
| |
| <target name="bundle-jre-zip" depends="init" unless="is.unix"> |
| <zip destfile="${hy.target}/${deploy.jre.zip}"> |
| <zipfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jre-${harmony.version}" |
| filemode="755"> |
| <include name="bin/java.exe"/> |
| <include name="bin/javaw.exe"/> |
| <include name="bin/keytool.exe"/> |
| <include name="bin/pack200.exe"/> |
| <include name="bin/policytool.exe"/> |
| <include name="bin/unpack200.exe"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/hdk/jdk/jre" |
| prefix="${archive.dir.prefix}jre-${harmony.version}"> |
| <include name="**"/> |
| <exclude name="bin/java.exe"/> |
| <exclude name="bin/javaw.exe"/> |
| <exclude name="bin/keytool.exe"/> |
| <exclude name="bin/pack200.exe"/> |
| <exclude name="bin/policytool.exe"/> |
| <exclude name="bin/unpack200.exe"/> |
| <exclude name="**/*-src.jar"/> |
| </zipfileset> |
| </zip> |
| <chksum dir="${hy.target}" file="${deploy.jre.zip}" /> |
| <chksum dir="${hy.target}" file="${deploy.jre.zip}" type="sha" /> |
| </target> |
| |
| |
| <!-- ============================================================== --> |
| <!-- from the classlib and vm builds, creates the hdk and jre --> |
| <!-- ============================================================== --> |
| <target name="assemble-artifacts" |
| depends="init, |
| assemble-hdk-doc, |
| chmod-stuff"/> |
| |
| <target name="chmod-stuff" if="is.unix"> |
| <chmod file="${hy.target}/hdk/jdk/bin/*" perm="ugo+x" /> |
| <chmod file="${hy.target}/hdk/jdk/jre/bin/java*" perm="ugo+x" /> |
| <chmod file="${hy.target}/hdk/jdk/jre/bin/keytool*" perm="ugo+x" /> |
| <chmod file="${hy.target}/hdk/jdk/jre/bin/policytool*" perm="ugo+x" /> |
| <chmod file="${hy.target}/hdk/jdk/jre/bin/unpack200*" perm="ugo+x" /> |
| <chmod file="${hy.target}/hdk/jdk/jre/bin/pack200*" perm="ugo+x" /> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- copies a license and notices into the root of the hdk --> |
| <!-- ============================================================== --> |
| <target name="assemble-hdk-doc"> |
| |
| <copy todir="${hy.target}/hdk" overwrite="true"> |
| <fileset dir="."> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| </fileset> |
| </copy> |
| |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- copies a license and notices into the root of the JDK and JRE --> |
| <!-- ============================================================== --> |
| <target name="assemble-jre-doc"> |
| |
| <copy todir="${hy.target}/hdk/jdk/jre" overwrite="true"> |
| <fileset dir="."> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <target name="assemble-jdk-doc"> |
| <copy todir="${hy.target}/hdk/jdk/" overwrite="true"> |
| <fileset dir="."> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| </fileset> |
| </copy> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- ensures dependencies are up to date, then builds classlib --> |
| <!-- ============================================================== --> |
| |
| <propertyset id="required.props"> |
| <propertyref name="hy.cfg" /> |
| <propertyref name="hy.select" /> |
| <propertyref name="hy.hdk" /> |
| <propertyref name="hy.local.zlib" /> |
| <propertyref name="use.libstdc++5" /> |
| <propertyref name="harmony.java.version" /> |
| <propertyref name="is.federated.build" /> |
| <propertyref name="hy.no.thr" /> |
| <propertyref name="hy.zip.api" /> |
| </propertyset> |
| |
| <target name="build-classlib" |
| depends="init,-init-hdk,-build-classlib,assemble-hdk-doc"/> |
| <target name="-build-classlib" depends="auto-fetch-depends-classlib"> |
| <ant antfile="classlib/build.xml" target="build" inheritAll="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="keep.working" value="true" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| <!-- hack to make sure the federated build doesn't use the classlib |
| LICENSE/NOTICE files as they don't cover ICU4C |
| --> |
| <delete> |
| <fileset dir="${hy.hdk}"> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| </fileset> |
| </delete> |
| </target> |
| |
| <target name="auto-fetch-depends-classlib" if="auto.fetch"> |
| <ant target="fetch-depends-classlib"> |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="fetch-depends-classlib" |
| description="Fetches dependencies for classlib. Note: Some of Harmony dependencies are licensed under terms other than the Apache License v2."> |
| <ant antfile="classlib/build.xml" target="fetch-depends" |
| inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="check-depends-classlib" |
| description="Checks dependencies for classlib."> |
| <ant antfile="classlib/build.xml" target="check-depends" |
| inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="clean-classlib"> |
| <ant antfile="classlib/build.xml" target="clean" inheritAll="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="keep.working" value="true" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="-init-classlib-hdk-for-clean"> |
| <!-- <ant antfile="classlib/build.xml" |
| target="-init-hdk-for-clean" inheritAll="false" > |
| <propertyset refid="required.props" /> |
| <property name="keep.working" value="true" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| --> </target> |
| |
| <target name="-init-hdk"> |
| <ant antfile="${vm.dir.loc}/build.xml" |
| target="-init-hdk" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- ensures that dependencies are up to date and then builds a vm --> |
| <!-- ============================================================== --> |
| <target name="build-vm" depends="init,auto-fetch-depends-vm"> |
| <ant antfile="${vm.dir.loc}/build.xml" |
| target="build" inheritAll="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="deploy.canonical.flag" value="false"/> |
| <property name="drlvm.deploy.dir" location="${hy.hdk}"/> |
| <property name="import.hdk" value="false"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="auto-fetch-depends-vm" if="auto.fetch"> |
| <ant target="fetch-depends-vm"> |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="fetch-depends-vm" |
| description="Fetches dependencies for the vm. Note: Some of Harmony dependencies are licensed under terms other than the Apache License v2."> |
| <ant antfile="${vm.dir.loc}/build.xml" |
| target="fetch-depends" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="check-depends-vm" |
| description="Checks dependencies for the vm."> |
| <ant antfile="${vm.dir.loc}/build.xml" |
| target="check-depends" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="clean-vm"> |
| <ant antfile="${vm.dir.loc}/build.xml" |
| target="clean" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="deploy.canonical.flag" value="false"/> |
| <property name="drlvm.deploy.dir" location="${hy.hdk}"/> |
| <property name="import.hdk" value="false"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- ensures dependencies are up to date, then builds jdktools --> |
| <!-- ============================================================== --> |
| <target name="build-jdktools" |
| depends="init,-init-hdk,auto-fetch-depends-jdktools"> |
| <ant antfile="jdktools/build.xml" target="build" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="auto-fetch-depends-jdktools" if="auto.fetch"> |
| <ant target="fetch-depends-jdktools" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="fetch-depends-jdktools" |
| description="Fetches dependencies for jdktools. Note: Some of Harmony dependencies are licensed under terms other than the Apache License v2."> |
| <ant antfile="jdktools/build.xml" target="fetch-depends" |
| inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="check-depends-jdktools" |
| description="Checks dependencies for jdktools"> |
| <ant antfile="jdktools/build.xml" target="check-depends" |
| inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <target name="clean-jdktools"> |
| <ant antfile="jdktools/build.xml" target="clean" inheritall="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="common.resources" location="common_resources" /> |
| </ant> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- recreates distribution dir --> |
| <!-- ============================================================== --> |
| <target name="setup" depends="init, properties"> |
| <delete dir="${hy.target}"/> |
| <mkdir dir="${hy.target}"/> |
| </target> |
| |
| |
| <target name="clean" |
| depends="-init-classlib-hdk-for-clean, |
| clean-jdktools, |
| clean-classlib, |
| clean-vm, |
| clean-tests" > |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="${hy.target}"> |
| <exclude name="depends/**" /> |
| </fileset> |
| </delete> |
| </target> |
| |
| <target name="distclean"> |
| <delete dir="${hy.target}" |
| includeemptydirs="true" failonerror="false" /> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- sets up a platform --> |
| <!-- ============================================================== --> |
| <target name="init" depends="-svn-info"> |
| |
| <property name="harmony.version" value="${svn.revision}" /> |
| <property name="harmony.long.version" value="${svn.info}" /> |
| |
| <condition property="version.prefix" value="select-"> |
| <istrue value="${hy.select}" /> |
| </condition> |
| <property name="version.prefix" value="" /> |
| |
| <condition property="vm.prefix" value=""> |
| <equals arg1="drlvm" arg2="${vm.dir}" /> |
| </condition> |
| <property name="vm.prefix" value="${vm.dir}-" /> |
| |
| <property name="harmony.deploy.suffix" value="-snapshot" /> |
| |
| <property name="harmony.java.version" value="5.0" /> |
| |
| <property name="deploy.file.prefix" |
| value="apache-harmony-${version.prefix}${harmony.java.version}-${vm.prefix}" /> |
| |
| <property name="archive.dir.prefix" |
| value="harmony-${version.prefix}${harmony.java.version}-${vm.prefix}" /> |
| |
| <property name="deploy.hdk.file.prefix" |
| value="${deploy.file.prefix}hdk-r${harmony.version}" /> |
| <property name="deploy.hdk.tar" |
| value="${deploy.hdk.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.tar.gz" /> |
| <property name="deploy.hdk.zip" |
| value="${deploy.hdk.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.zip" /> |
| |
| <property name="deploy.jdk.file.prefix" |
| value="${deploy.file.prefix}jdk-r${harmony.version}" /> |
| <property name="deploy.jdk.tar" |
| value="${deploy.jdk.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.tar.gz" /> |
| <property name="deploy.jdk.zip" |
| value="${deploy.jdk.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.zip" /> |
| |
| <property name="deploy.jre.file.prefix" |
| value="${deploy.file.prefix}jre-r${harmony.version}" /> |
| <property name="deploy.jre.tar" |
| value="${deploy.jre.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.tar.gz" /> |
| <property name="deploy.jre.zip" |
| value="${deploy.jre.file.prefix}-${hy.os}-${hy.arch}${harmony.deploy.suffix}.zip" /> |
| |
| <property name="deploy.src.file.prefix" |
| value="${deploy.file.prefix}src-r${harmony.version}" /> |
| <property name="deploy.src.tar" |
| value="${deploy.src.file.prefix}${harmony.deploy.suffix}.tar.gz" /> |
| <property name="deploy.src.zip" |
| value="${deploy.src.file.prefix}${harmony.deploy.suffix}.zip" /> |
| |
| <!-- copy symbol debug info to debug build on Windows --> |
| <condition property="copy.progdb"> |
| <equals arg1="${hy.cfg}" arg2="debug" /> |
| </condition> |
| |
| <!-- workaround for drlvm build till it starts with a script--> |
| <condition property="custom.props" value="-Dhy.javac.compiler=${hy.javac.compiler}" |
| else=""> |
| <isset property="hy.javac.compiler"/> |
| </condition> |
| |
| </target> |
| |
| <target name="properties" depends="init"> |
| <echo> |
| Apache Harmony Federated Build |
| ========================================== |
| svn rev : ${harmony.version} |
| operating system : ${hy.os} |
| CPU architecture : ${hy.arch} |
| ant os name/arch : ${os.name}/${os.arch} |
| hosting Java : ${java.version} (${java.vendor}) |
| build mode : ${hy.cfg} |
| output location : ${hy.target} |
| SVN root : ${svn.root} |
| archive.dir : ${archive.dir.prefix} |
| archive.name : ${deploy.file.prefix} |
| </echo> |
| </target> |
| |
| |
| <target name="bundle-src-tgz" depends="init" if="is.unix"> |
| |
| <tar tarfile="${hy.target}/${deploy.src.tar}" compression="gzip" |
| longfile="gnu" > |
| <tarfileset dir="${hy.target}/src" prefix="${deploy.file.prefix}src-r${harmony.version}" mode="755"> |
| <include name="debian/rules"/> |
| </tarfileset> |
| <tarfileset dir="${hy.target}/src" prefix="${deploy.file.prefix}src-r${harmony.version}"> |
| <include name="**"/> |
| <exclude name="debian/rules"/> |
| </tarfileset> |
| </tar> |
| |
| <chksum dir="${hy.target}" file="${deploy.src.tar}" /> |
| <chksum dir="${hy.target}" file="${deploy.src.tar}" type="sha" /> |
| |
| </target> |
| |
| <target name="bundle-src-zip" depends="init" unless="is.unix"> |
| <zip destfile="${hy.target}/${deploy.src.zip}"> |
| <zipfileset dir="${hy.target}/src" |
| prefix="${deploy.file.prefix}src-r${harmony.version}" |
| filemode="755"> |
| <include name="debian/rules"/> |
| </zipfileset> |
| <zipfileset dir="${hy.target}/src" |
| prefix="${deploy.file.prefix}src-r${harmony.version}"> |
| <include name="**"/> |
| <exclude name="debian/rules"/> |
| </zipfileset> |
| </zip> |
| <chksum dir="${hy.target}" file="${deploy.src.zip}" /> |
| <chksum dir="${hy.target}" file="${deploy.src.zip}" type="sha" /> |
| </target> |
| |
| <target name="copy-src" depends="init"> |
| <exec executable="svn"> |
| <arg value="export" /> |
| <arg value="." /> |
| <arg value="${hy.target}/src" /> |
| </exec> |
| <echo file="${hy.target}/src/release.properties"> |
| harmony.version=${harmony.version} |
| harmony.long.version=${harmony.long.version} |
| harmony.deploy.suffix=${harmony.deploy.suffix} |
| harmony.java.version=${harmony.java.version} |
| </echo> |
| <chmod file="${hy.target}/src/debian/rules" perm="ugo+x" /> |
| </target> |
| |
| <target name="test" depends="clean-tests" description="Runs all tests"> |
| <ant antfile="${hy.target}/hdk/build/test/build.xml" |
| target="test" inheritAll="false" > |
| <propertyset refid="required.props" /> |
| <property name="svn.info" value="${harmony.long.version}"/> |
| <property name="svn.revision" value="${harmony.version}"/> |
| <property name="hy.target" location="${hy.target}"/> |
| <property name="keep.working" value="true" /> |
| <property name="tests.output" location="${hy.target}/test_report"/> |
| <property name="test.jre.home" |
| location="${hy.target}/hdk/jdk/jre" /> |
| </ant> |
| </target> |
| |
| <target name="clean-tests"> |
| <delete dir="${hy.target}/test_report" /> |
| </target> |
| |
| <!-- ============================================================== --> |
| <!-- produces a nice looking checksum --> |
| <!-- ============================================================== --> |
| <macrodef name="chksum"> |
| <attribute name="dir" /> |
| <attribute name="file" /> |
| <attribute name="type" default="md5" /> |
| <sequential> |
| <checksum property="@{file}.@{type}" |
| file="@{dir}/@{file}" |
| algorithm="@{type}" /> |
| <echo file="@{dir}/@{file}.@{type}" |
| message="${@{file}.@{type}} @{file}${line.separator}" /> |
| </sequential> |
| </macrodef> |
| |
| </project> |