source: java/build.xml @ fd92625

abac0-leakabac0-meimei-idmei-rt0-nmei_rt0tvf-new-xml
Last change on this file since fd92625 was fd92625, checked in by Ted Faber <faber@…>, 11 years ago

Clean up build and regression test

  • Property mode set to 100644
File size: 4.1 KB
Line 
1<!--
2  Project file for ant to build java ABAC library and test cases. 
3  Requires Jung and bouncycastle.
4
5  Targets:
6    all: clean then compile and make docs
7    compile: build the library and test programs
8    run-test: run a simple test program in GraphTest.java (params in target)
9    run-dump: run a program to dump a certificate in ASN1 (params in target)
10    jar: build jabac.jar in build/jar/jabac.jar
11    doc: greate API javadocs in ./doc
12    dev-doc: create developer API javadocs in ./dev-doc (includes
13            package/private/protected functions)
14    clean: remove created files (includes .der and .pem in this directory)
15-->
16
17<project name="jabac" default="all">
18
19  <property name="src.dir" value="."/>
20  <property name="lib.dir" value="jar"/>
21  <property name="build.dir" value="build"/>
22  <property name="classes.dir" value="${build.dir}/classes"/>
23  <property name="example.dir" value="${src.dir}/example"/>
24  <property name="regression.dir" value="${src.dir}/regression"/>
25  <property name="jar.dir" value="${build.dir}/jar"/>
26  <property name="doc.dir" value="./doc"/>
27  <property name="devdoc.dir" value="./dev-doc"/>
28  <property name="main.class" value="GraphTest"/>
29  <property name="dump.class" value="Dumper"/>
30  <property name="read.class" value="Reader"/>
31  <property name="write.class" value="Writer"/>
32  <property name="regression.class" value="Regression"/>
33  <property name="example.class" value="CreateExample"/>
34  <property name="version" value="1.4"/>
35
36  <path id="compile.classpath">
37    <fileset dir="${lib.dir}" includes="**/*.jar"/>
38  </path>
39
40  <target name="all" depends="clean, compile, jar, doc, dev-doc"
41    description="Clean then build" />
42
43  <target name="clean">
44    <delete dir="${build.dir}"/>
45    <delete dir="${doc.dir}"/>
46    <delete dir="${devdoc.dir}"/>
47    <delete dir="${example.dir}"/>
48    <delete dir="${src.dir}/scratch"/>
49  </target>
50
51
52  <target name="compile" description="Compile the source">
53    <mkdir dir="${classes.dir}" />
54    <javac srcdir="${src.dir}" destdir="${classes.dir}" 
55      classpathref="compile.classpath" includeAntRuntime="no"/>
56  </target>
57
58  <target name="jar" depends="compile" description="Make a jar">
59    <mkdir dir="${jar.dir}"/>
60    <jar destfile="${jar.dir}/jabac-${version}.jar" basedir="${classes.dir}"
61      excludes="**/GraphTest.class **/Dumper.class net/deterlab/abac/regression/*">
62      <manifest>
63        <attribute name="Class-Path" value="${classpath}" />
64      </manifest>
65    </jar>
66  </target>
67
68  <target name="doc" description="Generate API documentation">
69    <mkdir dir="${doc.dir}"/>
70    <javadoc sourcepath="${src.dir}" destdir="${doc.dir}"
71      classpathref="compile.classpath" access="public"
72      excludepackagenames="net.deterlab/abac.regression"
73      noqualifier="java.lang:java.io:java.util:java.security:java.security.cert"/>
74  </target>
75
76  <target name="dev-doc" description="Generate developer API documentation">
77    <mkdir dir="${doc.dir}"/>
78    <javadoc sourcepath="${src.dir}" destdir="${devdoc.dir}" access="private"
79      classpathref="compile.classpath" 
80      excludepackagenames="net.deterlab/abac.regression"
81      noqualifier="java.lang:java.io:java.util:java.security:java.security.cert"/>
82  </target>
83
84  <target name="run-dump" depends="compile" description="run dumper">
85    <java classname="${dump.class}" fork="true" >
86      <classpath>
87        <path refid="compile.classpath"/>
88        <pathelement path="${classes.dir}"/>
89      </classpath>
90      <arg file="attr0.der"/>
91    </java>
92  </target>
93
94  <target name="create-scratch" depends="compile" description="Create scratch directory">
95    <delete dir="${src.dir}/scratch"/>
96    <mkdir dir="${src.dir}/scratch"/>
97  </target>
98
99  <target name="run-regression" depends="compile" description="Run the regression test program">
100    <java classname="${regression.class}" fork="true" >
101      <classpath>
102        <path refid="compile.classpath"/>
103        <pathelement path="${classes.dir}"/>
104      </classpath>
105      <arg file="${src.dir}/regression"/>
106      <arg file="${src.dir}/scratch"/>
107    </java>
108  </target>
109
110  <target name="regression-test" depends="create-scratch,run-regression" description="Run the regression test "/>
111</project>
Note: See TracBrowser for help on using the repository browser.