Increased output block size from 64 to 96 bytes; now using 8 counter values, instead...
[fast-key-erasure-rng-java.git] / build.xml
blob13ff472bcad33ba871424fd4632e9e3d904eebd4
1 <project name="fast-key-erasure" default="main" basedir=".">
2         <property name="package.version" value="1.1"/>
4         <property name="src.dir" location="src"/>
5         <property name="src.dir.test" location="test"/>
6         <property name="lib.dir" location="lib"/>
7         <property name="lib.dir.test" location="${lib.dir}/test"/>
8         <property name="bin.dir" location="bin"/>
9         <property name="bin.dir.jdk8" location="${bin.dir}/@jdk8"/>
10         <property name="bin.dir.jdk17" location="${bin.dir}/@jdk17"/>
11         <property name="bin.dir.test" location="${bin.dir}/@test"/>
12         <property name="out.dir" location="dist"/>
14         <tstamp>
15                 <format property="build.date" pattern="yyyy-MM-dd" locale="en,UK" timezone="UTC"/>
16                 <format property="build.timestamp" pattern="yyyyMMdd-HHmmss" locale="en,UK" timezone="UTC"/>
17         </tstamp>
19         <property name="out.name" value="${ant.project.name}.${build.date}"/>
21         <property name="out.file.jdk8" location="${out.dir}/${out.name}.jdk-8.jar"/>
22         <property name="out.file.jdk17" location="${out.dir}/${out.name}.jdk-17.jar"/>
23         <property name="out.file.test" location="${out.dir}/${out.name}.tests.jar"/>
25         <!-- ~~~~ MAIN ~~~~ -->
27         <target name="main" depends="clean,jar">
28                 <echo message="Completed."/>
29         </target>
31         <!-- ~~~~ COMPILE ~~~~ -->
33         <target name="compile" description="compile java sources" depends="compile.jdk8,compile.jdk17,compile.test">
34                 <echo message="Completed."/>
35         </target>
37         <target name="compile.jdk8" description="compile java sources (JDK 8)">
38                 <mkdir dir="${bin.dir.jdk8}"/>
39                 <javac srcdir="${src.dir}" destdir="${bin.dir.jdk8}" debug="off" source="1.8" target="1.8" optimize="true" includeantruntime="false" encoding="utf8"/>
40         </target>
42         <target name="compile.jdk17" description="compile java sources (JDK 17)">
43                 <mkdir dir="${bin.dir.jdk17}"/>
44                 <javac srcdir="${src.dir}" destdir="${bin.dir.jdk17}" debug="off" release="17" optimize="true" includeantruntime="false" encoding="utf8"/>
45         </target>
47         <target name="compile.test" description="compile java sources (test)" depends="compile.jdk17">
48                 <mkdir dir="${bin.dir.test}"/>
49                 <javac srcdir="${src.dir.test}" destdir="${bin.dir.test}" debug="true" release="17" optimize="true" includeantruntime="false" encoding="utf8">
50                         <classpath>
51                                 <pathelement location="${bin.dir.jdk17}"/>
52                                 <pathelement location="${lib.dir.test}/apiguardian-api-1.1.2.jar"/>
53                                 <pathelement location="${lib.dir.test}/ascii85-1.2.jar"/>
54                                 <pathelement location="${lib.dir.test}/junit-jupiter-api-5.10.1.jar"/>
55                                 <pathelement location="${lib.dir.test}/junit-jupiter-params-5.10.1.jar"/>
56                         </classpath>
57                 </javac>
58         </target>
60         <!-- ~~~~ JAR ~~~~ -->
62         <target name="jar" description="create JAR package" depends="jar.jdk8,jar.jdk17,jar.test">
63                 <echo message="Completed."/>
64         </target>
66         <target name="jar.jdk8" description="create JAR package (JDK 8)" depends="compile.jdk8">
67                 <mkdir dir="${out.dir}"/>
68                 <jar destfile="${out.file.jdk8}" basedir="${bin.dir.jdk8}" includes="**/*.class">
69                         <fileset file="${basedir}/README.md"/>
70                         <fileset file="${basedir}/LICENSE.txt"/>
71                         <manifest>
72                                 <attribute name="Main-Class" value="io.github.deajl3ka.fast_key_erasure.Main"/>
73                                 <section name="io/github/deajl3ka/fast_key_erasure/">
74                                         <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
75                                         <attribute name="Implementation-Version" value="${package.version}"/>
76                                         <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
77                                 </section>
78                         </manifest>
79                 </jar>
80                 <attrib file="${out.file.jdk8}" readonly="true"/>
81         </target>
83         <target name="jar.jdk17" description="create JAR package (JDK 17)" depends="compile.jdk17">
84                 <mkdir dir="${out.dir}"/>
85                 <jar destfile="${out.file.jdk17}" basedir="${bin.dir.jdk17}" includes="**/*.class">
86                         <fileset file="${basedir}/README.md"/>
87                         <fileset file="${basedir}/LICENSE.txt"/>
88                         <manifest>
89                                 <attribute name="Main-Class" value="io.github.deajl3ka.fast_key_erasure.Main"/>
90                                 <section name="io/github/deajl3ka/fast_key_erasure/">
91                                         <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
92                                         <attribute name="Implementation-Version" value="${package.version}"/>
93                                         <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
94                                 </section>
95                         </manifest>
96                 </jar>
97                 <attrib file="${out.file.jdk17}" readonly="true"/>
98         </target>
100         <target name="jar.test" description="create JAR package (test)" depends="jar.jdk17,compile.test">
101                 <mkdir dir="${out.dir}"/>
102                 <jar destfile="${out.file.test}" basedir="${bin.dir.test}" includes="**/*.class">
103                         <fileset file="${basedir}/README.md"/>
104                         <fileset file="${basedir}/LICENSE.txt"/>
105                         <zipfileset includes="**/*.class" excludes="**/Main.class" src="${out.file.jdk17}"/>
106                         <zipfileset includes="**/*.class" excludes="**/module-info.*" src="${lib.dir.test}/ascii85-1.2.jar"/>
107                         <manifest>
108                                 <section name="io/github/deajl3ka/fast_key_erasure/">
109                                         <attribute name="Implementation-Title" value="Fast-key-erasure Random-number Generator"/>
110                                         <attribute name="Implementation-Version" value="${package.version}"/>
111                                         <attribute name="Implementation-Build-Date" value="${build.timestamp}"/>
112                                 </section>
113                         </manifest>
114                 </jar>
115                 <attrib file="${out.file.test}" readonly="true"/>
116         </target>
118         <!-- ~~~~ CLEAN ~~~~ -->
119         
120         <target name="clean">
121                 <delete includeemptydirs="true" verbose="true">
122                         <fileset dir="${bin.dir}" includes="**/*" erroronmissingdir="false"/>
123                         <fileset dir="${out.dir}" includes="**/*" erroronmissingdir="false"/>
124                 </delete>
125         </target>
126 </project>