source: benchmarks/java/build.xml @ 49ed170

Last change on this file since 49ed170 was 49ed170, checked in by str4d <str4d@…>, 3 years ago

Add a benchmarks subproject

  • Property mode set to 100644
File size: 4.4 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<project basedir="." default="all" name="benchmarks">
3    <target name="all" depends="clean, build" />
4    <target name="build" depends="builddep, jar" />
5    <target name="builddep">
6        <!-- run from top level build.xml to get dependencies built -->
7    </target>
8    <condition property="depend.available">
9        <typefound name="depend" />
10    </condition>
11    <target name="depend" if="depend.available">
12        <depend
13            cache="../../build"
14            srcdir="./src" 
15            destdir="./build/obj" >
16            <!-- Depend on classes instead of jars where available -->
17            <classpath>
18                <pathelement location="../../core/java/build/obj" />
19            </classpath>
20        </depend>
21    </target>
22
23    <!-- only used if not set by a higher build.xml -->
24    <property name="javac.compilerargs" value="" />
25    <property name="javac.version" value="1.7" />
26
27    <target name="jmhLibCheck">
28        <!-- override to Ant home if not set -->
29        <property name="jmh.home" value="${ant.home}/lib" />
30        <fail message="Please set jmh.home to a directory containing the necessary JMH libraries. See build.properties for details.">
31            <condition>
32                <not>
33                    <and>
34                        <available file="${jmh.home}/jmh-core.jar" />
35                        <available file="${jmh.home}/jmh-generator-annprocess.jar" />
36                        <available file="${jmh.home}/jopt-simple.jar" />
37                        <available file="${jmh.home}/commons-math3.jar" />
38                    </and>
39                </not>
40            </condition>
41        </fail>
42    </target>
43
44    <target name="compile" depends="depend, jmhLibCheck">
45        <mkdir dir="./build" />
46        <mkdir dir="./build/obj" />
47        <javac srcdir="./src" debug="true" source="${javac.version}" target="${javac.version}" deprecation="on"
48               debuglevel="lines,vars,source"
49               includeAntRuntime="false"
50               destdir="./build/obj" >
51            <classpath>
52                <pathelement location="${jmh.home}/jmh-core.jar" />
53                <pathelement location="${jmh.home}/jmh-generator-annprocess.jar" />
54                <pathelement location="../../core/java/build/i2p.jar" />
55            </classpath>
56            <compilerarg line="${javac.compilerargs}" />
57        </javac>
58    </target>
59
60    <target name="listChangedFiles" if="mtn.available" >
61        <exec executable="mtn" outputproperty="workspace.changes" errorproperty="mtn.error2" failifexecutionfails="false" >
62            <arg value="list" />
63            <arg value="changed" />
64            <arg value="." />
65        </exec>
66        <!-- \n in an attribute value generates an invalid manifest -->
67        <exec executable="tr" inputstring="${workspace.changes}" outputproperty="workspace.changes.tr" errorproperty="mtn.error2" failifexecutionfails="false" >
68            <arg value="-s" />
69            <arg value="[:space:]" />
70            <arg value="," />
71        </exec>
72    </target>
73
74    <target name="jar" depends="compile, jarUpToDate, listChangedFiles" unless="jar.uptodate" >
75        <!-- set if unset -->
76        <property name="workspace.changes.tr" value="" />
77        <jar destfile="./build/benchmarks.jar" basedir="./build/obj" >
78            <manifest>
79                <attribute name="Built-By" value="${build.built-by}" />
80                <attribute name="Build-Date" value="${build.timestamp}" />
81                <attribute name="Base-Revision" value="${workspace.version}" />
82                <attribute name="Main-Class" value="org.openjdk.jmh.Main" />
83                <attribute name="Workspace-Changes" value="${workspace.changes.tr}" />
84                <attribute name="X-Compile-Source-JDK" value="${javac.version}" />
85                <attribute name="X-Compile-Target-JDK" value="${javac.version}" />
86            </manifest>
87            <zipfileset src="${jmh.home}/jmh-core.jar" excludes="**/META-INF/services/**" />
88            <zipfileset src="${jmh.home}/jopt-simple.jar" />
89            <zipfileset src="${jmh.home}/commons-math3.jar" />
90            <zipfileset src="../../core/java/build/i2p.jar" />
91        </jar>
92    </target>
93
94    <target name="jarUpToDate">
95        <uptodate property="jar.uptodate" targetfile="build/benchmarks.jar" >
96            <srcfiles dir= "." includes="build/obj/**/*.class" />
97        </uptodate>
98    </target>
99
100    <target name="clean">
101        <delete dir="./build" />
102    </target>
103</project>
Note: See TracBrowser for help on using the repository browser.