TreebuildConfig.java: implemented own caching
[treebuild.git] / build.xml
blob563f78f565e583e1018fc6e764dff79758a39498
1 <project name="UniTool" default="all" basedir=".">
2     <property environment="env" />
4     <!-- user configurable locations -->
5     <property name="destdir"         value="" />
6     <property name="prefix"          value="${env.HOME}/.usr/treebuild" />
7     <property name="libdir"          value="${prefix}/lib" />
8     <property name="bindir"          value="${prefix}/bin" />
9     <property name="sysconfdir"      value="${prefix}/etc" />
10     <property name="java-runtime"    value="java" />
11     
12     <property name="import-libmetux" value="${env.HOME}/.usr/unitool/lib/metux-java.jar" />
13     <property name="import-unitool"  value="${env.HOME}/.usr/unitool/lib/unitool.jar" />
15     <property name="CLASSPATH"       value="${import-libmetux}:${import-unitool}:${build-lib}:." />
17     <property name="build"           value=".build"         />
18     <property name="build-lib"       value="${build}/lib"   />
19     <property name="build-tests"     value="${build}/tests" />
20     <property name="jarfile"         value="${build}/treebuild.jar" />
22     <!-- where files will be installed -->
23     <property name="install-jar-metux"     value="${libdir}/metux-java.jar" />
24     <property name="install-jar-unitool"   value="${libdir}/unitool.jar" />
25     <property name="install-jar-treebuild" value="${libdir}/treebuild.jar" />
26     
27     <target name="compile-base">
28         <mkdir dir="${build-lib}" />
29         <javac destdir="${build-lib}" srcdir="base" debug="on" classpath="${CLASSPATH}" includeantruntime="false">
30             <include name="Conversion.java"/>
31             <include name="EDependencyMissing.java"/>
32             <include name="EPIException.java"/>
33             <include name="EPropertyMissing.java"/>
34             <include name="IDependNode.java"/>
35             <include name="IImportNode.java"/>
36             <include name="IIncludeNode.java"/>
37             <include name="INode.java"/>
38             <include name="IPackageNode.java"/>
39             <include name="ISourceNode.java"/>
40             <include name="ITargetNode.java"/>
41             <include name="TreebuildConfig.java"/>
42         </javac>
43     </target>
45     <target name="compile-conf" depends="compile-base">
46         <mkdir dir="${build-lib}" />
47         <javac destdir="${build-lib}" srcdir="conf" debug="on" classpath="${CLASSPATH}" includeantruntime="false">
48             <include name="Configure.java"/>
49             <include name="Feature.java"/>
50             <include name="HeaderFile.java"/>
51             <include name="Substitute.java"/>
52         </javac>
53     </target>
55     <target name="compile-parser" depends="compile-base,compile-conf,compile-nodes">
56         <mkdir dir="${build-lib}" />
57         <javac destdir="${build-lib}" srcdir="parser" debug="on" classpath="${CLASSPATH}" includeantruntime="false">
58             <include name="CommonAliasParser.java"/>
59             <include name="CommonPropertyParser.java"/>
60             <include name="ConfigureObjectParser.java"/>
61             <include name="DependObjectParser.java"/>
62             <include name="ExecutableObjectParser.java"/>
63             <include name="ImportObjectParser.java"/>
64             <include name="IncludeObjectParser.java"/>
65             <include name="LibraryObjectParser.java"/>
66             <include name="LoadTree.java"/>
67             <include name="ManualObjectParser.java"/>
68             <include name="ObjectParser.java"/>
69             <include name="PackageObjectParser.java"/>
70             <include name="ResourceObjectParser.java"/>
71             <include name="RootObjectParser.java"/>
72             <include name="SourceObjectParser.java"/>
73         </javac>
74     </target>
76     <target name="compile-nodes" depends="compile-base,compile-conf">
77         <mkdir dir="${build-lib}" />
78         <javac destdir="${build-lib}" srcdir="nodes" debug="on" classpath="${CLASSPATH}" includeantruntime="false">
79             <include name="AutodepNode.java"/>
80             <include name="ConditionalTargetNode.java"/>
81             <include name="DependNode.java"/>
82             <include name="ExecutableTargetNode.java"/>
83             <include name="HeaderNode.java"/>
84             <include name="ImportNode.java"/>
85             <include name="LibraryTargetNode.java"/>
86             <include name="PINode_childs.java"/>
87             <include name="PackageNode.java"/>
88             <include name="ResourceNode.java"/>
89             <include name="RootNode.java"/>
90             <include name="SourceNode.java"/>
91             <include name="TargetNode.java"/>
92         </javac>
93     </target>
95     <target name="compile-main" depends="compile-base,compile-conf,compile-nodes,compile-parser">
96         <mkdir dir="${build-lib}" />
97         <javac destdir="${build-lib}" srcdir="main" debug="on" classpath="${CLASSPATH}" includeantruntime="false">
98             <include name="Main.java"/>
99             <include name="One.java"/>
100             <include name="PIBuild.java"/>
101             <include name="TreeBuilder.java"/>
102         </javac>
103     </target>
105     <target name="compile" depends="compile-base,compile-conf,compile-nodes,compile-parser,compile-main">
106         <jar jarfile="${jarfile}" basedir="${build-lib}"/>
107     </target>
109 <!--
110     <target name="compile-tests" depends="link-lib,compile-base,compile-log,compile-propertylist">
111         <mkdir dir="${build-tests}" />
112         <javac destdir="${build-tests}" srcdir="tests" debug="on" classpath="${jarfile}">
113             <include name="_test_util.java"/>
114             <include name="_test_main.java"/>
115         </javac>
116     </target>
118     <target name="run-tests" depends="compile-tests">
119         <java classname="_test_util" classpath="${jarfile}:${build-tests}" /> 
120         <java classname="_test_log" classpath="${jarfile}:${build-tests}" />
121     </target>
124     <target name="run-tests" />
125     <target name="all"     depends="compile,run-tests" />
127     <target name="clean">
128         <delete dir="${build-tests}" />
129         <delete dir="${build-lib}"   />
130         <delete dir="${build}"       />
131         <delete file="${jarfile}"    />
132     </target>
134     <target name="install" depends="compile,run-tests">
135         <mkdir dir="${destdir}${libdir}" />
136         <mkdir dir="${destdir}${bindir}" />
137         <copy file="${jarfile}"   todir="${destdir}${libdir}" />
138         <copy file="${import-libmetux}" todir="${destdir}${libdir}" />
139         <copy file="${import-unitool}"  todir="${destdir}${libdir}" />
141         <delete file="${destdir}${bindir}/treebuild" />
142         <echo file="${destdir}${bindir}/treebuild">#!/bin/bash
144 # autogenerated - dont touch
146 if [ ! "$TREEBUILD_CONFIG" ]; then
147     TREEBUILD_CONFIG="${sysconfdir}/treebuild.conf"
149 export CLASSPATH="$CLASSPATH:${install-jar-metux}:${install-jar-unitool}:${install-jar-treebuild}"
150 ${java-runtime} org.de.metux.treebuild.main.Main "$*"
151         </echo>
152         <chmod file="${destdir}${bindir}/treebuild" perm="u=rwx,go=rx" />
154     </target>
155 </project>