aesa, dol: create dol binary path and use it
[jump.git] / dol / build.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <project name="dol" default="compile" basedir=".">
4
5   <description>
6     Ant build file for DOL and its documentation.
7   </description>
8
9   <!-- ************************************************************** -->
10   <!-- properties                                                     -->
11   <!-- ************************************************************** -->
12   <!-- source directories -->
13   <property name="dol.path"      value="${basedir}"/>
14   <property name="systemc.inc"   value="/home/shapes/base/resources/lib/systemC/include"/>
15   <property name="systemc.lib"   value="/home/shapes/base/resources/lib/systemC/lib-linux/libsystemc.a"/>
16
17   <property name="src.dir"       location="src"/>
18   <property name="doc.dir"       location="docs"/>
19   <property name="jars.dir"      location="jars"/>
20   <property name="example.dir"   location="examples"/>
21
22   <!-- build directories -->
23   <property name="build.dir"     location="build"/>
24   <property name="bin.dir"       location="${build.dir}/bin"/>
25   <property name="bin.main.dir"  location="${bin.dir}/main"/>
26   <property name="doc.api.dir"   location="${doc.dir}/api"/>
27   <property name="doc.build.dir" location="${build.dir}/docs"/>
28   <property name="expo.dir"      location="${basedir}"/>
29
30   <!-- distribution directories -->
31   <property name="bin-dist.name" value="dol.jar"/>
32   <property name="api.name"      value="SHAPES Distributed Operation Layer (DOL)"/>
33
34   <!-- jar files -->
35   <property name="jars"          value=".:${jars.dir}/jdom.jar:${jars.dir}/xercesImpl.jar"/>
36
37
38   <!-- *************************************************************** -->
39   <!-- tasks                                                           -->
40   <!-- *************************************************************** -->
41   <!-- build all -->
42   <target name="all" depends="config, compile"/>
43
44   <!-- compile DOL java classes -->
45   <target name="compile">
46     <mkdir dir="${build.dir}"/>
47     <mkdir dir="${bin.dir}"/>
48     <mkdir dir="${bin.main.dir}"/>
49
50     <!-- compile dol sources -->
51     <javac destdir="${bin.main.dir}" debug="true" classpath="${jars}">
52       <src path="${src.dir}"/>
53       <compilerarg value="-Xlint:unchecked"/>
54     </javac>
55     <javac destdir="${bin.main.dir}"
56       debug="true"
57       classpath="jars/jdom.jar:jars/xercesImpl.jar">
58       <src path="test/src"/>
59     </javac>
60     <copy todir="${bin.main.dir}" file="${src.dir}/dol.properties"/>
61     <copy todir="${bin.main.dir}">
62       <fileset dir="${src.dir}"
63         includes="dol/visitor/systemC/lib/**
64                   dol/visitor/hds/lib/**
65                   dol/visitor/PipeAndFilter/lib/**
66                   dol/visitor/hdsd/lib/**
67                   dol/visitor/hdsd/scd/**
68                   dol/visitor/hdsd/scd/fsm/**
69                   dol/visitor/rtems/lib/**
70                   dol/visitor/protothread/lib/**
71                   dol/visitor/cbe/lib/**
72                   dol/visitor/cbe/template/**
73                   dol/visitor/cell/lib/**
74                   dol/visitor/cell/template/**"/>
75     </copy>
76
77     <!-- copy example run scripts -->
78     <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
79     <copy todir="${bin.main.dir}" file="examples/runprofiler.xml"/>
80     <copy todir="${bin.main.dir}">
81       <fileset dir="examples"
82                includes="schema/**"
83                excludes="schema/createschemastex"/>
84     </copy>
85     
86     <!-- compile test sources -->
87     <javac destdir="${bin.main.dir}"
88       debug="true"
89       classpath="jars/jdom.jar:jars/xercesImpl.jar">
90       <src path="test/src"/>
91     </javac>
92     <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
93     <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
94       <filterchain>
95          <replacetokens>
96             <token key="schema_path" value="${example.dir}/schema"/>
97          </replacetokens>
98       </filterchain>
99       <filterchain>
100         <tokenfilter>
101           <replaceregex pattern="(.)\\([^ ])"
102                         replace="\1/\2"
103                         flags="g"/>
104         </tokenfilter>
105       </filterchain>
106     </copy>
107
108     <antcall target="createjar"/>
109     <!-- <antcall target="javadoc"/> -->
110   </target>
111
112   <target name="config">
113     <echo message="Create new dol.properties file."/>
114     <delete file="${src.dir}/dol.properties" quiet="true"/>
115     <copy file="${src.dir}/dol_template.properties"
116       tofile="${src.dir}/dol.properties">
117       <filterchain>
118          <replacetokens>
119             <token key="dol_path"                value="${dol.path}"/>
120             <token key="systemc_inc"             value="${systemc.inc}"/>
121             <token key="systemc_lib"             value="${systemc.lib}"/>
122          </replacetokens>
123       </filterchain>
124     </copy>
125   </target>
126
127   <!-- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%  
128   <target name="test" depends="compile">
129     <javac destdir="${bin.main.dir}" debug="true" classpath="jars/jdom.jar:jar/xercesImpl.jar">
130       <src path="test/src"/>
131     </javac>
132     <copy todir="${bin.main.dir}" file="test/runtests.xml"/>
133     <copy todir="${bin.main.dir}" file="examples/runexample.xml"/>
134     <copy tofile="${bin.main.dir}/test.properties" file="test/test.properties">
135       <filterchain>
136          <replacetokens>
137             <token key="schema_path" value="${example.dir}/schema"/>
138          </replacetokens>
139       </filterchain>
140       <filterchain>
141         <tokenfilter>
142           <replaceregex pattern="(.)\\([^ ])"
143                         replace="\1/\2"
144                         flags="g"/>
145         </tokenfilter>
146       </filterchain>
147     </copy>
148   </target>
149   -->
150
151   <target name="javadoc">
152     <mkdir dir="${doc.build.dir}"/>
153     <javadoc packagenames="dol.*"
154              classpath="${jars}"
155              sourcepath="${src.dir}"
156              destdir="${doc.build.dir}"
157              access="public"
158              author="true"
159              version="true"
160              use="true"
161              windowtitle="${api.name}">
162       <doctitle><![CDATA[<h1>${api.name}</h1>]]></doctitle>
163       <bottom><![CDATA[<i>Copyright &#169; 2005-2007 Computer Engineering and Networks Laboratory (TIK), ETH Z&uuml;rich. All Rights Reserved.</i>]]></bottom>
164     </javadoc>
165   </target>
166
167   <target name="createjar">
168     <jar destfile="${bin-dist.name}" manifest="${src.dir}/MANIFEST.MF">
169       <fileset dir="${bin.main.dir}"
170                includes="dol/** dol.properties"/>
171       <fileset dir="examples"
172                includes="schema/**"
173                excludes="schema/createschemastex"/>
174     </jar>
175     <copy file="${bin-dist.name}" todir="${expo.dir}/jars"/>
176   </target>
177
178   <!-- clean up everything -->
179   <target name="clean">
180     <delete dir="${build.dir}"/>
181     <delete file="${bin-dist.name}"/>
182   </target>
183 </project>