| <?xml version="1.0"?> |
| <!-- |
| /** |
| * 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="wms" basedir="." default="jar"> |
| <property name="Name" value="wms" /> |
| <property name="name" value="wms" /> |
| <property environment="env"/> |
| <property name="version" value="1.0.0" /> |
| <property name="final.name" value="${name}-${version}"/> |
| <property name="revision.dir" value="${basedir}/.revision" /> |
| <property name="revision.properties" value="revision.properties" /> |
| <property file="${basedir}/src/${revision.properties}" /> |
| <property name="javac.target" value="1.6" /> |
| <property name="javac.source" value="1.6" /> |
| <property name="src.dir" value="${basedir}/src" /> |
| <property name="java.src.dir" value="${src.dir}/main/java" /> |
| <property name="lib.dir" value="${basedir}/lib" /> |
| <property name="lib.dir.includes" value="**/*.jar" /> |
| <property name="lib.dir.excludes" value="**/excluded/" /> |
| <!-- prior to ant 1.7.1 fileset always fails if dir doesn't exist |
| so just point to bin directory and provide settings that exclude |
| everything - user can change as appropriate --> |
| <property name="additional.lib.dir" value="bin" /> |
| <property name="additional.lib.dir.includes" value="**/*.jar" /> |
| <property name="additional.lib.dir.excludes" value="**/*.jar" /> |
| <property name="build.dir" value="${basedir}/build" /> |
| <property name="dist.dir" value="${basedir}/distribution" /> |
| <property name="src_generated.dir" value="${src.dir}/java/generated" /> |
| <property name="c.src.dir" value="${src.dir}/main/cpp" /> |
| <property name="csrc_generated.dir" value="${c.src.dir}/src/generated" /> |
| <property name="thirdparty.export.dir" value="${basedir}/thirdparty_export" /> |
| <property name="build.classes" value="${build.dir}/classes"/> |
| <property name="build.docs" value="${build.dir}/docs" /> |
| <property name="build.javadoc" value="${build.docs}/api" /> |
| <property name="build.javadoc.dev" value="${build.docs}/dev-api"/> |
| <property name="conf.dir" value="${basedir}/conf"/> |
| <property name="docs.dir" value="${basedir}/docs"/> |
| <property name="docs.src" value="${basedir}/src/docs"/> |
| <property name="javadoc.link.java" |
| value="http://docs.oracle.com/javase/6/docs/api/" /> |
| <property name="javadoc.packages" value="org.apache.*" /> |
| <property name="thirdparty.dir" value="${basedir}/thirdparty" /> |
| |
| <available file="${c.src.dir}/Makefile" property="Makefile.present"/> |
| <exec dir="${basedir}" executable="hostname" outputproperty="host.name"/> |
| |
| <!-- the normal classpath --> |
| <path id="java.classpath"> |
| <pathelement location="${build.classes}"/> |
| <!-- allow the user to override (e.g. if there are local versions) --> |
| <fileset dir="${additional.lib.dir}"> |
| <include name="${additional.lib.dir.includes}" /> |
| <exclude name="${additional.lib.dir.excludes}" /> |
| </fileset> |
| <fileset dir="${lib.dir}"> |
| <include name="${lib.dir.includes}" /> |
| <exclude name="${lib.dir.excludes}" /> |
| </fileset> |
| <fileset dir="${ant.home}/lib"> |
| <include name="ant.jar" /> |
| </fileset> |
| </path> |
| |
| <!-- ================================================================== --> |
| <!-- D I S T R I B U T I O N --> |
| <!-- ================================================================== --> |
| <target name="package" depends="jar" description="Build distribution"> |
| <mkdir dir="${dist.dir}"/> |
| <mkdir dir="${dist.dir}/lib"/> |
| <mkdir dir="${dist.dir}/bin"/> |
| <mkdir dir="${dist.dir}/docs"/> |
| <mkdir dir="${dist.dir}/docs/api"/> |
| |
| <copy todir="${dist.dir}/lib" includeEmptyDirs="false"> |
| <fileset dir="${lib.dir}"> |
| </fileset> |
| </copy> |
| |
| <copy todir="${dist.dir}"> |
| <fileset file="${build.dir}/${final.name}.jar"/> |
| </copy> |
| |
| <copy todir="${dist.dir}/bin"> |
| <fileset dir="bin"/> |
| </copy> |
| |
| <copy todir="${dist.dir}/conf"> |
| <fileset dir="${conf.dir}" excludes="**/*.template"/> |
| </copy> |
| |
| <copy todir="${dist.dir}/src" includeEmptyDirs="true"> |
| <fileset dir="src" excludes="**/*.template **/docs/build/**/* **/ivy*.jar"/> |
| </copy> |
| |
| <chmod perm="ugo+x" type="file" parallel="false"> |
| <fileset dir="${dist.dir}/bin"/> |
| </chmod> |
| </target> |
| |
| <!-- ================================================================== --> |
| <!-- Make release tarball --> |
| <!-- ================================================================== --> |
| <target name="tar" depends="package" description="Make release tarball"> |
| <macro_tar param.destfile="${build.dir}/${final.name}.tar.gz"> |
| <param.listofitems> |
| <!-- it's unfortunate that the binaries have to be duplicated |
| however that's the only way ant currently supports afaik --> |
| <tarfileset dir="${build.dir}" mode="664"> |
| <exclude name="${final.name}/bin/*" /> |
| <exclude name="${final.name}/contrib/*/bin/*" /> |
| |
| <exclude name="${final.name}/**/compile" /> |
| <exclude name="${final.name}/**/config.guess" /> |
| <exclude name="${final.name}/**/config.sub" /> |
| <exclude name="${final.name}/**/configure" /> |
| <exclude name="${final.name}/**/depcomp" /> |
| <exclude name="${final.name}/**/install-sh" /> |
| <exclude name="${final.name}/**/ltmain.sh" /> |
| <exclude name="${final.name}/**/missing" /> |
| |
| <exclude name="${final.name}/**/*.sh" /> |
| |
| <include name="${final.name}/**" /> |
| </tarfileset> |
| <tarfileset dir="${build.dir}" mode="755"> |
| <!-- be sure to add to exclude list above if you add here --> |
| <include name="${final.name}/bin/*" /> |
| <include name="${final.name}/contrib/*/bin/*" /> |
| |
| <!-- autotools related commands --> |
| <include name="${final.name}/**/compile" /> |
| <include name="${final.name}/**/config.guess" /> |
| <include name="${final.name}/**/config.sub" /> |
| <include name="${final.name}/**/configure" /> |
| <include name="${final.name}/**/depcomp" /> |
| <include name="${final.name}/**/install-sh" /> |
| <include name="${final.name}/**/ltmain.sh" /> |
| <include name="${final.name}/**/missing" /> |
| |
| <!-- any shell scripts --> |
| <include name="${final.name}/**/*.sh" /> |
| </tarfileset> |
| </param.listofitems> |
| </macro_tar> |
| </target> |
| |
| <!-- ====================================================== --> |
| <!-- Generate and compile the Java files --> |
| <!-- ====================================================== --> |
| <target name="init"> |
| <mkdir dir="${build.classes}" /> |
| <tstamp> |
| <format property="build.time" pattern="MM/dd/yyyy HH:mm zz" timezone="GMT"/> |
| <format property="year" pattern="yyyy" timezone="GMT"/> |
| </tstamp> |
| </target> |
| |
| <target name="avro-gen" > |
| <java jar="${lib.dir}/avro-tools-1.7.3.jar" fork="true" failonerror="true"> |
| <arg value="idl"/> |
| <arg value="${src.dir}/workload.avdl"/> |
| <arg value="${src_generated.dir}/workload.avpr"/> |
| </java> |
| |
| <java jar="${lib.dir}/avro-tools-1.7.3.jar" fork="true" failonerror="true"> |
| <arg value="compile"/> |
| <arg value="protocol"/> |
| <arg value="${src_generated.dir}/workload.avpr"/> |
| <arg value="${src_generated.dir}"/> |
| <classpath> |
| <pathelement location="${lib.dir}"/> |
| </classpath> |
| </java> |
| </target> |
| |
| <target name="thrift-gen" > |
| <mkdir dir="${csrc_generated.dir}"/> |
| <exec executable="thrift" searchpath="yes" failonerror="yes"> |
| <arg value="-out"/> |
| <arg value="${csrc_generated.dir}"/> |
| <arg value="-gen"/> |
| <arg value="cpp"/> |
| <arg value="${src.dir}/wms.thrift"/> |
| </exec> |
| |
| <exec executable="thrift" searchpath="yes" failonerror="yes"> |
| <arg value="-out"/> |
| <arg value="${src_generated.dir}"/> |
| <arg value="-gen"/> |
| <arg value="java"/> |
| <arg value="${src.dir}/wms.thrift"/> |
| </exec> |
| </target> |
| |
| <target name="ver-gen" depends="init"> |
| <javac srcdir="${java.src.dir}" destdir="${build.classes}" includeantruntime="false" |
| target="${javac.target}" source="${javac.source}" |
| includes="org.trafodion.wms/version/util/**" debug="on" /> |
| </target> |
| |
| <target name="svn-revision" unless="lastRevision"> |
| <mkdir dir="${revision.dir}" /> |
| <condition property="shell.name" value="cmd" else="sh"> |
| <os family="windows"/> |
| </condition> |
| <condition property="revision.cmd.line" |
| value="/c ${src.dir}\lastRevision.bat" else="${src.dir}/lastRevision.sh"> |
| <os family="windows"/> |
| </condition> |
| <exec executable="${shell.name}"> |
| <arg line="${revision.cmd.line} ${revision.dir}${file.separator}${revision.properties}"/> |
| </exec> |
| <property file="${revision.dir}/${revision.properties}" /> |
| </target> |
| |
| <target name="version-info" depends="ver-gen,svn-revision"> |
| <mkdir dir="${src_generated.dir}" /> |
| <java classname="org.trafodion.wms.version.util.VerGen" fork="true" |
| dir="${src_generated.dir}"> |
| <arg value="${version}" /> |
| <arg value="${lastRevision}" /> |
| <arg value="${build.time}" /> |
| <classpath> |
| <pathelement path="${build.classes}" /> |
| </classpath> |
| </java> |
| </target> |
| |
| <target name="build-generated" depends="version-info,avro-gen,thrift-gen" > |
| <javac srcdir="${src_generated.dir}" destdir="${build.classes}" includeantruntime="false" |
| target="${javac.target}" source="${javac.source}" debug="on" > |
| <classpath refid="java.classpath"/> |
| </javac> |
| </target> |
| |
| <target name="compile" depends="build-generated"> |
| <javac srcdir="${java.src.dir}" destdir="${build.classes}" includeantruntime="false" |
| target="${javac.target}" source="${javac.source}" debug="on" > |
| <classpath refid="java.classpath"/> |
| <compilerarg value="-Xlint:all"/> |
| <compilerarg value="-Xlint:-path"/> |
| </javac> |
| </target> |
| |
| <target name="compile-native" depends="" description="Make C binding"> |
| <condition property="shell.name" value="cmd" else="sh"> |
| <os family="windows"/> |
| </condition> |
| <exec dir="${c.src.dir}" executable="${shell.name}" searchpath="yes" failonerror="yes"> |
| <arg line="cmake_wmslib.sh"/> |
| </exec> |
| </target> |
| |
| <!-- ====================================================== --> |
| <!-- Documentation --> |
| <!-- ====================================================== --> |
| |
| <!-- Javadoc --> |
| <target name="javadoc-dev" depends="jar" |
| description="Generate javadoc for WMS developers"> |
| <mkdir dir="${build.javadoc.dev}"/> |
| <javadoc |
| overview="${java.src.dir}/overview.html" |
| packagenames="org.trafodion.wms.*" |
| destdir="${build.javadoc.dev}" |
| author="true" |
| version="true" |
| use="true" |
| windowtitle="${Name} ${version} API" |
| doctitle="${Name} ${version} API" |
| bottom="Copyright &copy; ${year} The Hewlett Packard Company" |
| > |
| <packageset dir="${java.src.dir}"> |
| <include name="com/hp/**"/> |
| </packageset> |
| <packageset dir="${src_generated.dir}"/> |
| <link href="${javadoc.link.java}"/> |
| <classpath refid="java.classpath"/> |
| </javadoc> |
| </target> |
| |
| <!-- ====================================================== --> |
| <!-- Make wms.jar --> |
| <!-- ====================================================== --> |
| <target name="jar" depends="compile,compile-native"> |
| <jar jarfile="${basedir}/${final.name}.jar"> |
| <fileset file="LICENSE.txt" /> |
| <fileset dir="${build.classes}" excludes="**/.generated"/> |
| <fileset dir="${java.src.dir}"/> |
| <fileset dir="${src_generated.dir}" excludes="**/.generated"/> |
| <fileset file="${basedir}/src/wms-default.xml" /> |
| <fileset file="${basedir}/src/trafodion-rms.avsc" /> |
| <fileset file="${basedir}/src/workload.avsc" /> |
| <fileset file="${basedir}/src/platform-stats.avsc" /> |
| <manifest> |
| <attribute name="Main-Class" value="org.trafodion.wms.server.HwmsServer" /> |
| <attribute name="Built-By" value="${user.name}"/> |
| <attribute name="Built-At" value="${build.time}"/> |
| <attribute name="Built-On" value="${host.name}" /> |
| <attribute name="Implementation-Title" value="org.trafodion.wms"/> |
| <attribute name="Implementation-Version" value="${version}"/> |
| <attribute name="Implementation-Vendor" value="The Hewlett Packard Company"/> |
| </manifest> |
| </jar> |
| </target> |
| |
| <!-- ====================================================== --> |
| <!-- Make wms-sources.jar --> |
| <!-- ====================================================== --> |
| <target name="src-jar" depends="build-generated"> |
| <jar jarfile="${basedir}/${final.name}-sources.jar"> |
| <fileset file="LICENSE.txt" /> |
| <fileset dir="${java.src.dir}"/> |
| <fileset dir="${src_generated.dir}" excludes="**/.generated"/> |
| <manifest> |
| <attribute name="Built-By" value="${user.name}"/> |
| <attribute name="Built-At" value="${build.time}"/> |
| <attribute name="Built-On" value="${host.name}" /> |
| <attribute name="Implementation-Title" value="org.trafodion.wms"/> |
| <attribute name="Implementation-Version" value="${version}"/> |
| <attribute name="Implementation-Vendor" value="The Hewlett Packard Company"/> |
| </manifest> |
| </jar> |
| </target> |
| |
| <!-- ====================================================== --> |
| <!-- Clean. Delete the build files, and their directories --> |
| <!-- ====================================================== --> |
| <target name="clean" depends="" |
| description="Clean. Delete the build files, and their directories"> |
| <delete dir="${build.dir}"/> |
| <delete dir="${docs.src}/build"/> |
| <delete dir="${src_generated.dir}" /> |
| <delete includeemptydirs="true"> |
| <fileset dir="${c.src.dir}" defaultexcludes="false"> |
| <include name="**/*build*/**"/> |
| </fileset> |
| </delete> |
| <delete dir="${csrc_generated.dir}" /> |
| <delete dir="${dist.dir}"/> |
| <delete file="${jar.name}" /> |
| <delete dir="${revision.dir}"/> |
| <delete> |
| <fileset dir="${basedir}" includes="*.jar,*.tar.gz"/> |
| </delete> |
| </target> |
| |
| </project> |