updated on Thu Jan 26 00:18:00 UTC 2012
[aur-mirror.git] / libmatthew-java / build.xml
blobff20118a0905b82a1e8cd98db615a3046b9a7f0f
2 <project name="libmatthew-java" default="jar" basedir=".">
3         
4         <description>Libraries for Java: unix sockets, CGI, hexdump</description>
5         
6         <property file="local.properties"/>
7         
8         <property name="ant.project.version" value="0.4"/>
9         <property name="libmatthew.unix.version" value="0.5"/>
10         <property name="libmatthew.cgi.version" value="0.6"/>
11         <property name="libmatthew.debug.version" value="1.1"/>
12         <property name="libmatthew.io.version" value="0.1"/>
13         <property name="libmatthew.hexdump.version" value="0.2"/>
14         <property name="src" location="src"/>
15         <property name="src.main.java" location="${src}/main/java"/>
16         <property name="build" location="build"/>
17         <property name="build.output" location="${build}"/>
18         <property name="dist" location="dist"/>
20         <property name="jardir" value="/usr/share/java/${ant.project.name}"/>
21         
22         <target name="init">
23                 <tstamp prefix="touch.time"/>
24                 <condition property="java.5.available">
25                         <or>
26                                 <contains string="${java.version}" substring="1.5"/>
27                                 <contains string="${java.version}" substring="1.6"/>
28                                 <contains string="${java.version}" substring="1.7"/>
29                         </or>
30                 </condition>
31                 <fail message="This package requires Java 5, 6 or 7." unless="java.5.available"/>
32                 <condition property="ant.1.7.available">
33                         <or>
34                                 <contains string="${ant.version}" substring="1.7"/>
35                                 <contains string="${ant.version}" substring="1.8"/>
36                         </or>
37                 </condition>
38                 <fail message="This package requires Ant 1.7 or 1.8." unless="ant.1.7.available"/>
39                 <mkdir dir="${build.output}"/>
40         </target>
41                         
42         <target name="clean" description="Clean the output directories">
43                 <delete dir="${build}"/>
44                 <delete dir="${dist}"/>
45         </target>
46                         
47         <target name="compile" depends="init" description="Compile the code">
48                 <javac srcdir="${src.main.java}" destdir="${build.output}" encoding="UTF-8" excludes="cx/ath/matthew/debug/Debug.java" optimize="true" target="1.5" source="1.5">
49                 <!--<compilerarg value="-Xlint:unchecked"/>--></javac>
50         </target>
51                         
52         <target name="unix.jar" depends="compile" description="Create the JAR">
53                 <mkdir dir="${dist}"/>
54                 <jar jarfile="${dist}/unix-${libmatthew.unix.version}.jar" includes="cx/ath/matthew/unix/**" basedir="${build.output}"/>
55         </target>
56                         
57         <target name="cgi.jar" depends="compile" description="Create the JAR">
58                 <mkdir dir="${dist}"/>
59                 <jar jarfile="${dist}/cgi-${libmatthew.cgi.version}.jar" includes="cx/ath/matthew/cgi/**" basedir="${build.output}"/>
60         </target>
61                         
62         <target name="debug-enable.jar" depends="init" description="Create the JAR">
63                 <mkdir dir="${dist}"/>
64                 <delete dir="${build.output}/cx/ath/matthew/debug"/>
65                 <filter token="DEBUGSETTING" value="true"/>
66                 <copy file="${src.main.java}/cx/ath/matthew/debug/Debug.jpp" tofile="${src.main.java}/cx/ath/matthew/debug/Debug.java" filtering="on" overwrite="true"/>
67                 <javac srcdir="${src.main.java}" destdir="${build.output}" encoding="UTF-8" includes="cx/ath/matthew/debug/Debug.java" optimize="true" target="1.5" source="1.5"/>
68                 <jar jarfile="${dist}/debug-enable-${libmatthew.debug.version}.jar" includes="cx/ath/matthew/debug/**" basedir="${build.output}">
69                         <manifest>
70                                 <attribute name="Class-Path" value="${jardir}/hexdump.jar"/>
71                         </manifest>
72                 </jar>
73         </target>
74                         
75         <target name="debug-disable.jar" depends="init" description="Create the JAR">
76                 <mkdir dir="${dist}"/>
77                 <delete dir="${build.output}/cx/ath/matthew/debug"/>
78                 <filter token="DEBUGSETTING" value="false"/>
79                 <copy file="${src.main.java}/cx/ath/matthew/debug/Debug.jpp" tofile="${src.main.java}/cx/ath/matthew/debug/Debug.java" filtering="on" overwrite="true"/>
80                 <javac srcdir="${src.main.java}" destdir="${build.output}" encoding="UTF-8" includes="cx/ath/matthew/debug/Debug.java" optimize="true" target="1.5" source="1.5"/>
81                 <jar jarfile="${dist}/debug-disable-${libmatthew.debug.version}.jar" includes="cx/ath/matthew/debug/**" basedir="${build.output}">
82                         <manifest>
83                                 <attribute name="Class-Path" value="${jardir}/hexdump.jar"/>
84                         </manifest>
85                 </jar>
86         </target>
87                         
88         <target name="io.jar" depends="compile" description="Create the JAR">
89                 <mkdir dir="${dist}"/>
90                 <jar jarfile="${dist}/io-${libmatthew.io.version}.jar" includes="cx/ath/matthew/io/**" basedir="${build.output}"/>
91         </target>
92                         
93         <target name="hexdump.jar" depends="compile" description="Create the JAR">
94                 <mkdir dir="${dist}"/>
95                 <jar jarfile="${dist}/hexdump-${libmatthew.hexdump.version}.jar" includes="cx/ath/matthew/utils/Hexdump.class" basedir="${build.output}"/>
96         </target>
97                         
98         <target name="jars" depends="unix.jar,cgi.jar,debug-enable.jar,debug-disable.jar,io.jar,hexdump.jar"></target>
99                         
100         <target name="unix.h">
101                 <javah classpath="${build.output}" outputFile="${basedir}/unix-java.h">
102                         <class name="cx.ath.matthew.unix.UnixServerSocket"/>
103                         <class name="cx.ath.matthew.unix.UnixSocket"/>
104                         <class name="cx.ath.matthew.unix.USInputStream"/>
105                         <class name="cx.ath.matthew.unix.USOutputStream"/>
106                 </javah>
107         </target>
108                         
109         <target name="cgi.h">
110                 <javah classpath="${build.output}" outputFile="${basedir}/cgi-java.h" class="cx.ath.matthew.cgi.CGI"/>
111         </target>
112                         
113         <target name="source" depends="init" description="Pack project">
114                 <mkdir dir="${dist}"/>
115                 <tar destfile="${dist}/${ant.project.name}-src-${touch.time.DSTAMP}${touch.time.TSTAMP}.tar" basedir="${basedir}" includes="src/** *.c build.xml changelog COPYING INSTAL README Makefile"/>
116                 <gzip destfile="${dist}/${ant.project.name}-src-${touch.time.DSTAMP}${touch.time.TSTAMP}.tar.gz" src="${dist}/${ant.project.name}-src-${touch.time.DSTAMP}${touch.time.TSTAMP}.tar"/>
117                 <delete file="${dist}/${ant.project.name}-src-${touch.time.DSTAMP}${touch.time.TSTAMP}.tar"/>
118         </target>
119                 
120 </project>