summaryrefslogtreecommitdiff
blob: dcb2f072bdfd34fb3bb13f2a0a41de92da0ca34e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
<?xml version="1.0" encoding="utf-8"?>
<!---
   @author: Saleem Abdulrasool <compnerd@gentoo.org>
   @date: 5/9/2005
   @modified: 10/23/2005
   @revision: 1.0_alpha

   @notes:
      Call using the following:
      ant -f build.xml -Dproject.name=${project name} -Dpackage.name=${package name}

      It will create a jar called ${project.name} and will try to generate javadoc
      for the comma delimited list ${package.name} (fex org.gentoo.*,org.compnerd.*)

      Define classpath.broken (-Dclasspath.broken=1) if you need a top level Manifest.

      All paths can be overridden by defining the values in build.properties in the
      same directory as this build file.
-->

<project name="Gentoo_Builder" default="jar" basedir=".">
   <property name="src" value="src"/>
   <property name="build" value="build"/>
   <property name="dist" value="dist"/>
   <property name="lib" value="lib"/>

   <property name="pkg" value="${package.name}"/>
   <property name="jar" value="${project.name}.jar"/>

   <!-- Override any defined properties -->
   <property file="build.properties"/>

   <available file="${lib}" type="dir" property="libdir.exists"/>

   <target name="init">
      <tstamp/>
      <mkdir dir="${build}"/>
      <mkdir dir="${dist}"/>
      <mkdir dir="${dist}/doc"/>

      <!-- Check if we need to modify the classpath -->
      <antcall target="if-libdir"/>
   </target>

   <!-- If the directory exists, append to classpath -->
   <target name="if-libdir" if="libdir.exists">
      <property name="classpath" value="${classpath}:${lib}"/>
      <classpath>
         <pathelement path="${classpath}"/>
         <fileset dir="${lib}">
            <include name="**/*.jar"/>
         </fileset>
      </classpath>
   </target>

   <target name="compile" depends="init">
      <javac srcdir="${src}" destdir="${build}" classpath="${classpath}"/>
   </target>

   <target name="manifest" depends="init">
      <manifest file="${build}/MANIFEST.MF" mode="update">
         <attribute name="Built-By" value="Gentoo Portage"/>
      </manifest>
   </target>
   
   <target name="jar" depends="compile,manifest">
      <jar destfile="${dist}/${jar}" manifest="${build}/MANIFEST.MF">
         <fileset dir="${build}">
            <exclude name="MANIFEST.MF" unless="classloader.broken"/>
		</fileset>
		<fileset dir="${src}" includes="**/*.properties" />
		<metainf dir="${src}/META-INF" />
      </jar>
   </target>

   <target name="javadoc" depends="compile">
	   <javadoc sourcepath="${src}" destdir="${dist}/doc" packagenames="${pkg}">
         <classpath path="${classpath}"/>
      </javadoc>
   </target>

   <target name="clean">
      <delete dir="${build}"/>
      <delete dir="${dist}"/>
   </target>
</project>