| <?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. --> |
| |
| <!-- ====================================================================== |
| build-java-source |
| Compile the Java source and package in component archives. |
| ====================================================================== --> |
| <project name="build-java-source" default="default" basedir=".."> |
| <description> |
| Compile the Java source and package in component archives. |
| </description> |
| |
| <property name="hy.hdk" location="deploy" /> |
| |
| <!-- import common properties --> |
| <import file="${basedir}/make/properties.xml" /> |
| |
| <property name="build.output" location="build/classes" /> |
| <property name="depends.jars" location="depends/jars" /> |
| <property name="depends.manifests" location="depends/manifests" /> |
| <property name="depends.files" location="depends/files" /> |
| <property file="make/depends.properties" /> |
| |
| |
| <!-- ================================= |
| target: default |
| ================================= --> |
| <target name="default" |
| description="Compile the Java source and package in component archives." |
| depends="clean, build" /> |
| |
| <!-- ================================= |
| target: build |
| ================================= --> |
| <target name="build" depends="-layout, -compile" |
| description="Compile Java source and construct deploy directory." /> |
| |
| <!-- ================================= |
| target: clean |
| ================================= --> |
| <target name="clean" depends="-clean-bin, -clean-layout" |
| description="Remove compiled classes and delete the deploy directory."/> |
| |
| <!-- ================================= |
| target: -clean-bin |
| Delete all built classes |
| ================================= --> |
| <target name="-clean-bin" |
| depends="-modules-clean-bin, |
| -clean-bin-catch-all-test, |
| -clean-bin-catch-all"/> |
| |
| <target name="-modules-clean-bin"> |
| <poll-modules target="clean-java" /> |
| </target> |
| |
| <target name="-clean-bin-catch-all-test"> |
| <!-- without this test the pathconvert in the catch all clean |
| target fails --> |
| <available property="catch.all.required" |
| file="${build.output}" type="dir" /> |
| </target> |
| |
| <target name="-clean-bin-catch-all" if="catch.all.required"> |
| <fileset id="built.files" dir="${build.output}"> |
| <include name="**/**" /> |
| </fileset> |
| <pathconvert property="built.files.list" |
| refid="built.files" |
| pathsep="${line.separator}" /> |
| <condition property="built.files.exist"> |
| <not> |
| <equals arg1="${built.files.list}" arg2="" /> |
| </not> |
| </condition> |
| |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset refid="built.files" /> |
| </delete> |
| |
| <condition property="continue"> |
| <equals arg1="${keep.working}" arg2="true" /> |
| </condition> |
| |
| <fail if="built.files.exist" unless="continue"> |
| ... |
| |
| Built files still exist after module clean targets have run. This |
| probably means that one or more patternsets are incomplete. The |
| remaining files are: |
| |
| ${built.files.list} |
| |
| </fail> |
| </target> |
| |
| <!-- ================================= |
| target: -compile |
| ================================= --> |
| <target name="-compile" depends="-prepare-depends, -layout"> |
| <ensure-javac/> |
| <mkdir dir="${build.output}" /> |
| |
| <hy.javac destdir="${build.output}" |
| includeAntRuntime="no"> |
| |
| <src path="modules/accessibility/src/main/java/" /> |
| <src path="modules/annotation/src/main/java/" /> |
| <src path="modules/applet/src/main/java" /> |
| <src path="modules/archive/src/main/java" /> |
| <src path="modules/auth/src/main/java/${hy.os.family}" /> |
| <src path="modules/auth/src/main/java/common" /> |
| <src path="modules/awt/src/main/java/${hy.os.family}" /> |
| <src path="modules/awt/src/main/java/common" /> |
| <src path="modules/beans/src/main/java" /> |
| <src path="modules/concurrent/src/main/java/" /> |
| <src path="modules/crypto/src/main/java" /> |
| <src path="modules/instrument/src/main/java" /> |
| <src path="modules/imageio/src/main/java" /> |
| <src path="modules/jndi/src/main/java" /> |
| <src path="modules/logging/src/main/java" /> |
| <src path="modules/lang-management/src/main/java/" /> |
| <src path="modules/luni-kernel/src/main/java" /> |
| <src path="modules/luni/src/main/java" /> |
| <src path="modules/math/src/main/java" /> |
| <src path="modules/misc/src/main/java" /> |
| <src path="modules/nio/src/main/java/common" /> |
| <src path="modules/nio/src/main/java/${hy.os.family}" /> |
| <src path="modules/nio_char/src/main/java" /> |
| <!-- pack200 uses customized build script and |
| should not be built from top-level build.xml --> |
| <!--src path="modules/pack200/src/main/java" /--> |
| <src path="modules/prefs/src/main/java" /> |
| <src path="modules/print/src/main/java/${hy.os.family}" /> |
| <src path="modules/print/src/main/java/common" /> |
| <src path="modules/regex/src/main/java" /> |
| <src path="modules/rmi/src/main/java" /> |
| <src path="modules/security-kernel/src/main/java" /> |
| <src path="modules/security/src/main/java/${hy.os.family}" /> |
| <src path="modules/security/src/main/java/common" /> |
| <src path="modules/sound/src/main/java" /> |
| <src path="modules/sql/src/main/java" /> |
| <src path="modules/suncompat/src/main/java" /> |
| <src path="modules/swing/src/main/java/${hy.os.family}" /> |
| <src path="modules/swing/src/main/java/common" /> |
| <src path="modules/text/src/main/java" /> |
| <src path="modules/x-net/src/main/java/" /> |
| |
| <classpath> |
| <fileset dir="${hy.jdk}/jre/lib/boot"> |
| <include name="**/*.jar" /> |
| <exclude name="**/*-src.jar" /> |
| </fileset> |
| </classpath> |
| |
| <!-- We need to set some BCP to avoid the compiler picking |
| up the JRE's JARs --> |
| <bootclasspath> |
| <fileset dir="${depends.jars}"> |
| <!-- FIXME: picked mx4j arbitrarily, needs to be non-empty set --> |
| <include name="**/mx4j.jar" /> |
| </fileset> |
| </bootclasspath> |
| </hy.javac> |
| |
| <poll-modules target="build" /> |
| </target> |
| |
| |
| <!-- ================================= |
| target: -layout |
| Construct the correct directory structure for the class libs |
| ================================= --> |
| <target name="-layout" depends="-prepare-depends"> |
| |
| <!-- Create the structure --> |
| <mkdir dir="${hy.jdk}/jre/bin" /> |
| <mkdir dir="${hy.jdk}/jre/lib/boot" /> |
| <mkdir dir="${hy.jdk}/jre/lib/ext" /> |
| <mkdir dir="${hy.jdk}/jre/lib/security" /> |
| |
| <!-- Copy across the required files --> |
| <copy file="LICENSE" todir="${hy.hdk}" verbose="yes" /> |
| <copy file="NOTICE" todir="${hy.hdk}" verbose="yes" /> |
| |
| <!-- Copy across the boot dependency jars --><!-- TOFIX clean these? --> |
| <copy todir="${hy.jdk}/jre/lib/boot"> |
| <fileset dir="${depends.jars}"> |
| <patternset includes="icu4j_4.2.1/*.jar" /> |
| <patternset includes="xalan-j_2.7.0/xalan.jar" /> |
| <patternset includes="xerces_2.9.1/*.jar" /> |
| </fileset> |
| <fileset dir="${depends.manifests}"/> |
| </copy> |
| |
| <!-- Copy across the extension dependency jars --> |
| <copy tofile="${hy.jdk}/jre/lib/ext/bcprov.jar" verbose="true" |
| flatten="yes" overwrite="true"> |
| <fileset file="${bcprov.jar}" /> |
| </copy> |
| |
| <!-- Copy across the support files --> |
| <copy todir="${hy.jdk}/jre/lib"> |
| <fileset dir="${depends.files}"> |
| <include name="content-types.properties" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${hy.jdk}/jre/lib/boot"> |
| <fileset dir="${depends.files}"> |
| <include name="bootclasspath.properties" /> |
| </fileset> |
| </copy> |
| <fixcrlf srcdir="${hy.jdk}/jre/lib/boot" |
| includes="bootclasspath.properties" /> |
| |
| <copy todir="${hy.jdk}/jre/lib/security"> |
| <fileset dir="${depends.files}"> |
| <include name="java.policy" /> |
| <include name="java.security" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${hy.jdk}/jre/lib"> |
| <fileset dir="${depends.files}"> |
| <include name="net.properties" /> |
| </fileset> |
| </copy> |
| |
| <copy todir="${hy.jdk}/jre/lib"> |
| <fileset dir="${depends.files}"> |
| <include name="rowset.properties" /> |
| </fileset> |
| </copy> |
| |
| </target> |
| |
| |
| <!-- ================================= |
| target: -clean-layout |
| ================================= --> |
| <target name="-clean-layout"> |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="${hy.jdk}"> |
| <exclude name="jre/bin/default/**" /> |
| <exclude name="jre/bin/**" /> |
| <exclude name="jre/lib/ext/**" /> |
| </fileset> |
| <fileset dir="${hy.hdk}"> |
| <include name="LICENSE" /> |
| <include name="NOTICE" /> |
| </fileset> |
| </delete> |
| </target> |
| |
| <!-- ================================= |
| target: -prepare-depends |
| Check for jars required to compile prefs |
| ================================= --> |
| <target name="-prepare-depends"> |
| |
| <ant antfile="make/depends.xml" inheritall="false" target="check"/> |
| <poll-modules target="check-depends" /> |
| |
| </target> |
| |
| </project> |