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" />
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" />
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"/>
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"/>
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"/>
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"/>
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"/>
105 <target name="compile" depends="compile-base,compile-conf,compile-nodes,compile-parser,compile-main">
106 <jar jarfile="${jarfile}" basedir="${build-lib}"/>
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"/>
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}" />
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}" />
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 "$*"
152 <chmod file="${destdir}${bindir}/treebuild" perm="u=rwx,go=rx" />