sigar/bindings/java/build.xml

330 lines
9.7 KiB
XML

<!DOCTYPE project [
<!ENTITY jni-build SYSTEM "hyperic_jni/jni-build.xml">
]>
<project name="Sigar" default="build" basedir=".">
<property name="sigar.version" value="1.1.10-dev"/>
<property file="${user.home}/.sigar-build.properties"/>
<property name="project.name" value="sigar"/>
<property name="jni.define.name" value="SIGAR"/>
<property name="sigar-bin" location="sigar-bin"/>
<property name="jni.bin" location="${sigar-bin}"/>
<property name="jni.source.dir" location="../.."/>
<property name="jni.src.java" value="hyperic_jni/src"/>
<property name="jni.libprefix" value=""/> <!-- drop "java" prefix -->
<property name="jni.werror" value="true"/>
<property name="cpptasks.jar"
location="hyperic_jni/lib/cpptasks.jar"/>
&jni-build;
<property name="src" location="src"/>
<property name="build" location="build"/>
<property name="build.javadoc" value="${build}/javadoc"/>
<property name="dist.name" value="hyperic-sigar-${sigar.version}"/>
<property name="dist" location="${build}/${dist.name}"/>
<property name="perl" value="perl"/>
<!-- trick TestFQDN into passing with: ant test -Dsigar.fdqn=foo.bar -->
<property name="sigar.fqdn" value=""/>
<path id="libjars">
<fileset dir="lib" includes="*.jar"/>
</path>
<path id="alljars">
<path refid="libjars"/>
<fileset dir="${sigar-bin}/lib" includes="sigar.jar"/>
</path>
<target name="javadoc_check">
<uptodate property="javadoc.notrequired"
targetfile="${build.javadoc}/packages.html" >
<srcfiles dir="src" includes="**/*.java"/>
</uptodate>
</target>
<path id="javadoc.path">
<pathelement path="src"/>
<pathelement path="${build}/src"/>
<pathelement path="${jni.src.java}"/>
</path>
<target name="javadoc" depends="javadoc_check">
<mkdir dir="${build.javadoc}"/>
<javadoc packagenames="net.hyperic.sigar.*"
excludepackagenames="net.hyperic.sigar.test.*,net.hyperic.jni.*,net.hyperic.sigar.pager.*,net.hyperic.sigar.jmx.*"
useexternalfile="yes"
sourcepathref="javadoc.path"
destdir="${build.javadoc}"
author="false"
version="false"
windowtitle="Sigar API"
doctitle="Sigar">
<group title="Sigar" packages="net.hyperic.sigar" />
<classpath refid="libjars"/>
<classpath><path path="${env.ANT_HOME}/lib/ant.jar"/></classpath>
<bottom>Copyright &#169; 2004 Hyperic, LLC. All Rights Reserved.</bottom>
</javadoc>
</target>
<target name="compile">
<mkdir dir="${build}/classes"/>
<javac destdir="${build}/classes"
debug="true"
classpathref="libjars">
<src path="${src}"/>
<src path="${build}/src"/>
<src path="${jni.src.java}"/>
<include name="**/*.java"/>
</javac>
</target>
<target name="sigar-version">
<tstamp>
<format property="BUILD_DATE" pattern="MM/dd/yyyy hh:mm aa"/>
</tstamp>
<property name="version.file"
value="src/net/hyperic/sigar/SigarVersion.java"/>
<copy file="${version.file}.in"
tofile="${build}/${version.file}"/>
<replace file="${build}/${version.file}">
<replacefilter token="@@BUILD_DATE@@" value="${BUILD_DATE}"/>
<replacefilter token="@@VERSION_STRING@@" value="${sigar.version}"/>
</replace>
</target>
<target name="prepare-src" depends="sigar-version">
<mkdir dir="${build}/src"/>
<exec executable="${perl}" dir=".">
<arg value="src/jni/generate.pl"/>
<arg value="${build}/src"/>
</exec>
<!-- include sigar *.c files rather than link against libsigar -->
<patternset id="jni.source.files">
<include name="src/*.c"/>
<include name="src/os/${jni.src}/*.c"/>
<include name="bindings/java/src/jni/javasigar.c"/>
</patternset>
<path id="jni.include.dirs">
<path location="../../include"/>
<path location="../../src/os/${jni.src}"/>
<path location="${build}/src"/>
</path>
<!-- extra solaris libs -->
<condition property="jni.libset.dir" value="/usr/lib">
<isset property="solaris"/>
</condition>
<condition property="jni.libset.libs" value="kstat">
<isset property="solaris"/>
</condition>
<!-- extra aix libs -->
<condition property="jni.libset.dir" value="/usr/lib">
<isset property="aix"/>
</condition>
<condition property="jni.libset.libs" value="odm,cfg">
<isset property="aix"/>
</condition>
</target>
<target name="copy-includes">
<mkdir dir="${sigar-bin}/include"/>
<copy toDir="${sigar-bin}/include" overwrite="true">
<fileset dir="../../include">
<include name="sigar.h"/>
<include name="sigar_fileinfo.h"/>
</fileset>
</copy>
</target>
<target name="build-jni"
depends="jni-init,prepare-src,jni-compile,jni-lib-copy,copy-includes"
if="jni.libarch"/>
<target name="build-perfstat" depends="jni-init" if="aix">
<ant dir="../../src/os/aix/perfstat"/>
<copy toDir="${sigar-bin}/lib" overwrite="true">
<fileset dir="${build}">
<include name="libsigar_aixperfstat.so"/>
</fileset>
</copy>
</target>
<target name="pack-jar">
<jar jarfile="${sigar-bin}/lib/sigar.jar"
basedir="${build}/classes">
<manifest>
<attribute name="Main-Class"
value="net.hyperic.sigar.cmd.Runner"/>
</manifest>
</jar>
</target>
<target name="build" depends="build-jni,build-perfstat,compile,pack-jar"/>
<target name="clean">
<delete dir="${build}"/>
<delete dir="${sigar-bin}"/>
<delete dir="testresults"/>
</target>
<target name="xtest">
<mkdir dir="testresults"/>
<junit printsummary="yes" fork="yes"
haltonfailure="yes" showoutput="true">
<jvmarg value="-Dsigar.fqdn=${sigar.fqdn}"/>
<classpath refid="alljars"/>
<formatter type="plain"/>
<batchtest fork="yes" todir="testresults">
<fileset dir="${src}">
<include name="**/Test*.java"/>
<!-- slow; run by hand with bin/run_tests.sh Threads -->
<exclude name="**/TestThreads*.java"/>
</fileset>
</batchtest>
</junit>
</target>
<target name="test" depends="build,xtest"/>
<target name="dist-pack">
<zip destfile="${dist}.zip"
basedir="${build}"
includes="${dist.name}/**/*"/>
<!-- Stupid ant tar task, doesn't preserve file permissions
without making you jump through some hoops -->
<tar tarfile="${dist}.tar.gz"
longfile="gnu"
compression="gzip">
<tarfileset dir="${dist}/.." mode="755">
<include name="${dist.name}/**/bin/*"/>
<include name="${dist.name}/**/*.sh"/>
<include name="${dist.name}/**/*.bat"/>
<include name="${dist.name}/**/*.cmd"/>
<include name="${dist.name}/**/*.sl"/>
</tarfileset>
<tarfileset dir="${dist}/..">
<exclude name="${dist.name}/**/bin/*"/>
<exclude name="${dist.name}/**/*.sh"/>
<exclude name="${dist.name}/**/*.bat"/>
<exclude name="${dist.name}/**/*.cmd"/>
<exclude name="${dist.name}/**/*.sl"/>
<include name="${dist.name}/**"/>
</tarfileset>
</tar>
</target>
<target name="dist-bin">
<!-- binaries -->
<mkdir dir="${dist}/sigar-bin"/>
<copy toDir="${dist}/sigar-bin" overwrite="true">
<fileset dir="${sigar-bin}">
<include name="lib/*.jar"/>
<include name="lib/*.dll"/>
<include name="lib/*.sl"/>
<include name="lib/*.so"/>
<include name="lib/*.dylib"/>
</fileset>
<fileset dir=".">
<include name="lib/*.jar"/>
</fileset>
</copy>
</target>
<target name="dist-support" depends="javadoc">
<copy toDir="${dist}" overwrite="true">
<fileset dir="../..">
<include name="README"/>
</fileset>
</copy>
<!-- bindings -->
<mkdir dir="${dist}/bindings/perl"/>
<copy toDir="${dist}/bindings/perl" overwrite="true">
<fileset dir="../perl">
<include name="Makefile.PL"/>
<include name="typemap"/>
<include name="*.xs"/>
<include name="*.pm"/>
<include name="lib/*.pm"/>
<include name="lib/Sigar/*.pm"/>
</fileset>
<fileset dir="${build}/src">
<include name="Sigar_generated.xs"/>
</fileset>
</copy>
<mkdir dir="${dist}/bindings/csharp"/>
<copy toDir="${dist}/bindings/csharp" overwrite="true">
<fileset dir="../dotnet">
<include name="default.build"/>
<include name="src/Sigar.cs"/>
</fileset>
</copy>
<!-- docs -->
<mkdir dir="${dist}/docs"/>
<copy toDir="${dist}/docs" overwrite="true">
<fileset dir="${build}">
<include name="javadoc/**"/>
</fileset>
</copy>
<!-- examples -->
<mkdir dir="${dist}/examples/java"/>
<mkdir dir="${dist}/examples/perl"/>
<mkdir dir="${dist}/examples/csharp"/>
<copy toDir="${dist}/examples/java" overwrite="true">
<fileset dir="src/net/hyperic/sigar/cmd">
<include name="*.java"/>
</fileset>
</copy>
<copy toDir="${dist}/examples/perl" overwrite="true">
<fileset dir="../perl/examples">
<include name="*.pl"/>
</fileset>
</copy>
<copy toDir="${dist}/examples/csharp" overwrite="true">
<fileset dir="../dotnet/examples">
<include name="*.cs"/>
<include name="default.build"/>
</fileset>
</copy>
<!-- header files -->
<copy toDir="${dist}/sigar-bin" overwrite="true">
<fileset dir="${sigar-bin}">
<include name="include/*.h"/>
</fileset>
</copy>
<copy toDir="${dist}/sigar-bin/lib" overwrite="true">
<fileset dir=".">
<include name=".sigar_shellrc"/>
</fileset>
</copy>
</target>
<target name="dist" depends="dist-bin,dist-support,dist-pack"/>
</project>