| <?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-native-source |
| Compile the native source into component shared libs. |
| ====================================================================== --> |
| <project name="build-native-source" default="default" basedir=".."> |
| <description> |
| Compile the native source into component shared libs. |
| </description> |
| |
| <property name="hy.hdk" location="deploy" /> |
| |
| <!-- import common properties --> |
| <import file="${basedir}/make/properties.xml" /> |
| <import file="${basedir}/make/depends.xml" /> |
| |
| <property name="depends.oss" location="depends/oss" /> |
| <property name="depends.libs" location="depends/libs/${hy.platform}" /> |
| <property name="depends.files" location="depends/files" /> |
| <property name="native.lib.target" location="${hy.hdk}/lib" /> |
| <condition property="needs.vme.v3.hack" value="true"> |
| <or> |
| <equals arg1="${hy.platform}" arg2="windows.x86" /> |
| <equals arg1="${hy.platform}" arg2="linux.x86" /> |
| </or> |
| </condition> |
| |
| <!-- ================================= |
| target: default |
| ================================= --> |
| <target name="default" |
| description="Compile the native source into component shared libs." |
| depends="clean, build" /> |
| |
| |
| <!-- ================================= |
| target: build |
| ================================= --> |
| <target name="build" |
| depends="overlay-oss,copy-includes,layout,build-modules" /> |
| |
| |
| <!-- ================================= |
| target: clean |
| ================================= --> |
| <target name="clean" depends="clean-modules,clean-includes,clean-layout" /> |
| |
| |
| <!-- This target invokes make on the all target to compile all natives --> |
| <target name="build-modules"> |
| |
| <!-- These module targets take care of building and copying |
| their shared libs --> |
| <!-- these must be run in a specific order due to dependencies --> |
| <ant dir="modules/portlib" target="build-native" /> |
| <ant dir="modules/luni" target="build-native-core" /> |
| <ant dir="modules/archive" target="build-native" /> |
| <ant dir="modules/luni" target="build-native-secondary" /> |
| |
| <!-- the rest can be run in any order --> |
| <poll-modules target="build-native-all" /> |
| </target> |
| |
| |
| <!-- ================================= |
| target: make-clean |
| ================================= --> |
| <target name="clean-modules"> |
| <poll-modules target="clean-native" /> |
| <delete dir="${native.lib.target}" /> |
| </target> |
| |
| |
| <!-- ================================= |
| target: layout |
| ================================= --> |
| <target name="layout" depends="-layout.windows,-layout.vme.v3.hack" |
| description="Construct the correct directory structure for native binaries"> |
| |
| <!-- Create the target directory structure --> |
| <mkdir dir="${hy.jdk}/jre/bin" /> |
| <mkdir dir="${hy.jdk}/include" /> |
| <mkdir dir="${native.lib.target}"/> |
| |
| <!-- NLS catalog files --> |
| <copy todir="${hy.jdk}/jre/bin" overwrite="yes"> |
| <fileset dir="${depends.files}"> |
| <include name="harmony*.properties" /> |
| </fileset> |
| </copy> |
| |
| </target> |
| |
| <target name="-layout.windows" if="is.windows"> |
| <!-- workaround until msdll is moved. --> |
| <copy file="${msvcr.dll}" todir="${hy.jdk}/jre/bin" overwrite="yes" /> |
| <copy file="${msvcp.dll}" todir="${hy.jdk}/jre/bin" overwrite="yes" /> |
| </target> |
| |
| <target name="-layout.vme.v3.hack" if="needs.vme.v3.hack"> |
| <echo>Deploying empty ICU dynamic library stub</echo> |
| <copy todir="${hy.jdk}/jre/bin" verbose="true"> |
| <fileset dir="${depends.files}"> |
| <include name="hyempty.dll" if="is.windows" /> |
| </fileset> |
| <globmapper from="*hyempty.dll" to="*ICUInterface34.dll" /> |
| </copy> |
| <copy todir="${hy.jdk}/jre/bin" verbose="true"> |
| <fileset dir="${depends.files}"> |
| <include name="libhyempty.so" if="is.linux" /> |
| </fileset> |
| <globmapper from="*libhyempty.so" to="*libICUInterface34.so" /> |
| </copy> |
| </target> |
| |
| <!-- ================================= |
| target: clean-layout |
| ================================= --> |
| <target name="clean-layout"> |
| <delete includeemptydirs="true" failonerror="false"> |
| <fileset dir="${hy.jdk}"> |
| <include name="**/bin/java${exe.suffix}" /> |
| <include name="**/bin/javaw${exe.suffix}" /> |
| <include name="**/bin/*${shlib.suffix}*" /> |
| <include name="**/bin/*.pdb" /> |
| <include name="**/bin/harmony*.properties" /> |
| </fileset> |
| </delete> |
| </target> |
| |
| |
| <!-- ================================= |
| target: overlay-oss |
| ================================= --> |
| <target name="overlay-oss"> |
| <poll-modules target="overlay-oss" /> |
| </target> |
| |
| <!-- ================================= |
| target: copy-includes |
| ================================= --> |
| <target name="copy-includes" > |
| <!-- Call copy-native-includes targets to copy across |
| global includes to deploy/includes/harmony --> |
| <poll-modules target="copy-native-includes" /> |
| |
| </target> |
| |
| <!-- ================================= |
| target: clean-includes |
| ================================= --> |
| <target name="clean-includes" > |
| <delete dir="${hy.hdk}/include" /> |
| <delete dir="${hy.hdk}/jdk/include" /> |
| </target> |
| |
| </project> |